{"version":3,"file":"1a60c3d06f54ec735d78.js","mappings":"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YACHoC,EAAG,CACF,aACA,aACA,aACA,aACA,cAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,kBACA,8CAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,4CAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,QAEJ,CACCS,EAAG,CACF,wBAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,qBAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,sCAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,cACA,uCAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,oCAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,6CAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,sCAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,2BAEDG,EAAG,YACHoC,EAAG,CACF,aACA,aACA,aACA,aACA,cAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,gCAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,QAEJ,CACCS,EAAG,CACF,KACA,WACA,kBAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,aACA,oBAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,eAEDG,EAAG,OACHoC,EAAG,CACF,aACA,aACA,aACA,aACA,cAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,YACA,oBAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,uBAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,4CAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,QAEJ,CACCS,EAAG,CACF,aACA,mBAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,cACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,+BACA,gCAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,4BAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,YACHoC,EAAG,CACF,aACA,aACA,aACA,aACA,cAEDhD,EAAG,OAEJ,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ACA,6BACA,6BACA,6BACA,8BAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,yBACA,0BAEDG,EAAG,uBACHoC,EAAG,CACF,6BACA,6BACA,6BACA,6BACA,8BAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,gBAEDG,EAAG,uBACHoC,EAAG,CACF,6BACA,6BACA,6BACA,6BACA,8BAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,iBACA,kBAEDG,EAAG,uBACHoC,EAAG,CACF,6BACA,6BACA,6BACA,6BACA,8BAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,4BAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,yBAEDG,EAAG,uBACHoC,EAAG,CACF,6BACA,6BACA,6BACA,6BACA,8BAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,2BAEDG,EAAG,uBACHoC,EAAG,CACF,6BACA,6BACA,6BACA,6BACA,8BAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,0BAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,eAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,wBAEDG,EAAG,8BACHoC,EAAG,CACF,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,2CAEDhD,EAAG,QAEJ,CACCS,EAAG,CACF,sBACA,2BAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,cACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,2CAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,8BACA,+BAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,cACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,2CAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,oBACA,yBAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,cACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,0CACA,2CAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,cAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,cACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,0DAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,iBACA,oBAEDG,EAAG,6CACHoC,EAAG,CACF,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,0DAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,kBAEDG,EAAG,6CACHoC,EAAG,CACF,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,0DAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,sBAEDG,EAAG,6CACHoC,EAAG,CACF,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,yDACA,0DAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHoC,EAAG,CACF,cACA,cACA,cACA,cACA,cACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,+CAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,kBACA,iCAEDG,EAAG,kCACHoC,EAAG,CACF,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,+CAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,+BAEDG,EAAG,kCACHoC,EAAG,CACF,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,+CAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,oBACA,mCAEDG,EAAG,kCACHoC,EAAG,CACF,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,8CACA,+CAEDhD,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,2BAEDG,EAAG,8BACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBACA,4BAEDG,EAAG,8BACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBACA,iCAEDG,EAAG,yCACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBACA,gCAEDG,EAAG,yCACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBACA,kCAEDG,EAAG,yCACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cACA,yBAEDG,EAAG,8BACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,0BAEDG,EAAG,8BACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,+BAEDG,EAAG,yCACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBACA,8BAEDG,EAAG,yCACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBACA,gCAEDG,EAAG,yCACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBACA,6BAEDG,EAAG,8BACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,8BAEDG,EAAG,8BACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBACA,mCAEDG,EAAG,yCACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBACA,kCAEDG,EAAG,yCACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,wBACA,oCAEDG,EAAG,yCACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,oBAEDG,EAAG,mBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cACA,yBAEDG,EAAG,8BACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,qBAEDG,EAAG,mBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,0BAEDG,EAAG,8BACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,2BAEDG,EAAG,8BACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,sBAEDG,EAAG,mBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,2BAEDG,EAAG,8BACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,uBAEDG,EAAG,mBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBACA,4BAEDG,EAAG,8BACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBACA,6BAEDG,EAAG,8BACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,+BAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,QAqtTJs+J,eAltToB,CACpB,CACC79J,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,MACA,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,mBACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,MACA,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,kBACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,MACA,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QACA,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,uBACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OACA,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,2BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,iBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,2BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,SAqsRJu+J,WAlsRgB,CAChB,CACC99J,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,mBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OACA,eAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,+BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,gBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,MACA,yBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,uBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,sBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,6BAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QA6wPJw+J,cA1wPmB,CACnB,CACC/9J,EAAG,CACF,eACA,6BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBACA,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,8BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,uBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,uBACA,wBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,yBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,SACA,mBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBACA,2BAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,mBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cACA,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,0BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cACA,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,yBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,eAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBACA,qCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,UACA,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,qBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,wBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OACA,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UACA,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,aAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,iBACA,+BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,0BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OACA,YAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,yBACA,+BAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,yBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,yBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,yBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,yBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,2BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,2BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,0BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,0BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,0BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,0BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,yBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,yBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,2BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,2BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,2BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,2BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,0BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,0BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,yBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,yBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,mBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBACA,+BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBACA,6BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,sBACA,8BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBACA,8BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBACA,+BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,+BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,uBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OACA,qBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,oBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,yBACA,iCAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,kBACA,0BAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,mBACA,0BAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBACA,yBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,mBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,mBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,kBACA,wBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,qBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,4BAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,qBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,wBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,cAEDG,EAAG,QACHZ,EAAG,QAksMJy+J,WA/rMgB,CAChB,CACCh+J,EAAG,CACF,iBACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,mBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,yBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,qBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,mBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,kBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,eAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,aACA,uBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,2BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,+BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,6BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,2BAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,gCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,gBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,yBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,2BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,uBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,SACA,oBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,oBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,sBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,mBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,YACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,cACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,2BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBACA,sBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,mBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OACA,gBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,SAykLJ0+J,QAtkLa,CACb,CACCj+J,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,mBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,SACA,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,YACA,oBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,YACA,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OACA,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,yBACA,2BAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,oCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,+BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,kCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cACA,8BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,sBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,0BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,SACA,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,8CAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,YACA,mBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBACA,sBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,kCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,mCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,uBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,kCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBACA,uBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,MACA,0BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,6BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,2BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QACA,yCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,YAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBACA,uCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBACA,oCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBACA,iCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBACA,kCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,0BAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,WAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,2BAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,4BAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,yBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,qBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBACA,mBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBACA,uBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,8BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,kBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,gBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,eAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,iBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OACA,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,MACA,oBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,QAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,OACA,eAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,QACHZ,EAAG,SAwwHJ2+J,QArwHa,CACb,CACCl+J,EAAG,CACF,MACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,0BACA,kCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,qBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,gCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cACA,oBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,kBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,uBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,qBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cACA,0BAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,qBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,yBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,oBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,yBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,oBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,iBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,6BAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,8BAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,kDAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBACA,oDAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,sDAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,0BACA,0DAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,mCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,kCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,wDAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,oCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,gCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,aAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,8BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,oCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,6BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,yDAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,kFAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,iCAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,wCAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBACA,0DAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBACA,0DAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBACA,gCAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,uCAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBACA,yDAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBACA,kCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBACA,qCAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,oCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBACA,uCAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,uBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cACA,yBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,2BAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,gBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBACA,yBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBACA,0BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBACA,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,YACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,0BAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,YAEDG,EAAG,YACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,WACA,2BAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cACA,6BAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,gCAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,gCAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,mCAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cACA,yBACA,iCAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBACA,wBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,oCAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,gBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WACA,gCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,IACA,sBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mBACA,0BAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,yBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,IACA,cAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,+BAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,qBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,yBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,yBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,4BAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,WAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,kBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,mBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,mBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,YAEDG,EAAG,iBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,YACA,eAEDG,EAAG,iBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,YAEDG,EAAG,iBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,YAEDG,EAAG,iBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,YAEDG,EAAG,iBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,YAEDG,EAAG,iBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,YAEDG,EAAG,iBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,YAEDG,EAAG,iBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,YAEDG,EAAG,iBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,YAEDG,EAAG,iBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,YAEDG,EAAG,iBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,YAEDG,EAAG,iBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,0CAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,wCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,kCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,IACA,2CAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,uBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,IACA,2CAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,IACA,kCAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,2CAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,2CAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,MACA,eAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,oCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,cAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,OACA,yBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,uBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,sCAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,sCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,sCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBACA,+BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,sCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,sCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,sCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,sCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,sCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,sCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,kBACA,oCAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,SACA,4BAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,sCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,QACA,sCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,oBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,eACA,uBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,uBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,QACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,6BAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,6BAEDG,EAAG,OACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,YACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,wBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,sBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBACA,4BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,0BACA,8BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,mCAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,uBAEDG,EAAG,QACHZ,EAAG,QA2nEJmhD,MAxnEW,CACX,CACC1gD,EAAG,CACF,iBACA,kBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,2BAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,iBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,qBAEDG,EAAG,QACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,qBAEDG,EAAG,aACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,gBAEDG,EAAG,wBACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,oBAEDG,EAAG,4BACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,eAEDG,EAAG,uBACHZ,EAAG,QAEJ,CACCS,EAAG,CACF,UACA,yBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,6BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,oBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,0BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,uBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,sBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,6BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,qBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,uBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,8BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,sBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gCAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,yBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iCAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,4BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,oBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,sBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,qBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,0BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,aAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,yBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,qBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,2BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,wBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,uBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,uBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,aAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,yBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,sBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,KACA,UACA,uBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,sBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,0BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,+CAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,aAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,sBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,4BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iCAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,uBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,oBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,uCAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,aAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,aAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,0BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,oBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,UACA,oBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,uBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,aAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,sBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,yBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,wBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,aAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,wBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,wBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iCAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,sBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,uBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,oBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,aAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,oBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,aAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,aAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,yBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,yBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,oBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,8BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,yBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,oBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gCAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,qBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,wBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,6BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,qBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,oBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,4BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,oBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,qBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,yBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,+BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,aAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,oCAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,aAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,oBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,qBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,0BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,8BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,uBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,KACA,UACA,sBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,mBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,qBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iCAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,kBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,+BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,4BAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,wBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,cAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,gBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,qBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,eAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,UACA,iBAEDG,EAAG,cACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,eACA,gBAEDG,EAAG,4CACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,gBACA,iBAEDG,EAAG,4CACHZ,EAAG,OAEJ,CACCS,EAAG,CACF,aACA,cAEDG,EAAG,4CACHZ,EAAG,SAcD4+J,EAAqB,CAACjC,EAAUkC,QAASlC,EAAUmC,MAAOnC,EAAUoC,aAAcpC,EAAUqC,OAAQrC,EAAUsC,YAAatC,EAAUuC,MACrIC,EAA8BniK,OAAOunB,QAAQo4I,GAAW3uI,QAAO,SAAUC,EAAKlwB,GAChF,IAAIR,EAAMQ,EAAK,GAGf,OADAkwB,EADYlwB,EAAK,IACJR,EACN0wB,CACT,GAAG,CAAC,GACAmxI,EAA+BR,EAAmB5wI,QAAO,SAAUqxI,EAAQC,GAC7E,IAAIC,EAEJ,OAAOviK,OAAOC,OAAOoiK,IAASE,EAAiB,CAAC,GAAkBD,GAAYA,EAAUC,GAC1F,GAAG,CAAC,GAWJ,SAASC,EAAWC,GAClB,IAAIC,EAEJ,OAAgE,OAAxDA,EAAwBD,EAAMtB,EAAgBp8I,OAAiB29I,EAAwB,EACjG,CAIA,SAASC,EAAUF,GACjB,OAAKA,EAIED,EAAWC,GAAO,GAHhB,EAIX,CACA,SAASG,EAAuBC,GAC9B,IAAIC,EAAQD,EAAQ/xJ,MAAM,KAGtBwxJ,EADgBQ,EAAMr1J,OAAO,EAAG,GACP,GAE7B,OAAI20J,EAAgBE,GACXQ,EAAMr2H,KAAK,KAGbo2H,CACT,CACA,SAASE,EAAaN,EAAOH,GAC3B,IAAIU,EAEAH,EAAUJ,EAAMtB,EAAgB0B,SAEpC,OAAKP,GAAaW,EAAmBR,IAIsC,OAAnEO,EAoBV,SAA+BP,EAAOH,GACpC,OAAOA,EAAWY,EAAgBT,GAAO7tH,MAAK,SAAUuuH,GACtD,OAAOA,EAAUzlJ,SAAS4kJ,EAC5B,IAAKS,EAAaN,EACpB,CAxBkCW,CAAsBX,EAAOH,IAAqBU,EAHzEH,CAIX,CACA,SAASQ,EAAiBC,GACxB,IAAIC,EAGJ,OAA0E,OAAlEA,EAA6B,MAAVnC,OAAiB,EAASA,EAAOkC,IAAqBC,EAAmB,EACtG,CAEA,SAASC,EAAkBX,EAASY,GAClC,MAAO,GArhgBT,SAAgBA,GACd,OAAQA,GACN,KAAKhE,EAAWiE,QACd,MALgB,wEAOlB,KAAKjE,EAAWkE,OACd,MAPe,sEASjB,KAAKlE,EAAWmE,SACd,MAZiB,0EAcnB,KAAKnE,EAAWoE,MAChB,QACE,MAjBc,oEAmBpB,CAsggBcC,CAAOL,GAAcZ,EAAU,MAC7C,CACA,SAASK,EAAgBT,GACvB,IAAIsB,EAEJ,OAAuE,OAA/DA,EAAyBtB,EAAMtB,EAAgB6C,aAAuBD,EAAyB,EACzG,CACA,SAASd,EAAmBR,GAC1B,OAAOS,EAAgBT,GAAOpiK,OAAS,CACzC,CAMA,SAAS4jK,EAAepB,GACtB,GAAKA,EAAL,CAIA,GAAIqB,EAAmBrB,GACrB,OAAOqB,EAAmBrB,GAG5B,IAAIsB,EAAkBvB,EAAuBC,GAC7C,OAAOqB,EAAmBC,EAP1B,CAQF,EA/EA,SAAWhD,GACTA,EAAsB,KAAI,IAC1BA,EAAyB,QAAI,IAC7BA,EAA4B,WAAI,IAChCA,EAA0B,SAAI,GAC/B,CALD,CAKGA,IAAoBA,EAAkB,CAAC,IA2E1C,IAeIiD,EAfAC,EAAyBrkK,OAAOw+B,OAAO4iI,GAAQkD,OAC/CJ,EAAqB,CAAC,EAC1BrmH,YAAW,WACTwmH,EAAUrzI,QAAO,SAAUqzI,EAAWE,GAEpC,OADAF,EAAUtB,EAAawB,IAAUA,EAC1BF,CACT,GAAGH,EACL,IASA,IAAIM,EAAoB,CAAC5E,EAAW6E,UAAW7E,EAAW8E,eAAgB9E,EAAW+E,eAAgB/E,EAAWgF,WAAYhF,EAAWiF,cAAejF,EAAWkF,WAAYlF,EAAWmF,QAASnF,EAAWoF,QAASpF,EAAWqF,OAC5NC,EAAkB,CACpBngJ,KAAM,gBACNu+I,SAAU1D,EAAW6E,WAEnBU,IAAoBf,EAAoB,CAAC,GAAqBxE,EAAW6E,WAAa,CACxFnB,SAAU1D,EAAW6E,UACrB1/I,KAAM,mBACLq/I,EAAkBxE,EAAW8E,gBAAkB,CAChDpB,SAAU1D,EAAW8E,eACrB3/I,KAAM,oBACLq/I,EAAkBxE,EAAW+E,gBAAkB,CAChDrB,SAAU1D,EAAW+E,eACrB5/I,KAAM,oBACLq/I,EAAkBxE,EAAWgF,YAAc,CAC5CtB,SAAU1D,EAAWgF,WACrB7/I,KAAM,gBACLq/I,EAAkBxE,EAAWiF,eAAiB,CAC/CvB,SAAU1D,EAAWiF,cACrB9/I,KAAM,mBACLq/I,EAAkBxE,EAAWkF,YAAc,CAC5CxB,SAAU1D,EAAWkF,WACrB//I,KAAM,cACLq/I,EAAkBxE,EAAWmF,SAAW,CACzCzB,SAAU1D,EAAWmF,QACrBhgJ,KAAM,WACLq/I,EAAkBxE,EAAWoF,SAAW,CACzC1B,SAAU1D,EAAWoF,QACrBjgJ,KAAM,WACLq/I,EAAkBxE,EAAWqF,OAAS,CACvC3B,SAAU1D,EAAWqF,MACrBlgJ,KAAM,SACLq/I,GACH,SAASgB,EAAqB9kC,GAC5B,OAAOkkC,EAAkB/8I,KAAI,SAAU67I,GACrC,OAAOvjK,EAAS,CAAC,EAAGolK,EAAiB7B,GAAWhjC,GAAaA,EAAUgjC,IAAahjC,EAAUgjC,GAChG,GACF,CACA,SAAS+B,EAA2B/B,GAClC,OAAOA,EAASA,QAClB,CACA,SAASgC,EAA+BhC,GACtC,OAAOA,EAASv+I,IAClB,CAiCA,SAASwgJ,GAAwBjC,EAAUpoB,GAKzC,YAJiB,IAAbA,IACFA,EAAW,CAAC,GAGPl7I,OAAOC,OAAOklK,EAAiB7B,GAAWpoB,EACnD,CAEA,SAASsqB,GAAYC,GACnB,IAAIC,OAEe,IAAfD,IACFA,EAAa,CAAC,GAGhB,IAAI7mI,EAAO+mI,KACPC,EAAgB5lK,OAAOC,OAAO2+B,EAAKgnI,cAAqE,OAArDF,EAAwBD,EAAWG,eAAyBF,EAAwB,CAAC,GACxIxX,EAASluJ,OAAOC,OAAO2+B,EAAM6mI,GAC7BI,EAlDN,SAA+BC,EAAsBxlC,GACnD,IAAIylC,OAEyB,IAAzBD,IACFA,EAAuB,SAGP,IAAdxlC,IACFA,EAAY,CAAC,GAGf,IAAI0lC,EAAQ,CAAC,EAET1lC,EAAU2lC,iBAAmBzG,EAAe0G,SAC9CF,EAAMpG,EAAW6E,WAAaS,GAGhC,IAAItmI,EAAOwmI,EAAqBY,GAEhC,OAAwD,OAAjDD,EAAwBD,IAAiCC,EAAsB1lK,OAI/EylK,EAAqBr+I,KAAI,SAAU67I,GACxC,MAAwB,iBAAbA,EACFiC,GAAwBjC,EAAU0C,EAAM1C,IAG1CvjK,EAAS,CAAC,EAAGwlK,GAAwBjC,EAASA,SAAU0C,EAAM1C,EAASA,WAAYA,EAC5F,IATS1kI,CAUX,CAoBmBunI,CAAsBV,EAAWI,WAAY,CAC5DI,eAAgB/X,EAAOkY,sBAGzB,OAAOrmK,EAAS,CAAC,EAAGmuJ,EAAQ,CAC1B2X,WAAYA,EACZD,cAAeA,EACfS,uBAJ2BnY,EAAOoY,eAAiBzG,EAAuB0G,QAAUrY,EAAOmY,wBAM/F,CACA,SAASV,KACP,MAAO,CACLa,iBAAiB,EACjBX,WAAYT,IACZqB,gBAAiB9G,EAAUkC,QAC3B4B,WAAYhE,EAAWoE,MACvB6C,aAAc,KACdC,YAAanD,EACbliK,OAAQ,IACRslK,gBAAgB,EAChBC,aAAc,SAEdpE,EAEAplI,GAAQ,EACRuoI,cAAe7lK,EAAS,CAAC,EAAG+mK,IAC5BR,gBAAgB,EAChBS,kBAAmB,SACnBV,uBAAwBxG,EAAuBmH,OAC/CC,mBAAmB,EACnBb,oBAAqB5G,EAAe0H,SACpC99J,MAAOs2J,EAAMoC,MACb1gK,MAAO,IACP+lK,cAAe,IAAI/+J,IAEvB,CACA,IAAI0+J,GAAoB,CACtBM,aAAc,QACdC,eAAgB,oBAChBC,aAAa,GAGX/tH,GAAY,CAAC,YACbguH,IAA6B,IAAAhyJ,eAA4BowJ,MAC7D,SAAS6B,GAAqBzmK,GAC5B,IAAI0K,EAAW1K,EAAK0K,SAChByiJ,EA9zgBN,SAAuC5tJ,EAAQmnK,GAC7C,GAAc,MAAVnnK,EAAgB,MAAO,CAAC,EAC5B,IAEIC,EAAKJ,EAFLD,EAAS,CAAC,EACVwnK,EAAa1nK,OAAO0B,KAAKpB,GAG7B,IAAKH,EAAI,EAAGA,EAAIunK,EAAWrnK,OAAQF,IACjCI,EAAMmnK,EAAWvnK,GACbsnK,EAAS9lK,QAAQpB,IAAQ,IAC7BL,EAAOK,GAAOD,EAAOC,IAGvB,OAAOL,CACT,CAizgBeynK,CAA8B5mK,EAAMw4C,IAEjD,OAAO,IAAA13C,eAAc0lK,GAAcjyJ,SAAU,CAC3CtG,MAAOw2J,GAAYtX,IAClBziJ,EACL,CACA,SAASm8J,KACP,OAAO,IAAAlyJ,YAAW6xJ,GACpB,CAcA,SAASM,KAIP,OAHwBD,KACkBX,iBAG5C,CACA,SAASa,KAIP,OAHwBF,KACWnE,UAGrC,CAOA,SAASsE,KAIP,OAHwBH,KACW/B,UAGrC,CAOA,SAASmC,KAIP,OAHwBJ,KACchC,aAGxC,CACA,SAASqC,KACP,IACI7+J,EADoBw+J,KACMx+J,MAE9B,OAAIA,IAAUs2J,EAAMwI,KAn6gBE,oBAAX5lK,QAIFA,OAAO8yF,WAAW,gCAAgC9qC,QAg6gB5Bo1G,EAAMwC,KAAOxC,EAAMoC,MAG3C14J,CACT,CA6BA,SAAS++J,KAIP,OAHyBP,KACetB,cAG1C,CACA,SAAS8B,KAIP,OAHyBR,KACuBvB,sBAGlD,CAOA,SAASgC,KAIP,OAHyBT,KACYjB,WAGvC,CAEA,SAAS2B,GAAaC,GACpB,MAAkC,iBAApBA,EAA+BA,EAAkB,KAAOA,CACxE,CAEA,IAAIC,GAAyB,CAAC,EAc9B,SAASC,GAAkBn4E,EAAcm0D,QACzB,IAAVA,IACFA,EAAQ,GAGV,IAAIikB,GAAY,IAAA3xJ,UAASu5E,GACrBz4E,EAAQ6wJ,EAAU,GAClBvwJ,EAAWuwJ,EAAU,GAErBC,GAAQ,IAAAhtJ,QAAO,MAiBnB,MAAO,CAAC9D,EAfR,SAA2B7I,GACzB,OAAO,IAAIwiF,SAAQ,SAAUC,GAC3B,IAAIm3E,EAEAD,EAAM/hK,SACRq3C,aAAa0qH,EAAM/hK,SAGrB+hK,EAAM/hK,QAAgC,OAArBgiK,EAAUtmK,aAAkB,EAASsmK,EAAQ/qH,YAAW,WACvE1lC,EAASnJ,GACTyiF,EAAQziF,EACV,GAAGy1I,EACL,GACF,EAGF,CAEA,SAASokB,KACP,IAAI1B,EA5DqBS,KACcT,cA4DvC,OAAO,SAAUpE,GACf,OAAOoE,EAAcjiK,IAAI69J,EAC3B,CACF,CAEA,SAAS+F,KACP,IAAIC,GAAsB,IAAAptJ,QAAO,CAAC,GAC9BqtJ,EAtFqBpB,KACalB,aAsFtC,OAAO,IAAAjyJ,UAAQ,WACb,IAAIiyJ,EAAe14D,WAAW,GAAKg7D,GAEnC,OAAKA,GAAsB58I,OAAO82B,MAAMwjH,GAC/BqC,EAAoBniK,QAGtBy9J,EAAUrzI,QAAO,SAAUi4I,EAAkBxG,GAKlD,OAaN,SAA6BA,EAAOyG,GAClC,OA5aF,SAAiBzG,GACf,OAAOz0D,WAAWy0D,EAAMtB,EAAgBgI,UAC1C,CA0aSC,CAAQ3G,GAASyG,CAC1B,CAnBUG,CAAoB5G,EAAOiE,KAC7BuC,EAAiBlG,EAAaN,KAAU,GAGnCwG,CACT,GAAGF,EAAoBniK,QACzB,GAAG,CAACoiK,GACN,CAoBA,SAASM,GAAsBvoK,GAC7B,IAP0BkqJ,EAOtBx/I,EAAW1K,EAAK0K,SAChBw9J,EAAmBH,KACnBrC,EAvMoBmB,KACgBnB,gBAwMpC8C,GAAY,IAAA5tJ,QAAO6sJ,IACnBgB,GAAmB,IAAA7tJ,SAAO,GAC1B8tJ,GAAmB,IAAA9tJ,SAAO,GAC1B+tJ,GAAsB,IAAA/tJ,QAAOstJ,GAC7BU,EAAuBlB,GAAkBzjK,KAAKC,MAAO,KACrD2kK,EAAanB,GAAkB,GAAI,KACnCoB,GAAuB,IAAA9yJ,WAAS,GAChC+yJ,GAAiB,IAAA/yJ,UAAS0vJ,GAC1BsD,GAAsB,IAAAhzJ,UAAS,MAC/BizJ,GAA8B,IAAAjzJ,UAAS,IAAI3O,KAC3C6hK,GAA4B,IAAAlzJ,UAAS,MAErC2xJ,GAAY,IAAA3xJ,WAAS,GACrBmzJ,EAAoBxB,EAAU,GAC9ByB,EAAuBzB,EAAU,GAGrC,OA5B0Bzd,EA2BPkf,GA1BnB,IAAA51J,YAAU,WACR02I,GAAS,EACX,GAAG,CAACA,KAyBG,IAAAppJ,eAAcuoK,GAAc90J,SAAU,CAC3CtG,MAAO,CACL+6J,oBAAqBA,EACrBD,eAAgBA,EAChBN,iBAAkBA,EAClBC,iBAAkBA,EAClBC,oBAAqBA,EACrBO,0BAA2BA,EAC3BD,4BAA6BA,EAC7BT,UAAWA,EACXW,kBAAmBA,EACnBN,WAAYA,EACZC,qBAAsBA,EACtBF,qBAAsBA,IAEvBl+J,EACL,CA7HAoyC,YAAW,WACTwmH,EAAUrzI,QAAO,SAAUq5I,EAAa5H,GAQtC,OAPuBD,EAAWC,GAAO6B,OAAO73H,KAAK,IAAIx+B,QAAQ,eAAgB,IAAI6C,MAAM,IAC1EpE,SAAQ,SAAU49J,GACjC,IAAIC,EAEJF,EAAYC,GAAsD,OAA5CC,EAAqBF,EAAYC,IAAkBC,EAAqB,CAAC,EAC/FF,EAAYC,GAAOvH,EAAaN,IAAUA,CAC5C,IACO4H,CACT,GAAG7B,GACL,IAmHA,IAAI4B,IAA6B,IAAA70J,eAAc,CAC7Cw0J,oBAAqB,CAAC,KAAM,WAAa,GACzCD,eAAgB,CAACnK,EAAUkC,QAAS,WAAa,GACjD2H,iBAAkB,CAChB5iK,SAAS,GAEX6iK,iBAAkB,CAChB7iK,SAAS,GAEX8iK,oBAAqB,CACnB9iK,QAAS,CAAC,GAEZqjK,0BAA2B,CAAC,KAAM,WAAa,GAC/CD,4BAA6B,CAAc,IAAI5hK,IAAO,WAAa,GACnEmhK,UAAW,CACT3iK,QAAS,CAAC,GAEZsjK,mBAAmB,EACnBN,WAAY,CAAC,GAAI,WACf,OAAO,IAAIp4E,SAAQ,WAEnB,GACF,GACAq4E,qBAAsB,EAAC,EAAO,WAAa,GAC3CF,qBAAsB,CAAc3kK,KAAKC,MAAO,WAAa,KAE/D,SAASulK,KAIP,OAHwB,IAAA90J,YAAW00J,IACDb,SAGpC,CAOA,SAASkB,KAIP,OAHyB,IAAA/0J,YAAW00J,IACMX,gBAG5C,CACA,SAASiB,KAIP,OAHyB,IAAAh1J,YAAW00J,IACAR,UAGtC,CACA,SAASe,KAIP,OAHyB,IAAAj1J,YAAW00J,IACIN,cAG1C,CACA,SAASc,KAIP,OAHyB,IAAAl1J,YAAW00J,IACiBJ,2BAGvD,CAOA,SAASa,KAIP,OAHyB,IAAAn1J,YAAW00J,IACeH,yBAGrD,CACA,SAASa,KAIP,OAHyB,IAAAp1J,YAAW00J,IACUP,oBAGhD,CACA,SAASkB,KACP,IACIpB,GADsB,IAAAj0J,YAAW00J,IACUT,qBAE3CqB,EAAmBrB,EAAqB,GACxCsB,EAAqBtB,EAAqB,GAC9C,MAAO,CAACqB,EAAkB,WACxBC,EAAmBjmK,KAAKC,MAC1B,EACF,CAQA,SAASimK,KACP,IAAIC,EAAmBV,KACvB,OAAO,WACLU,EAAiBvkK,SAAU,CAC7B,CACF,CACA,SAASwkK,KACP,IAAID,EAAmBV,KACvB,OAAO,WACL,OAAOU,EAAiBvkK,OAC1B,CACF,CAuBA,SAASykK,GAAkBjtF,EAAQ1uE,GACjC,IAAK0uE,IAAW1uE,EACd,OAAO,EAGT,IAAI47J,EAAcltF,EAAO/a,wBAAwBjiE,MAC7CmqK,EAAe77J,EAAQ2zD,wBAAwBjiE,MACnD,OAAOuiB,KAAKm+C,MAAMwpG,EAAcC,EAClC,CACA,SAASC,GAAkBptF,EAAQ1uE,GACjC,IAAK0uE,IAAW1uE,EACd,OAAO,EAGT,IAAI67J,EAAe77J,EAAQ2zD,wBAAwBjiE,MAC/CqqK,EAAc/7J,EAAQ2zD,wBAAwB90C,KAC9Cm9I,EAAattF,EAAO/a,wBAAwB90C,KAChD,OAAO5K,KAAKm+C,OAAO2pG,EAAcC,GAAcH,EACjD,CACA,SAASI,GAAUvtF,EAAQ1uE,GACzB,IAAK0uE,IAAW1uE,EACd,OAAO,EAGT,IAAIk8J,EAAgBl8J,EAAQ2zD,wBAAwB/hE,OAChDuqK,EAAan8J,EAAQ2zD,wBAAwBn1C,IAC7C49I,EAAY1tF,EAAO/a,wBAAwBn1C,IAC/C,OAAOvK,KAAKC,OAAOioJ,EAAaC,GAAaF,EAC/C,CAaA,SAASG,GAAeh1E,EAAU33D,EAAK4sI,GACrC,IAAa,IAAT5sI,EAAY,CACd,IACI6sI,EADUtoJ,KAAKm+C,OAAOi1B,EAAS12F,OAAS,GAAK2rK,GACfA,EAC9BE,EAAmBn1E,EAAS12F,OAAS,EACzC,OAAO02F,EAAS/zE,MAAMipJ,EAAmBC,EAAmB,EAC9D,CAEA,OAAOn1E,EAAS/zE,MAAMoc,EAAM4sI,GAAgB5sI,EAAM,GAAK4sI,EACzD,CAYA,SAASG,GAAgBp1E,EAAU33D,EAAK4sI,EAAeI,GACrD,IAAIC,EAAcN,GAAeh1E,EAAU33D,EAAK4sI,GAEhD,OAAOK,EAAYD,IAAeC,EAAYA,EAAYhsK,OAAS,IAAM,IAC3E,CACA,SAASisK,GAAoBC,EAAapyD,EAAY6xD,EAAe96I,GACnE,IAAIs7I,EAhBN,SAA4BD,EAAapyD,EAAY6xD,GACnD,IAAIvqD,EAAUtH,EAAa,EAE3B,OAAIsH,EAAUuqD,EAAgBO,EAAYlsK,OACjC,GAGF0rK,GAAeQ,EAAa9qD,EAASuqD,EAC9C,CAQwBS,CAAmBF,EAAapyD,EAAY6xD,GAElE,OAAOQ,EAAgBt7I,IAAUs7I,EAAgBA,EAAgBnsK,OAAS,IAAM,IAClF,CAwBA,IAAIqsK,GAAsB,SAAwBnO,EAAYD,EAAWmE,OACrEkK,GAAoC,CAACD,GAAqBnO,EAAYD,EAAWsO,SAAU,QAAUrO,EAAYD,EAAW74I,QAAU,KAAKgnB,KAAK,IACpJ,SAASogI,GAAiBC,GACxB,IAAIC,EAEJ,OAA8G,OAAtGA,EAAwC,MAAhBD,OAAuB,EAASA,EAAah3E,QAAQ42E,KAAgCK,EAAwB,IAC/I,CACA,SAASC,GAAiBt9J,GACxB,IAAIu9J,EAAkBC,GAAgCx9J,GAClDmzJ,EAAUsK,GAAwBz9J,GAEtC,IAAKu9J,EACH,MAAO,GAGT,IAAIxK,EAAQwB,EAAegJ,GAE3B,OAAKxK,EAIE,CAACA,EAAOI,GAHN,EAIX,CAMA,SAAS+I,GAAcl8J,GACrB,IAAI09J,EAEJ,OAAoF,OAA5EA,EAAmC,MAAX19J,OAAkB,EAASA,EAAQ+2H,cAAwB2mC,EAAwB,CACrH,CACA,SAASC,GAAmB39J,GAC1B,IAAKA,EACH,OAAO,EAGT,IAAIi4B,EAASklI,GAAiBn9J,GAC1B4zJ,EAAWgK,GAAgB3lI,GAE3B4lI,EAAcC,GAAoBlK,GACtC,OAAOmK,GAAiB9lI,GAAU8lI,GAAiBnK,GAAYiK,CACjE,CACA,SAASC,GAAoBlK,GAC3B,IAAIoK,EAAuBC,EAE3B,IAAKrK,EACH,OAAO,EAGT,IAAIsK,EAAuBtK,EAASzxI,cAAc0sI,EAAYD,EAAWuP,kBACzE,OAAuF,OAA9EH,EAAoC,MAAZpK,OAAmB,EAASA,EAAS78B,cAAwBinC,EAAwB,IAA6G,OAAtGC,EAAgD,MAAxBC,OAA+B,EAASA,EAAqBnnC,cAAwBknC,EAAwB,EACpQ,CAQA,SAASG,GAAgB5oJ,GACvB,OAAKA,EACEA,EAAKolC,QAAQi0G,EAAYD,EAAWyP,aAAe7oJ,EAAOA,EAAK2M,cAAc0sI,EAAYD,EAAWyP,aADzF,IAEpB,CACA,SAASC,GAA2BvL,GAClC,IAAIwL,EAAuBC,EAE3B,OAAKzL,EAIE4K,GAAmB5K,IAAuI,OAA5HwL,EAA2E,OAAlDC,EAAqBC,GAAkB1L,SAAkB,EAASyL,EAAmB3jI,WAAqB0jI,EAAwB,GAHvL,CAIX,CACA,SAASE,GAAkBz+J,GACzB,IAAI0+J,EAEJ,OAAK1+J,GAI8E,OAA3E0+J,EAAmB1+J,EAAQomF,QAAQyoE,EAAYD,EAAWyP,cAAwBK,EAHjF,IAIX,CAOA,SAASX,GAAiB/9J,GACxB,IAAI2+J,EAEJ,OAA8E,OAAtEA,EAAgC,MAAX3+J,OAAkB,EAASA,EAAQ0jE,WAAqBi7F,EAAqB,CAC5G,CAEA,SAASC,GAAkB5+J,GACzB,IAAI6+J,EAEJ,OAAgF,OAAxEA,EAAiC,MAAX7+J,OAAkB,EAASA,EAAQujE,YAAsBs7F,EAAsB,CAC/G,CAEA,SAASpB,GAAwB1K,GAC/B,IAAI+L,EAcqB9+J,EAASnP,EAC9BkuK,EAbJ,OAAuF,OAY9D/+J,EAZsBm9J,GAAiBpK,GAY9BliK,EAZsC,UAAhEiuK,EAeuD,OAAvDC,EAGV,SAAwB/+J,GACtB,IAAIg/J,EAEJ,OAA0E,OAAlEA,EAA8B,MAAXh/J,OAAkB,EAASA,EAAQi/J,SAAmBD,EAAmB,CAAC,CACvG,CAPgCE,CAAel/J,GAASnP,IAAgBkuK,EAAsB,MAfED,EAAqB,IACrH,CACA,SAAStB,GAAgCzK,GACvC,IAAII,EAAUsK,GAAwB1K,GAEtC,OAAII,EACKD,EAAuBC,GAGzB,IACT,CAcA,SAASgM,GAAen/J,GACtB,OAAOA,EAAQgkF,UAAUv5B,SAASmkG,EAAWsO,QAC/C,CACA,SAASkC,GAASp/J,GAChB,OAAKA,GACEA,EAAQgkF,UAAUv5B,SAASmkG,EAAW74I,OAC/C,CACA,SAASspJ,GAAiB3wF,GACxB,OAAKA,EAIEl4E,MAAMC,KAAKi4E,EAAO2V,iBAAiB44E,KAHjC,EAIX,CACA,SAASqC,GAAiBt/J,GACxB,IAAKA,EAAS,OAAO,KACrB,IAGIsrB,EAHY+zI,GAAiBr/J,GAEAsT,OAAO,GACZ,GAE5B,OAAKgY,EAIA6zI,GAAe7zI,GAIbA,EAHEi0I,GAAiBj0I,GAJjB,IAQX,CACA,SAASk0I,GAAiBx/J,GACxB,IAAIwrB,EAAOxrB,EAAQkvJ,mBAEnB,OAAK1jI,EAIA2zI,GAAe3zI,GAIbA,EAHEg0I,GAAiBh0I,GAJjBi0I,GAAkBC,GAAa1/J,GAQ1C,CACA,SAASu/J,GAAiBv/J,GACxB,IAAI+jC,EAAO/jC,EAAQgvJ,uBAEnB,OAAKjrH,EAIAo7H,GAAep7H,GAIbA,EAHEw7H,GAAiBx7H,GAJjBu7H,GAAiBK,GAAa3/J,GAQzC,CACA,SAASy/J,GAAkB/wF,GACzB,OAAKA,EA5MP,SAAwCA,EAAQ2Y,GAC9C,IAAK3Y,IAAW2Y,EAAS12F,OACvB,OAAO,KAGT,IAAIyrK,EAAY1tF,EAAO/a,wBAAwBn1C,IAC3CohJ,EAAelxF,EAAO/a,wBAAwB/0C,OAMlD,OALsByoE,EAASniD,MAAK,SAAUllC,GAC5C,IAAIm8J,EAAan8J,EAAQ2zD,wBAAwBn1C,IAC7CqhJ,EAAgB7/J,EAAQ2zD,wBAAwB/0C,OACpD,OAAOu9I,GAAcC,GAAaD,GAAcyD,GAAgBC,GAAiBzD,GAAayD,GAAiBD,CACjH,KAC0B,IAC5B,CAoMSE,CAA+BpxF,EADtB2wF,GAAiB3wF,IAHxB,IAKX,CACA,SAASixF,GAAa3/J,GACpB,IAAI4zJ,EAAWgK,GAAgB59J,GAE/B,IAAK4zJ,EACH,OAAO,KAGT,IAAI7vH,EAAO6vH,EAAS5E,uBAEpB,OAAKjrH,EAIDq7H,GAASr7H,GACJ47H,GAAa57H,GAGfA,EAPE,IAQX,CACA,SAAS27H,GAAa1/J,GACpB,IAAI4zJ,EAAWgK,GAAgB59J,GAE/B,IAAK4zJ,EACH,OAAO,KAGT,IAAIpoI,EAAOooI,EAAS1E,mBAEpB,OAAK1jI,EAID4zI,GAAS5zI,GACJk0I,GAAal0I,GAGfA,EAPE,IAQX,CACA,SAASoyI,GAAgB59J,GACvB,OAAKA,EAIEA,EAAQomF,QAAQyoE,EAAYD,EAAWgF,WAHrC,IAIX,CACA,SAASmM,GAAuB//J,GAC9B,OAAKA,EAIEA,EAAQomF,QAAQyoE,EAAYD,EAAWuP,kBAHrC,IAIX,CAEA,SAAS6B,GAAiB7M,GACxB,OAAOA,EAAQ/xJ,MAAM,KAAK2W,KAAI,SAAUkoJ,GACtC,OAAO/9J,OAAOg+J,cAAc5kI,SAAS2kI,EAAK,IAC5C,IAAGljI,KAAK,GACV,CAEA,IAAIojI,GAAmB,gBACvB,SAASC,GAAa5oJ,GACpB,IACE,IAAI0hJ,EAASmH,EAAuBC,EAEpC,GAA4B,OAArBpH,EAAUtmK,UAAmBsmK,EAAQ5pF,aAC1C,MAAO,GAGT,IAAIixF,EAAShtK,KAAKC,MAA0H,OAAnH6sK,EAA+C,OAAtBC,EAAW1tK,aAAkB,EAAS0tK,EAAShxF,aAAaK,QAAQwwF,KAA6BE,EAAwB,MAE3K,OAAI7oJ,IAASs4I,EAAe0H,SACnB+I,EAAOv/G,MAAK,SAAU1tD,EAAGmB,GAC9B,OAAOA,EAAEi4B,MAAQp5B,EAAEo5B,KACrB,IAGK6zI,CAGT,CAFE,MAAOC,GACP,MAAO,EACT,CACF,CAmCA,SAASC,KACP,IAAIC,EAAwBvF,KACxBwF,EAAkBD,EAAsB,GACxCE,EAAqBF,EAAsB,GAE3CG,EAAwBzF,KACxB0F,EAAkBD,EAAsB,GACxCE,EAAqBF,EAAsB,GAW/C,OAT0B,IAAAv5J,cAAY,WAChCq5J,GACFC,EAAmB,MAGjBE,GACFC,GAAmB,EAEvB,GAAG,CAACJ,EAAiBG,EAAiBF,EAAoBG,GAE5D,CACA,SAASC,KACP,IACIL,EADyBxF,KACgB,GAGzC2F,EADyB1F,KACgB,GAE7C,OAAO,WACL,QAASuF,GAAmBG,CAC9B,CACF,CAEA,SAASG,KACP,IAAIC,EAAsB1Q,IAGtB2Q,EADwBhG,KACwB,GAEpD,OAAO,SAA4Bn7J,GACjC,IACI+yJ,EADoBuK,GAAiBt9J,GACX,GAE1B+yJ,IACFmO,EAAoBlhK,GACpBmhK,EAAwBpO,GAE5B,CACF,CAEA,SAASqO,GAAqB5R,GAC5B,IAAI6R,GAAoB,IAAAp1J,UACpB20J,EAAqBK,KACrBnH,GAziBqB,IAAA9zJ,YAAW00J,IACMZ,iBA2iBtCqH,EADwBhG,KACwB,GAEhDmG,EAAsBb,KAGtBrG,EADwBa,KACe,GAEvC9D,EAjyBoBe,KACaf,aAmyBjCoK,EADsBlG,KACgB,GAEtCpE,EAAc0B,KACdn9I,GAAU,IAAAlU,cAAY,SAAiBqmB,GACzC,IAAImsI,EAAiB5iK,QAArB,CAIAoqK,IAEA,IAAIE,EAAkBC,GAAe9zI,GACjColI,EAAQyO,EAAgB,GACxBrO,EAAUqO,EAAgB,GAE9B,GAAKzO,GAAUI,EAAf,CAIA,IAAIuO,EAz/BR,SAAoCvO,GAClC,IACIwO,EADiBxO,EAAQ/xJ,MAAM,KACI,GAEvC,OAAO8wJ,EAAmBlkJ,SAAS2zJ,GAAqBA,EAAoB,IAC9E,CAo/BwBC,CAA2BzO,IAAYiH,EAC3DmH,IAtHJ,SAAsBxO,EAAOH,GAC3B,IAOIiP,EAPAtB,EAASH,KACTjN,EAAUE,EAAaN,EAAOH,GAC9B2K,EAAkBlK,EAAaN,GAC/Bx9C,EAAWgrD,EAAOr7H,MAAK,SAAU7zC,GAEnC,OADQA,EAAK8hK,UACAA,CACf,IAIE0O,EADEtsD,EACS,CAACA,GAAU33G,OAAO2iK,EAAO7iK,QAAO,SAAUjN,GACnD,OAAOA,IAAM8kH,CACf,KAOW,CALXA,EAAW,CACT49C,QAASA,EACT2O,SAAUvE,EACV7wI,MAAO,IAEa9uB,OAAO2iK,GAG/BhrD,EAAS7oF,QACTm1I,EAASlxK,OAASsjB,KAAK8Z,IAAI8zI,EAASlxK,OAAQ,IAE5C,IACE,IAAIoxK,EAEmB,OAAtBA,EAAWnvK,SAA2BmvK,EAASzyF,aAAaC,QAAQ4wF,GAAkB5sK,KAAK8nC,UAAUwmI,GAExG,CADE,MAAOG,GACT,CACF,CAuFIC,CAAalP,EAAO2O,GACpBvK,EAwEJ,SAA0BpE,EAAOqH,EAAgBnD,GAC/C,IAAI9D,EAAUE,EAAaN,EAAOqH,GAClC,MAAO,CACLA,eAAgBA,EAChBrH,MAAOiN,GAAiB7M,GACxB+O,YAAa,SAAqBnO,GAChC,OAAOkD,EAAY9D,EAASY,EAC9B,EACAoO,MAAOrP,EAAWC,GAClBI,QAASA,EACTD,uBAAwBG,EAAaN,GAEzC,CApFiBqP,CAAiBrP,EAAO2O,EAAezK,GAActpI,EALlE,CAVA,CAgBF,GAAG,CAACysI,EAAgBkH,EAAqBxH,EAAkB3C,EAAcoK,EAAiBtK,IACtFtlC,GAAc,IAAArqH,cAAY,SAAqBqmB,GACjD,IAAIurI,EAEAmI,EAAkBnqK,SACpBq3C,aAAa8yH,EAAkBnqK,SAGjC,IACI67J,EADmB0O,GAAe9zI,GACT,GAExBolI,GAAUQ,EAAmBR,KAIlCsO,EAAkBnqK,QAAgC,OAArBgiK,EAAUtmK,aAAkB,EAASsmK,EAAQ/qH,YAAW,WACnF2rH,EAAiB5iK,SAAU,EAC3BmqK,EAAkBnqK,aAAU1F,EAC5B8vK,IACAV,EAAmBjzI,EAAMn9B,QACzB2wK,EAAwBpO,EAC1B,GAAG,KACL,GAAG,CAAC+G,EAAkBwH,EAAqBV,EAAoBO,IAC3DvvC,GAAY,IAAAtqH,cAAY,WACtB+5J,EAAkBnqK,SACpBq3C,aAAa8yH,EAAkBnqK,SAC/BmqK,EAAkBnqK,aAAU1F,GACnBsoK,EAAiB5iK,SAM1BouF,uBAAsB,WACpBw0E,EAAiB5iK,SAAU,CAC7B,GAEJ,GAAG,CAAC4iK,KACJ,IAAAj1J,YAAU,WACR,GAAK2qJ,EAAQt4J,QAAb,CAIA,IAAImrK,EAAU7S,EAAQt4J,QAUtB,OATAmrK,EAAQptK,iBAAiB,QAASumB,EAAS,CACzC4f,SAAS,IAEXinI,EAAQptK,iBAAiB,YAAa08H,EAAa,CACjDv2F,SAAS,IAEXinI,EAAQptK,iBAAiB,UAAW28H,EAAW,CAC7Cx2F,SAAS,IAEJ,WACM,MAAXinI,GAA2BA,EAAQntK,oBAAoB,QAASsmB,GACrD,MAAX6mJ,GAA2BA,EAAQntK,oBAAoB,YAAay8H,GACzD,MAAX0wC,GAA2BA,EAAQntK,oBAAoB,UAAW08H,EACpE,CAhBA,CAiBF,GAAG,CAAC49B,EAASh0I,EAASm2G,EAAaC,GACrC,CAEA,SAAS6vC,GAAe9zI,GACtB,IAlbsB3tB,EAClBsiK,EAibA9xK,EAAkB,MAATm9B,OAAgB,EAASA,EAAMn9B,OAE5C,OApbsBwP,EAobFxP,EAjbbo+B,SAAoB,MAAX5uB,OAAkB,EAASA,EAAQ46C,QAAQoiH,OAAqC,MAAXh9J,GAA8E,OAAlDsiK,EAAwBtiK,EAAQggJ,oBAA1C,EAA4EsiB,EAAsB1nH,QAAQoiH,MAqb1MM,GAAiB9sK,GAHf,EAIX,CAuCA,SAASwiJ,GAASx9H,EAAMgJ,QACV,IAARA,IACFA,EAAM,GAGR,IAAI+jJ,EAAWnE,GAAgB5oJ,GAE1B+sJ,GAILj9E,uBAAsB,WACpBi9E,EAAS1nI,UAAYrc,EAAM,CAC7B,GACF,CAsBA,SAASgkJ,GAAsBzP,GAC7B,GAAKA,GAteP,SAA4BA,GAC1B,QAAKA,GAIEuL,GAA2BvL,GAAS+K,GAAoBF,GAAgB7K,GACjF,CAgeiB0P,CAAmB1P,KAI9BA,EAAM3sE,QAAQyoE,EAAYD,EAAW+R,kBAAzC,CAIA,IAAItC,EAAaI,GAAkB1L,GAC/B2P,EAAKpE,GAA2BvL,IA/BtC,SAAkBv9I,EAAMktJ,GACtB,IAAIH,EAAWnE,GAAgB5oJ,GAE1B+sJ,GAILj9E,uBAAsB,WACpBi9E,EAAS1nI,UAAY0nI,EAAS1nI,UAAY6nI,CAC5C,GACF,CAsBExvB,CAASmrB,IAAcP,GAAoBF,GAAgB7K,IAAU2P,GAJrE,CAKF,CAEA,SAASC,KACP,IAAIlT,EAAiBiB,IACrB,OAAO,IAAAppJ,cAAY,WACjBwnJ,EAAaW,EAAev4J,QAC9B,GAAG,CAACu4J,GACN,CAWA,SAASmT,KACP,IAAIjT,EAAwBiB,IAC5B,OAAO,IAAAtpJ,cAAY,WACZqoJ,EAAsBz4J,SAI3Bi4J,EAAuBQ,EAAsBz4J,QAC/C,GAAG,CAACy4J,GACN,CAaA,SAASkT,KACP,IAAIC,EAAcC,KACdtT,EAAiBiB,IACjBsS,EAAmBL,KACvB,OAAO,WACDlT,EAAev4J,UACjBu4J,EAAev4J,QAAQoI,MAAQ,IAGjCwjK,EAAY,IACZE,GACF,CACF,CAaA,SAASC,KACP,IAAIxT,EAAiBiB,IACjBmJ,EAAYiB,KACZoI,EAvCN,WACE,IAAIrJ,EAAYiB,KAChB,OAAO,SAASqI,EAAUC,GACxB,GAAsB,mBAAXA,EACT,OAAOD,EAAUC,EAAOvJ,EAAU3iK,UAGpC2iK,EAAU3iK,QAAUksK,CACtB,CACF,CA8BqBC,GACfP,EAAcC,KAKlB,MAAO,CACLn4J,SAKF,SAAkB4qC,GAChB,IAAI93C,EAASm8J,EAAU3iK,QACnBosK,EAAY9tH,EAAWtyC,cAE3B,GAAc,MAAVxF,GAAkBA,EAAO4lK,IAAcA,EAAU3yK,QAAU,EAC7D,OAAOmyK,EAAYQ,GAGrB,IAAIC,EAyER,SAA0BC,EAASC,GACjC,IAAKA,EACH,OAAO,KAGT,GAAIA,EAAKD,GACP,OAAOC,EAAKD,GAGd,IAAIE,EAAqBpzK,OAAO0B,KAAKyxK,GAAMziH,MAAK,SAAU1tD,EAAGmB,GAC3D,OAAOA,EAAE9D,OAAS2C,EAAE3C,MACtB,IAAGu0C,MAAK,SAAUr0C,GAChB,OAAO2yK,EAAQx1J,SAASnd,EAC1B,IAEA,GAAI6yK,EACF,OAAOD,EAAKC,GAGd,OAAO,IACT,CA7FuBC,CAAiBL,EAAW5lK,GAE/C,IAAK6lK,EAGH,OAAOT,EAAYQ,GAGrBJ,GAAa,SAAUhsK,GACrB,IAAI27J,EAEJ,OAAOviK,OAAOC,OAAO2G,IAAU27J,EAAiB,CAAC,GAAkByQ,GAoBzE,SAAoC5R,EAAQ8R,GAC1C,IAAII,EAAW,CAAC,EAEhB,IAAK,IAAIzQ,KAAWzB,EAAQ,CAC1B,IAAIqB,EAAQrB,EAAOyB,GAEf0Q,GAAS9Q,EAAOyQ,KAClBI,EAASzQ,GAAWJ,EAExB,CAEA,OAAO6Q,CACT,CAhCsFE,CAA2BP,EAAcD,GAAYzQ,GACvI,IACAiQ,EAAYQ,EACd,EA1BEpJ,WALwBc,KACW,GAKnCvL,eAAgBA,EA0BpB,CAEA,SAASsT,KACP,IACIgB,EADuB/I,KACc,GAErC1L,EAAgBgB,IACpB,OAAO,SAAqB4J,GAC1B50E,uBAAsB,WACpBy+E,EAAc7J,EAA2B,MAAdA,OAAqB,EAASA,EAAWh3J,cAAgBg3J,GAAYn1E,MAAK,WACnGiuD,GAASsc,EAAcp4J,QAAS,EAClC,GACF,GACF,CACF,CAgBA,SAAS2sK,GAAS9Q,EAAOyQ,GACvB,OAAO1Q,EAAWC,GAAOxxJ,MAAK,SAAU8T,GACtC,OAAOA,EAAKrH,SAASw1J,EACvB,GACF,CA8CA,SAASQ,GAAwBC,GAC/B,OAAKA,GAAsB,iBAARA,EAIZA,EAAIvxJ,OAAOxP,cAHT,EAIX,CAEA,SAASghK,KACP,IAnDIxmK,EAGAw8J,EAiDAiK,EADwBjJ,KACuB,GAE/CkJ,GAtDA1mK,EADgBo9J,KACO5jK,QAGvBgjK,EADuBc,KACW,GAE/B,SAAU7H,GACf,OAIJ,SAAqCA,EAASz1J,EAAQw8J,GACpD,IAAImK,EAEJ,SAAK3mK,IAAWw8J,GAIsC,OAA5CmK,EAAqB3mK,EAAOw8J,KAAwBmK,EAAmBlR,GACnF,CAZWmR,CAA4BnR,EAASz1J,EAAQw8J,EACtD,GAgDA,OAAO,SAAUnH,GACf,IAAII,EAAUE,EAAaN,GACvBwR,EAAeJ,EAAuB3uK,IAAI29J,GAC1CqR,EAAcJ,EAAgBjR,GAClC,MAAO,CACLoR,aAAcA,EACdC,YAAaA,EACbzuJ,OAAQwuJ,GAAgBC,EAE5B,CACF,CAEA,SAASC,GAAO1yK,GACd,OAAO,IAAAI,eAAc,SAAU7B,OAAOC,OAAO,CAC3CoD,KAAM,UACL5B,EAAO,CACRiV,WAAW,aAAK,UAAWjV,EAAMiV,aAC/BjV,EAAMgK,SACZ,CAEA,SAAS2oK,GAAYC,EAAKh9J,QACX,IAARA,IAAiBA,EAAM,CAAC,GAC7B,IAAIi9J,EAAWj9J,EAAIi9J,SAEnB,GAAKD,GAA2B,oBAAbxxK,SAAnB,CAEA,IAAIykC,EAAOzkC,SAASykC,MAAQzkC,SAAS0xK,qBAAqB,QAAQ,GAC9D/yK,EAAQqB,SAAShB,cAAc,SACnCL,EAAM6B,KAAO,WAEI,QAAbixK,GACEhtI,EAAKlqB,WACPkqB,EAAKz6B,aAAarL,EAAO8lC,EAAKlqB,YAKhCkqB,EAAK+jD,YAAY7pF,GAGfA,EAAMgzK,WACRhzK,EAAMgzK,WAAWngF,QAAUggF,EAE3B7yK,EAAM6pF,YAAYxoF,SAAS2wF,eAAe6gF,GAnBW,CAqBzD,CAKA,SAASI,GAAe1zK,GACtB,IAAI2zK,EAEAjS,EAAQ1hK,EAAK0hK,MACbI,EAAU9hK,EAAK8hK,QACfp9I,EAAS1kB,EAAK0kB,OACdkvJ,EAAiB5zK,EAAK4zK,eACtBlR,EAAa1iK,EAAK0iK,WAClBmR,EAAsB7zK,EAAK8zK,eAC3BA,OAAyC,IAAxBD,GAAwCA,EACzDzvK,EAAOpE,EAAKoE,KACZ2vK,EAAW/zK,EAAK+zK,SAChBnO,EAAc5lK,EAAK4lK,YACnBoO,EAAgB9R,EAAmBR,GACvC,OAAO,IAAA5gK,eAAcsyK,GAAQ,CAC3Bz9J,WAAW,aAAK4nJ,EAAWmE,OAAQiS,EAAQ,CAAC,EAAGA,EAAMpW,EAAW74I,QAAUA,EAAQivJ,EAAMpW,EAAWqW,gBAAkBA,EAAgBD,EAAMpW,EAAWsO,UAAYnnJ,IAAWkvJ,EAAgBD,EAAMpW,EAAW2E,oBAAsB8R,GAAiBF,EAAgBH,IACrQ,eAAgB7R,EAChB,aAAcF,EAAUF,GACxB,iBAAkBD,EAAWC,KAC5B,IAAA5gK,eAAcmzK,GAAe,CAC9BnS,QAASA,EACTJ,MAAOA,EACPt9J,KAAMA,EACNs+J,WAAYA,EACZqR,SAAUA,EACVnO,YAAaA,IAEjB,CACA,SAASqO,GAAc19B,GACrB,IAAImrB,EAAQnrB,EAAMmrB,MACdI,EAAUvrB,EAAMurB,QAChBY,EAAansB,EAAMmsB,WACnBt+J,EAAOmyI,EAAMnyI,KACb2vK,EAAWx9B,EAAMw9B,SACjBG,EAAoB39B,EAAMqvB,YAC1BA,OAAoC,IAAtBsO,EAA+BzR,EAAoByR,EACjEzzK,EAAQ,CAAC,EAET2D,IACF3D,EAAMJ,MAAQI,EAAMF,OAASE,EAAM8b,SAAWnY,EAAO,MAGvD,IAAI+vK,EAAgBzS,GAAgBwB,EAAepB,GAEnD,OAAKqS,GAIE,IAAArzK,eAAc,EAAA0Z,SAAU,KAAMkoJ,IAAehE,EAAW0V,QAAS,IAAAtzK,eAAcuzK,GAAa,CACjGvS,QAASA,EACTrhK,MAAOA,KACJ,IAAAK,eAAcwzK,GAAU,CAC3BxS,QAASA,EACTrhK,MAAOA,EACPihK,MAAOyS,EACPzR,WAAYA,EACZqR,SAAUA,EACVnO,YAAaA,KAZN,IAcX,CAEA,SAASyO,GAAY59B,GACnB,IAAIqrB,EAAUrrB,EAAMqrB,QAChBrhK,EAAQg2I,EAAMh2I,MAClB,OAAO,IAAAK,eAAc,OAAQ,CAC3B6U,WAAW,aAAK4nJ,EAAWgX,SAAU,oBACrC,eAAgBzS,EAChBrhK,MAAOA,GACNkuK,GAAiB7M,GACtB,CAEA,SAASwS,GAAS39B,GAChB,IAAI+qB,EAAQ/qB,EAAM+qB,MACdI,EAAUnrB,EAAMmrB,QAChBY,EAAa/rB,EAAM+rB,WACnBjiK,EAAQk2I,EAAMl2I,MACd+zK,EAAiB79B,EAAMo9B,SACvBA,OAA8B,IAAnBS,GAAoCA,EAC/C5O,EAAcjvB,EAAMivB,YAGpB6O,EADwB5K,KAC0B,GAEtD,OAAO,IAAA/oK,eAAc,MAAO,CAC1B4zK,IAAK9O,EAAY9D,EAASY,GAC1BiS,IAAK/S,EAAUF,GACf/rJ,WAAW,aAAK4nJ,EAAWgX,SAAU,iBACrC9lH,QAASslH,EAAW,OAAS,QAC7BjgK,QAIF,WACE2gK,GAA0B,SAAU/hI,GAClC,OAAO,IAAIrrC,IAAIqrC,GAAMpjC,IAAIwyJ,EAC3B,GACF,EAPErhK,MAAOA,GAQX,CAnGA4yK,GADe,8rDAyGf,SAASuB,GAAc50K,GACrB,IAAI2zK,EAEAkB,EAAiB70K,EAAK60K,eACtBnqK,EAAW1K,EAAK0K,SAChBga,EAAS1kB,EAAK0kB,OACdkvJ,EAAiB5zK,EAAK4zK,eACtBrR,EAAW+B,EAA2BuQ,GACtCC,EAAevQ,EAA+BsQ,GAClD,OAAO,IAAA/zK,eAAc,KAAM,CACzB6U,WAAW,aAAK4nJ,EAAWgF,UAAWoR,EAAQ,CAAC,EAAGA,EAAMpW,EAAW74I,QAAUA,EAAQivJ,EAAMpW,EAAWqW,gBAAkBA,EAAgBD,IACxI,YAAapR,EACb,aAAcuS,IACb,IAAAh0K,eAAc,MAAO,CACtB6U,UAAW4nJ,EAAWp3H,OACrB2uI,IAAe,IAAAh0K,eAAc,MAAO,CACrC6U,UAAW4nJ,EAAWuP,iBACrBpiK,GACL,CAEA,SAASqqK,GAAU/0K,GACjB,IAAI60K,EAAiB70K,EAAK60K,eAGtB5K,EADsBD,KACiB,GAEvCgL,EAtzCqBnO,KACoBxB,oBAszCzCO,EAAc0B,KACd2N,GAAY,IAAAvhK,UAAQ,WACtB,IAAIwhK,EAEJ,OAAoE,OAA5DA,EAAgBnG,GAAaiG,IAAsCE,EAAgB,EAC7F,GACA,CAACjL,EAAkB+K,IACftS,EAAaqE,KACjB,OAAO,IAAAjmK,eAAc8zK,GAAe,CAClCC,eAAgBA,EAChBjB,gBAAgB,EAChBlvJ,OAA6B,IAArBuwJ,EAAU31K,QACjB21K,EAAUvuJ,KAAI,SAAUyuJ,GACzB,IAAIzT,EAAQwB,EAAeiS,EAAc1E,UAEzC,OAAK/O,GAIE,IAAA5gK,eAAc4yK,GAAgB,CACnCI,gBAAgB,EAChBhS,QAASqT,EAAcrT,QACvBY,WAAYA,EACZhB,MAAOA,EACPliK,IAAK21K,EAAcrT,QACnB8D,YAAaA,IATN,IAWX,IACF,CAzDAyN,GADiB,8xBA+DjB,SAAS+B,KACP,IAAItQ,EAAakC,KACjB,OAAO,IAAAlmK,eAAc,KAAM,CACzB6U,UAAW4nJ,EAAW8X,WACrBvQ,EAAWp+I,KAAI,SAAUmuJ,EAAgB1kJ,GAC1C,IAAIoyI,EAAW+B,EAA2BuQ,GAE1C,OAAItS,IAAa1D,EAAW6E,WACnB,IAAA5iK,eAAci0K,GAAW,CAC9Bv1K,IAAK+iK,EACLsS,eAAgBA,KAIb,IAAA/zK,eAAcw0K,GAAgB,CACnC91K,IAAK+iK,EACLpyI,MAAOA,EACPoyI,SAAUA,EACVsS,eAAgBA,GAEpB,IACF,CAEA,SAASS,GAAet1K,GACtB,IAlvCIkoK,EACAqN,EAivCAplJ,EAAQnwB,EAAKmwB,MACboyI,EAAWviK,EAAKuiK,SAChBsS,EAAiB70K,EAAK60K,eACtBW,EAAgB3C,KAChBhN,EA92CqBgB,KACehB,eA82CpCnD,EAAaqE,KACboC,GAhoCqB,IAAAx0J,YAAW00J,IACOF,kBAkoCvCJ,EADwBa,KACe,GAEvC6L,GA7vCAvN,EAAmBH,KACnBwN,EAAkBzN,KACf,SAA2BpG,GAChC,IAAII,EAAUD,EAAuBG,EAAaN,IAClD,OAAOnkI,QAAQ2qI,EAAiBpG,IAAYyT,EAAgBzT,GAC9D,GAyvCI8D,EAAc0B,KACdwM,GAAkBhN,KAGlB4O,GAAgBvM,GAAqBh5I,EAAQ,EAAI,GAAKmyI,EAAiBC,GACvEoT,EAAgB,EAChBtV,EAASqV,EAAahvJ,KAAI,SAAUg7I,GACtC,IAAII,EAAUE,EAAaN,EAAOqH,GAE9B6M,EAAiBJ,EAAc9T,GAC/BwR,EAAe0C,EAAe1C,aAC9BC,EAAcyC,EAAezC,YAC7BzuJ,EAASkxJ,EAAelxJ,OAExBmxJ,EAAeJ,EAAkB/T,GAMrC,OAJIh9I,GAAUmxJ,IACZF,IAGEE,EACK,MAGF,IAAA/0K,eAAc4yK,GAAgB,CACnCI,eAAgBA,EAChBt0K,IAAKsiK,EACLJ,MAAOA,EACPI,QAASA,EACTp9I,OAAQwuJ,EACRU,eAAgBT,EAChBzQ,WAAYA,EACZqR,SAAUlO,EACVD,YAAaA,GAEjB,IACA,OAAO,IAAA9kK,eAAc8zK,GAAe,CAClCC,eAAgBA,EAGhBnwJ,OAAQixJ,IAAkBtV,EAAO/gK,QAChC+gK,EACL,CAEA,SAASyV,GAAuBz4F,GAC9B,IAAIqkF,EAAQ0M,GAAkB/wF,GAC9BogF,EAAaiE,GACbyP,GAAsBzP,EACxB,CASA,SAASqU,GAAsBpnK,GAC7B,GAAKA,EAAL,CAIA,IAAIwrB,EAAOg0I,GAAiBx/J,GAE5B,IAAKwrB,EACH,OAAO27I,GAAuBzH,GAAa1/J,IAG7C8uJ,EAAatjI,GACbg3I,GAAsBh3I,EATtB,CAUF,CACA,SAAS67I,GAAsBrnK,GAC7B,GAAKA,EAAL,CAIA,IAAI+jC,EAAOw7H,GAAiBv/J,GAE5B,GAAK+jC,EAIL+qH,EAAa/qH,GACby+H,GAAsBz+H,QA5BtB+qH,EAAawQ,GAwBkBK,GAAa3/J,IAL5C,CAUF,CACA,SAASsnK,GAA0BtnK,EAASunK,GAC1C,GAAKvnK,EAAL,CAIA,IAAI+jC,EAkBN,SAA8B/jC,GAC5B,IAAKA,EACH,OAAO,KAGT,IAAIm+J,EAAkB4B,GAAuB//J,GACzC4zJ,EAAWgK,GAAgBO,GAC3BzB,EAAaZ,GAAkBqC,EAAiBn+J,GAChD0vB,EAAMusI,GAAUkC,EAAiBn+J,GACjCwnK,EAAa7L,GAAkBwC,EAAiBn+J,GAEpD,GAAY,IAAR0vB,EAAW,CACb,IAAI+3I,EAAsB9H,GAAa/L,GAEvC,OAAK6T,EAIEhL,GAAgB4C,GAAiBoI,IAAuB,EAC/DD,EAAY9K,GAJH,IAKX,CAEA,OA5nC2BG,EA4nCAwC,GAAiBlB,GA5nCJ1zD,EA4nCsB/6E,EA5nCV4sI,EA4nCekL,EA5nCAhmJ,EA4nCYk7I,EA3nC3EgL,EAAkBrL,GAAeQ,EAAapyD,EAAa,EAAG6xD,GAE3DoL,EAAgBlmJ,IAAUkmJ,EAAgBA,EAAgB/2K,OAAS,IAAM,KAHlF,IAA6BksK,EAAapyD,EAAY6xD,EAAe96I,EAC/DkmJ,CA4nCN,CAzCaC,CAAqB3nK,GAEhC,IAAK+jC,EACH,OAAOwjI,IAGTzY,EAAa/qH,GACby+H,GAAsBz+H,EATtB,CAUF,CACA,SAAS6jI,GAA4B5nK,GACnC,GAAKA,EAAL,CAIA,IAAIwrB,EA6BN,SAAgCxrB,GAC9B,IAAKA,EACH,OAAO,KAGT,IAAIm+J,EAAkB4B,GAAuB//J,GACzC4zJ,EAAWgK,GAAgBO,GAC3BzB,EAAaZ,GAAkBqC,EAAiBn+J,GAChD0vB,EAAMusI,GAAUkC,EAAiBn+J,GACjCwnK,EAAa7L,GAAkBwC,EAAiBn+J,GAEpD,IArrCF,SAAoB0uE,EAAQ1uE,GAC1B,IAAK0uE,IAAW1uE,EACd,OAAO,EAGT,IAAIk8J,EAAgBl8J,EAAQ2zD,wBAAwB/hE,OAChDuqK,EAAan8J,EAAQ2zD,wBAAwBn1C,IAC7C49I,EAAY1tF,EAAO/a,wBAAwBn1C,IAC3CqpJ,EAAen5F,EAAO/a,wBAAwB/hE,OAClD,OAAOqiB,KAAKC,MAAMioJ,EAAaC,EAAYF,GAAiB2L,CAC9D,CA2qCOC,CAAW3J,EAAiBn+J,GAAU,CACzC,IAAI+nK,EAAsBrI,GAAa9L,GAEvC,OAAKmU,EAIEtL,GAAgB4C,GAAiB0I,GAAsB,EAAGP,EAAY9K,GAHpE,IAIX,CAGA,OADoBE,GAAoByC,GAAiBlB,GAAkBzuI,EAAK83I,EAAY9K,EAE9F,CApDasL,CAAuBhoK,GAClC,OAAO8uJ,EAAatjI,EAHpB,CAIF,CAhJAk5I,GADiB,2EAqMjB,IAGI12B,GAOJ,SAASi6B,KACP,IAwBIzpJ,EAAK0pJ,EAxBL3Y,EAAmBgB,IACnBX,EAp9jBGS,IAAoC,mBAu9jBvC0C,EADwBoI,KACM,GAE9BpH,EAAaqE,KAEb+P,EA0EN,SAA+BvY,GAC7B,IAAIL,EAAmBgB,IACnBf,EAAUiB,IACVn2J,EAAY0zI,GAAUqD,GAC1B,MAAO,CACL+2B,iBAAkBA,EAClBC,OAAQA,GAGV,SAASD,IACP,OAAO9tK,CACT,CAEA,SAAS+tK,IACP/tK,EAAY0zI,GAAUqD,GACtB,IAAIi3B,EAAiB,EAErB,IAAK1Y,EAAmB14J,QACtB,OAAO,EAGT,IAAItF,EAASsqK,GAActM,EAAmB14J,SAE9C,GAAIq4J,EAAiBr4J,QAAS,CAC5B,IAAIqxK,EAEAlG,EAAU7S,EAAQt4J,QAClB+gC,EAASklI,GAAiB5N,EAAiBr4J,SAC3CsxK,EAAetM,GAAcjkI,GACjCqwI,EAAiB3K,GAAmB1lI,IACmD,OAAtEswI,EAAgC,MAAXlG,OAAkB,EAASA,EAAQxnI,WAAqB0tI,EAAqB,GAEnGD,EAAiB12K,IAC/B0I,EAAY0zI,GAAUoD,KACtBk3B,GAAkBE,EAAe52K,EAErC,CAEA,OAAO02K,EAAiB12K,CAC1B,CACF,CAlH8B62K,CAAsB7Y,GAC9CyY,EAASF,EAAsBE,OAC/BD,EAAmBD,EAAsBC,iBAEzClH,EAAsB1Q,IACtBkY,EA4CN,SAAyB9Y,GACvB,IAAIL,EAAmBgB,IACvB,OAAO,WACL,IAAIz+J,EAAQ,CAAC,EAEb,IAAK89J,EAAmB14J,QACtB,OAAOpF,EAGT,GAAIy9J,EAAiBr4J,QAAS,CAC5B,IAAI+gC,EAASklI,GAAiB5N,EAAiBr4J,SAC3CqsE,EA7nCV,SAA4BvjE,GAC1B,IAAIi4B,EAASklI,GAAiBn9J,GAC1B4zJ,EAAWgK,GAAgB3lI,GAC/B,OAAO2mI,GAAkB3mI,GAAU2mI,GAAkBhL,EACvD,CAynCuB+U,CAAmB1wI,GAEpC,IAAKA,EACH,OAAOnmC,EAITA,EAAM+sB,KAAO0kD,GAAwB,MAAVtrC,OAAiB,EAASA,EAAO8mE,aAAe,CAC7E,CAEA,OAAOjtG,CACT,CACF,CAnEwB82K,CAAgBhZ,GAClCqH,EAAc0B,KACd1gI,EAASklI,GAAiB5N,EAAiBr4J,SAC3CgmK,EAAUnK,GAAS96H,GAAUs7H,EAAmBR,IAAU96H,EAAO+rD,UAAUv5B,SAASmkG,EAAW2E,oBAiBnG,OAhBA,IAAA1uJ,YAAU,WACHq4J,GAILiK,GAAuBvX,EAAmB14J,QAC5C,GAAG,CAAC04J,EAAoBsN,EAAS3N,KAG5B2N,GAAW3N,EAAiBr4J,QAC/BgqK,EAAoB,OAEpB1iJ,EAAM6pJ,IACNH,EAAeQ,MAGV,IAAAv2K,eAAc,MAAO,CAC1BwV,IAAKioJ,EACL5oJ,WAAW,aAAK4nJ,EAAW+R,gBAAiB,CAC1CzD,QAASA,EACT,cAAekL,MAAuBp6B,GAAUoD,OAElDt/I,MAAO,CACL0sB,IAAKA,IAEN0+I,GAAWnK,EAAQ,CAACM,EAAaN,IAAQn1J,OAAO41J,EAAgBT,IAAQz/I,MAAM,EAAG,GAAGyE,KAAI,SAAUo7I,GACnG,OAAO,IAAAhhK,eAAc4yK,GAAgB,CACnCl0K,IAAKsiK,EACLJ,MAAOA,EACPI,QAASA,EACTY,WAAYA,EACZoR,gBAAgB,EAChBlO,YAAaA,GAEjB,IAAK,MAAM,IAAA9kK,eAAc,MAAO,CAC9B6U,UAAW,oBACXlV,MAAOo2K,IAEX,CAjEAxD,GADiB,w1DAKjB,SAAW12B,GACTA,EAAUA,EAAc,GAAI,GAAK,KACjCA,EAAUA,EAAgB,KAAI,GAAK,MACpC,CAHD,CAGGA,KAAcA,GAAY,CAAC,IAkI9B,SAAS66B,KACP,IAAIrZ,EAAUiB,IAId,OAhzBF,SAAqBjB,GACnB,IAAI8R,EAAsBb,MAC1B,IAAA57J,YAAU,WACR,IAAIw9J,EAAU7S,EAAQt4J,QAEtB,GAAKmrK,EAYL,OARAA,EAAQptK,iBAAiB,SAAU+uE,EAAU,CAC3C5oC,SAAS,IAOJ,WACM,MAAXinI,GAA2BA,EAAQntK,oBAAoB,SAAU8uE,EACnE,EANA,SAASA,IACPs9F,GACF,CAKF,GAAG,CAAC9R,EAAS8R,GACf,CAwxBEwH,CAAYtZ,GACZ4R,GAAqB5R,GAn4CvB,WACE,IAAIA,EAAUiB,IACVsY,EAAiBvN,KACjBwN,EAAoBtN,MACxB,IAAA72J,YAAU,WACR,IAAIw9J,EAAU7S,EAAQt4J,QAKtB,SAAS+xK,IACHD,KACFD,GAEJ,CAEA,OAVW,MAAX1G,GAA2BA,EAAQptK,iBAAiB,YAAag0K,EAAa,CAC5E7tI,SAAS,IASJ,WACM,MAAXinI,GAA2BA,EAAQntK,oBAAoB,YAAa+zK,EACtE,CACF,GAAG,CAACzZ,EAASuZ,EAAgBC,GAC/B,CAg3CEE,IACO,IAAA/2K,eAAc,MAAO,CAC1B6U,UAAW4nJ,EAAWyP,WACtB12J,IAAK6nJ,IACJ,IAAAr9J,eAAc81K,GAAsB,OAAO,IAAA91K,eAAcs0K,GAAW,MACzE,CAkFA,SAAS0C,KAEP,OADmCzQ,OACKvI,EAAuBmH,MACjE,CACA,SAAS8R,KAEP,OADmC1Q,OACKvI,EAAuB0G,OACjE,CApGA6N,GADiB,6FAuGjB,IAGI2E,GAOJ,SAASC,GAAKj4K,GACZ,IAAI0K,EAAW1K,EAAK0K,SAChBiL,EAAY3V,EAAK2V,UACjBnV,EAAaR,EAAKS,MAClBA,OAAuB,IAAfD,EAAwB,CAAC,EAAIA,EACrC03K,EAAiBl4K,EAAKiJ,UACtBA,OAA+B,IAAnBivK,EAA4BF,GAAcG,IAAMD,EAChE,OAAO,IAAAp3K,eAAc,MAAO,CAC1BL,MAAOzB,EAAS,CAAC,EAAGyB,GACpBkV,WAAW,aAAK,OAAQA,EAAW1M,IAClCyB,EACL,CAEA,SAAS80I,GAAMx/I,GACb,IAAI2V,EAAY3V,EAAK2V,UACjBnV,EAAaR,EAAKS,MAClBA,OAAuB,IAAfD,EAAwB,CAAC,EAAIA,EACzC,OAAO,IAAAM,eAAc,MAAO,CAC1BL,MAAOzB,EAAS,CACdmzB,KAAM,GACL1xB,GACHkV,WAAW,aAAKA,IAEpB,CAhCA09J,GADiB,qJAKjB,SAAW2E,GACTA,EAAmB,IAAI,UACvBA,EAAsB,OAAI,YAC3B,CAHD,CAGGA,KAAkBA,GAAgB,CAAC,IA8BtC,SAASI,GAASp4K,GAChB,IAAI0K,EAAW1K,EAAK0K,SAChBiL,EAAY3V,EAAK2V,UACjBlV,EAAQT,EAAKS,MACjB,OAAO,IAAAK,eAAc,MAAO,CAC1BL,MAAOzB,EAAS,CAAC,EAAGyB,EAAO,CACzB+qB,SAAU,aAEZ7V,UAAWA,GACVjL,EACL,CAEA,SAAS2tK,GAASr4K,GAChB,IAAI0K,EAAW1K,EAAK0K,SAChBiL,EAAY3V,EAAK2V,UACjBlV,EAAQT,EAAKS,MACjB,OAAO,IAAAK,eAAc,MAAO,CAC1BL,MAAOzB,EAAS,CAAC,EAAGyB,EAAO,CACzB+qB,SAAU,aAEZ7V,UAAWA,GACVjL,EACL,CAxBA2oK,GADiB,wbA4BjBA,GADiB,kpEAGjB,IA8EIiF,GA7EJ,SAASC,KACP,OAAO,IAAAz3K,eAAcu3K,GAAU,CAC7B53K,MAAO,CACLF,OAJU,MAMX,IAAAO,eAAcs3K,GAAU,CACzB33K,MAAO,CACL8sB,OAAQ,EACRH,MAAO,KAER,IAAAtsB,eAAc03K,GAAgB,CAC/BvvK,UAAWqvK,GAAwBG,YAEvC,CACA,SAASD,GAAex4K,GACtB,IAAI2zK,EAEAuE,EAAiBl4K,EAAKiJ,UACtBA,OAA+B,IAAnBivK,EAA4BI,GAAwBI,WAAaR,EAC7E7Z,EAAoBiB,IACpB5R,EAAaoZ,KAEb0I,EAAwBzF,KACxB4O,EAASnJ,EAAsB,GAC/BoJ,EAAYpJ,EAAsB,GAElCqJ,EAAwBjP,KACxBb,EAAiB8P,EAAsB,GACvCC,EAAoBD,EAAsB,GAE1C5I,EAAsBb,KACtBuC,EAAmBL,KAEvB,GAAI5jB,EACF,OAAO,KAGT,IAAI1mH,EAtCU,GAsCc65H,EAAmBvhK,OAAS,KACpDy5K,EAAeJ,EAAS3xI,EAAYgyI,OACpCltJ,EAAW7iB,IAAcqvK,GAAwBG,SACrD,OAAO,IAAA33K,eAAcu3K,GAAU,CAC7B1iK,WAAW,aAAK,iBAAkB1M,GAAY0qK,EAAQ,CAAC,EAAGA,EAAMpW,EAAWlpI,MAAQskJ,EAAQhF,IAC3FlzK,MAAOqrB,EAAW,CAChBkkD,UAAW+oG,EACXx4K,OAAQw4K,GACN,CACF/oG,UAAW+oG,KAEZ,IAAAj4K,eAAc,MAAO,CACtB6U,UAAW,uBACXW,IAAK+nJ,GACJwC,EAAmBn6I,KAAI,SAAUuyJ,EAAmB75K,GACrD,IAAI85K,EAEAryI,EAASoyI,IAAsBlQ,EACnC,OAAO,IAAAjoK,eAAcsyK,GAAQ,CAC3B3yK,MAAO,CACL4sB,WAAW,aAAKvB,EAAW,eAAiB1sB,GAAKu5K,EA1DzC,GA0D8D,GAAK,MAAQ,eAAiBv5K,GAAKu5K,EA1DjG,GA0DsH,GAAK,MAAOA,GAAU9xI,GAAU,eAEhK1c,QAAS,WACHwuJ,GACFG,EAAkBG,GAClBtH,KAEAiH,GAAU,GAGZ3I,GACF,EACAzwK,IAAKy5K,EACLtjK,WAAW,aAAK,YAAcsjK,EAAmB,YAAaC,EAAS,CAAC,EAAGA,EAAO3b,EAAW12H,QAAUA,EAAQqyI,IAC/GnjK,SAAU4iK,EAAS,GAAK,EACxB,eAAgB9xI,EAChB,aAAc,aAAeu6H,EAAe6X,IAEhD,KACF,CAQA,SAASE,KACP,IAAItU,EAAgBoC,KAChBmS,EAAsBrB,KAE1B,OAAKlT,EAAc0B,aAIZ,IAAAzlK,eAAcm3K,GAAM,CACzBtiK,UAAW,gBACV,IAAA7U,eAAcu4K,GAAa,OAAO,IAAAv4K,eAAc0+I,GAAO,MAAO45B,GAAsB,IAAAt4K,eAAcy3K,GAAoB,MAAQ,MALxH,IAMX,CACA,SAASc,KACP,IAAIxU,EAAgBoC,KAEhBU,GAAY,IAAA3xJ,UAAS,MACrBsjK,EAAe3R,EAAU,GACzB4R,EAAkB5R,EAAU,GAE5BjF,EAAaqE,KAGbyS,EADwB1P,KACqB,GAE7ClE,EAAc0B,MAvQpB,SAA+BmS,EAAOF,GACpC,IAAIpb,EAAUiB,IACVuY,EAAoBtN,KACpBqN,EAAiBvN,MACrB,IAAA32J,YAAU,WACR,GAAKimK,EAAL,CAIA,IAAIzI,EAAU7S,EAAQt4J,QA6DtB,OA5DW,MAAXmrK,GAA2BA,EAAQptK,iBAAiB,UAAW81K,EAAU,CACvE3vI,SAAS,IAEA,MAAXinI,GAA2BA,EAAQptK,iBAAiB,YAAa48H,GAAa,GACnE,MAAXwwC,GAA2BA,EAAQptK,iBAAiB,QAAS+1K,GAAS,GAC3D,MAAX3I,GAA2BA,EAAQptK,iBAAiB,WAAYg2K,EAAS,CACvE7vI,SAAS,IAEA,MAAXinI,GAA2BA,EAAQptK,iBAAiB,OAAQg2K,GAAS,GAoD9D,WACM,MAAX5I,GAA2BA,EAAQntK,oBAAoB,YAAa28H,GACzD,MAAXwwC,GAA2BA,EAAQntK,oBAAoB,WAAY+1K,GACxD,MAAX5I,GAA2BA,EAAQntK,oBAAoB,QAAS81K,GAAS,GAC9D,MAAX3I,GAA2BA,EAAQntK,oBAAoB,OAAQ+1K,GAAS,GAC7D,MAAX5I,GAA2BA,EAAQntK,oBAAoB,UAAW61K,EACpE,CArEA,CAaA,SAASC,EAAQz2K,GACf,IAAI0jC,EAASklI,GAAiB5oK,EAAE/D,QAEhC,IAAKynC,EACH,OAAOgzI,IAGT,IAAI9X,EAAUsK,GAAwBxlI,GAClCslI,EAAkBC,GAAgCvlI,GAEtD,IAAKk7H,IAAYoK,EACf,OAAO0N,IAGTL,EAAgB,CACdzX,QAASA,EACToK,gBAAiBA,GAErB,CAEA,SAAS0N,EAAQ12K,GACf,GAAIA,IAGG4oK,GAFe5oK,EAAEi9G,eAGpB,OAAOo5D,EAAgB,MAI3BA,EAAgB,KAClB,CAEA,SAASG,EAASx2K,GACF,WAAVA,EAAE1D,KACJ+5K,EAAgB,KAEpB,CAEA,SAAS/4C,EAAYt9H,GACnB,IAAIy0K,IAAJ,CAIA,IAAI/wI,EAASklI,GAAiB5oK,EAAE/D,QAE5BynC,GACF62H,EAAa72H,EALf,CAOF,CASF,GAAG,CAACu3H,EAASsb,EAAOF,EAAiB5B,EAAmBD,GAC1D,CA0LEmC,CAAsBhV,EAAc0B,YAAagT,GACjD,IAAI7X,EAAQwB,EAA+B,MAAhBoW,OAAuB,EAASA,EAAapN,iBACpE4N,EAAgB,MAATpY,GAAiC,MAAhB4X,EAC5B,OAAO,IAAAx4K,gBAEP,WACE,IAAIulK,EAAuC,MAAxBmT,EAA+BA,EAAuBtW,EAAe2B,EAAcwB,cAEtG,IAAKA,EACH,OAAO,KAGT,IAAI0T,EAAcP,EAAuB5X,EAAU4X,GAAwB3U,EAAcyB,eACzF,OAAO,IAAAxlK,eAAc,EAAA0Z,SAAU,MAAM,IAAA1Z,eAAc,MAAO,KAAMg5K,GAAO,IAAAh5K,eAAcmzK,GAAe,CAClGnS,QAAyB,MAAhBwX,OAAuB,EAASA,EAAaxX,QACtDJ,MAAOA,EACPgB,WAAYA,EACZt+J,KAAM,GACNwhK,YAAaA,IACVS,GAAe,IAAAvlK,eAAcmzK,GAAe,CAC/CnS,QAASE,EAAaqE,GACtB3E,MAAO2E,EACP3D,WAAYA,EACZt+J,KAAM,GACNwhK,YAAaA,IACV,MAAOkU,GAAO,IAAAh5K,eAAc,MAAO,CACtC6U,UAAW,2BACVisJ,EAAUF,KAAU,IAAA5gK,eAAc,MAAO,CAC1C6U,UAAW,2BACVokK,GACL,GA3BqC,KA4BvC,EA7DA,SAAWzB,GACTA,EAAkC,SAAI,eACtCA,EAAoC,WAAI,gBACzC,CAHD,CAGGA,KAA4BA,GAA0B,CAAC,IAiH1D,SAAS0B,KAIP,QAH0BrQ,KACW,EAGvC,CAuBA,SAASsQ,KACP,IArBI9b,EACAF,EAoBA0J,GAAY,IAAA3xJ,UAAS,MACrBkkK,EAAiBvS,EAAU,GAC3BwS,EAAoBxS,EAAU,GAE9ByS,GAzBAjc,EAAUiB,IACVnB,EAAgBgB,IACb,SAAgCsD,GACrC,IAAI8X,EAEJ,GAAKlc,EAAQt4J,QAAb,CAIA,IAAIy0K,EAAoD,OAAvCD,EAAmBlc,EAAQt4J,cAAmB,EAASw0K,EAAiBvpJ,cAAc,eAAkByxI,EAAW,MAEpI,GAAK+X,EAAL,CAIA,IAAIjoG,EAAYioG,EAAUjoG,WAAa,EACvCsvE,GAASsc,EAAcp4J,QAASwsE,EAHhC,CANA,CAUF,IArEF,SAA0C8nG,GACxC,IAAIhc,EAAUiB,KACd,IAAA5rJ,YAAU,WACR,IAAI+mK,EAAoB,IAAI1lI,IACxBm8H,EAAU7S,EAAQt4J,QAClB4mE,EAAW,IAAI+tG,sBAAqB,SAAUh0J,GAChD,GAAKwqJ,EAAL,CAIA,IAAK,IAA0DyJ,EAAtDC,EAAY7a,EAAgCr5I,KAAmBi0J,EAAQC,KAAava,MAAO,CAClG,IAAIhtH,EAAQsnI,EAAMxsK,MAEd0sK,GAlBNC,SAEiG,OAA7FA,EAAqC,OAHlBN,EAmBSnnI,EAAMh0C,aAhBU,EAASm7K,EAAU3vK,aAAa,cAAwBiwK,EAAwB,MAkB9HL,EAAkBprK,IAAIwrK,EAAKxnI,EAAM2mG,kBACnC,CAtBN,IAA6BwgC,EACvBM,EAuBIC,EAAS11K,MAAMC,KAAKm1K,GACpBO,EAAeD,EAAOA,EAAOv7K,OAAS,GAE1C,GAAuB,GAAnBw7K,EAAa,GACf,OAAOX,EAAkBW,EAAa,IAGxC,IAAK,IAAIC,EAAK,EAAGC,EAAUH,EAAQE,EAAKC,EAAQ17K,OAAQy7K,IAAM,CAC5D,IAAIE,EAAaD,EAAQD,GACrBnlK,EAAKqlK,EAAW,GAGpB,GAFYA,EAAW,GAEZ,CACTd,EAAkBvkK,GAClB,KACF,CACF,CA1BA,CA2BF,GAAG,CACD0zB,UAAW,CAAC,EAAG,KAEN,MAAX0nI,GAA2BA,EAAQh+E,iBAAiBwqE,EAAYD,EAAWgF,WAAW52J,SAAQ,SAAU62E,GACtG/V,EAASG,QAAQ4V,EACnB,GACF,GAAG,CAAC27E,EAASgc,GACf,CAoCEe,CAAiCf,GACjC,IAAIgB,EAAenB,KACfoB,EAAmBpU,KACnB1I,EAAwBiB,IAC5B,OAAO,IAAAz+J,eAAc,MAAO,CAC1B6U,UAAW,mBACXW,IAAKgoJ,GACJ8c,EAAiB10J,KAAI,SAAUmuJ,GAChC,IAAIlB,EAEApR,EAAW+B,EAA2BuQ,GAC1C,OAAO,IAAA/zK,eAAcsyK,GAAQ,CAC3Br9J,SAAUolK,GAAgB,EAAI,EAC9BxlK,WAAW,aAAK,cAAe,WAAa4sJ,GAAWoR,EAAQ,CAAC,EAAGA,EAAMpW,EAAW12H,QAAU07H,IAAa2X,EAAgBvG,IAC3Hn0K,IAAK+iK,EACLp4I,QAAS,WACPgwJ,EAAkB5X,GAClB6X,EAAuB7X,EACzB,EACA,aAAcgC,EAA+BsQ,IAEjD,IACF,CA5GAxB,GADiB,0lzBAgHjBA,GADiB,kIAMjB,SAASgI,KACP,IAAI9V,EAAiB6B,KACjBkU,EAAqBxD,KAEzB,OAAIvS,EACK,MAGF,IAAAzkK,eAAcm3K,GAAM,CACzBtiK,UAAW,uBACV,IAAA7U,eAAcy6K,GAAQ,MAAOD,GAAqB,IAAAx6K,eAAc03K,GAAgB,MAAQ,KAC7F,CACA,SAAS+C,KACP,IAAI5T,GAAY,IAAA3xJ,UAAS,GACrBwlK,EAAM7T,EAAU,GAChB8T,EAAS9T,EAAU,GAEnBsI,EAAsBb,KACtBhR,EAAiBiB,IACjBqc,EAAclK,KACd13J,EA3pEmB+sJ,KACkBb,kBA2pErCztI,EApoEoBsuI,KACgBpB,gBAsoEpCkW,EADa/J,KACUr4J,SAEvBuqB,EAA0B,MAAlBs6H,OAAyB,EAASA,EAAev4J,QACzDoI,EAAiB,MAAT61B,OAAgB,EAASA,EAAM71B,MAC3C,OAAO,IAAAnN,eAAcu3K,GAAU,CAC7B1iK,UAAW,yBACV,IAAA7U,eAAc86K,GAAW,CAC1B3tK,MAAOA,KACL,IAAAnN,eAAc,QAAS,CAEzBy3B,UAAWA,EACX,aAAc,8BACdupG,QAASmuC,EACTt6J,UAAW,aACXrT,KAAM,OACNwX,YAAaA,EACbP,SAAU,SAAkB+iB,GAC1Bm/I,EAAOD,EAAM,GACb1+H,YAAW,WACT,IAAI++H,EAAqBC,EAEzBH,EAAoI,OAAzHE,EAA+B,MAATv/I,GAA2D,OAAjCw/I,EAAgBx/I,EAAMn9B,aAAhC,EAA2D28K,EAAc7tK,OAAiB4tK,EAAsB5tK,EACnK,GACF,EACAqI,IAAK8nJ,KACH,IAAAt9J,eAAc,MAAO,CACvB6U,UAAW,oBACT,IAAA7U,eAAcsyK,GAAQ,CACxBz9J,WAAW,aAAK,uBAAwB,8BACxCwU,QAASuxJ,IACR,IAAA56K,eAAc,MAAO,CACtB6U,UAAW,0BAEf,CA3DA09J,GADiB,g0KA6DjB,IAuBI0I,GAvBAC,GAAmCxe,EAAYD,EAAW0e,aAAe,IAAmBze,EAAYD,EAAW8X,WAEvH,SAASuG,GAAU57K,GACjB,IAAIiO,EAAQjO,EAAKiO,MAEjB,IAAKA,EACH,OAAO,KAGT,IAAIiuK,EAAc,2BAA8BvJ,GAAwB1kK,GAAS,KACjF,OAAO,IAAAnN,eAAc,QAAS,KAAM,aAAek7K,GAAsB,IAAMxe,EAAYD,EAAWgF,UAAY,aAAe2Z,EAAc,oDAAsDF,GAAsB,UAAYxe,EAAYD,EAAWmE,OAAS,QAAUwa,EAAc,2CACjS,CAEA,SAASC,KACP,OAAO,IAAAr7K,eAAcu3K,GAAU,CAC7B1iK,UAAW,eACV,IAAA7U,eAAcu6K,GAAiB,OAAO,IAAAv6K,eAAcm5K,GAAoB,MAC7E,CAEA,SAASmC,KACP,OAAOt6K,SAASC,aAClB,CAcA,SAASs6K,KAqDT,IACMC,EACAre,EACAE,EACAC,EAGAme,EAEAC,EACAlB,EACAjgH,EAjyCAgjG,GAyuCN,WACE,IAAIJ,EAAgBgB,IAChByc,EAAclK,KACd7vB,GA1wCAwc,EAAUiB,KACP,IAAAnpJ,cAAY,SAAUkX,GAC3B8mE,uBAAsB,WAChBkqE,EAAQt4J,UACVs4J,EAAQt4J,QAAQ2jC,UAAYrc,EAEhC,GACF,GAAG,CAACgxI,KAowCAC,EAAiBiB,IACjBsS,EAAmBL,KACnBmL,EAAiB9M,KACjB+M,GAt6DAtS,EAAmBV,KAChB,WACLU,EAAiBvkK,SAAU,CAC7B,GAo6DIoqK,EAAsBb,KACtB/zG,GAAY,IAAA3nD,UAAQ,WACtB,OAAO,SAAmB4oB,GACxB,IAAI98B,EAAM88B,EAAM98B,IAGhB,GAFAk9K,IAEQl9K,IAEDu8K,GAAeY,OAApB,CAGE,GAFArgJ,EAAMvjB,iBAEF0jK,IAEF,YADAxM,IAIFyL,IACA/5B,EAAS,GACTgwB,GACK,CAEX,CACF,GAAG,CAAChwB,EAAU+5B,EAAazL,EAAqB0B,EAAkB8K,EAAgBC,IA97DpF,IACMtS,EAupBN,IACMjM,GAsyCJ,IAAA3qJ,YAAU,WACR,IAAI3N,EAAUo4J,EAAcp4J,QAE5B,GAAKA,EAKL,OADAA,EAAQjC,iBAAiB,UAAWy3D,GAC7B,WACLx1D,EAAQhC,oBAAoB,UAAWw3D,EACzC,CACF,GAAG,CAAC4iG,EAAeG,EAAgBzc,EAAUtmF,GAC/C,CAlDEuhH,GAluCIve,EAAoBiB,IAuxCpBgd,GAtxCG,IAAArmK,cAAY,WACZooJ,EAAkBx4J,SAIvBi4J,EAAuBO,EAAkBx4J,QAC3C,GAAG,CAACw4J,IAixCAJ,EAAgBgB,IAChBd,EAAUiB,IACVhB,EAAiBiB,IAGjBkd,EADwBxS,KACwB,GAEhDyS,EAAwBK,KACxBvB,EAAqBxD,KACrBz8G,GAAY,IAAA3nD,UAAQ,WACtB,OAAO,SAAmB4oB,GACxB,IA/zBkC+gD,EAClCy/F,EAg0BA,OAFUxgJ,EAAM98B,KAGd,KAAKu8K,GAAegB,WAClB,IAAKzB,EACH,OAGFh/I,EAAMvjB,iBACNwjK,GAAwB,GACxBD,IACA,MAEF,KAAKP,GAAeiB,UAClB1gJ,EAAMvjB,iBACNyjK,IACA,MAEF,KAAKT,GAAet8B,MAClBnjH,EAAMvjB,iBAl1BwBskE,EAm1BC8gF,EAAQt4J,QAj1B/C43J,EADIqf,EAAa1O,GAAkB/wF,IAErB,MAAdy/F,GAA8BA,EAAW/tF,QAm1BvC,CACF,GAAG,CAACutF,EAAqBE,EAAuBD,EAAyBpe,EAASmd,KAClF,IAAA9nK,YAAU,WACR,IAAI3N,EAAUu4J,EAAev4J,QAE7B,GAAKA,EAKL,OADAA,EAAQjC,iBAAiB,UAAWy3D,GAC7B,WACLx1D,EAAQhC,oBAAoB,UAAWw3D,EACzC,CACF,GAAG,CAAC4iG,EAAeG,EAAgB/iG,IAGrC,WACE,IAAIgjG,EAAoBiB,IACpBqS,EAAmBL,KACnBlT,EAAiBiB,IACjBmd,EAAwBK,KAExBI,EAAyBlT,KACzB4O,EAASsE,EAAuB,GAChCrE,EAAYqE,EAAuB,GAEnC7D,EAAsBrB,KACtBuD,EAAqBxD,KACrBoF,EAASC,KACT9hH,GAAY,IAAA3nD,UAAQ,WACtB,OAAO,SACc4oB,GACjB,IAAI98B,EAAM88B,EAAM98B,IAEhB,GAAI87K,EACF,OAAQ97K,GACN,KAAKu8K,GAAeqB,UAGlB,GAFA9gJ,EAAMvjB,kBAED4/J,EACH,OAAOhH,IAGT0L,GAAkB1L,GAClB,MAEF,KAAKoK,GAAegB,WAGlB,GAFAzgJ,EAAMvjB,kBAED4/J,EACH,OAAOhH,IAGT2L,KACA,MAEF,KAAKvB,GAAeiB,UAClB1gJ,EAAMvjB,iBAEF4/J,GACFC,GAAU,GAGZ4D,IACA,MAEF,QACEU,EAAO5gJ,GAKb,GAAI88I,EACF,OAAQ55K,GACN,KAAKu8K,GAAewB,QAGlB,GAFAjhJ,EAAMvjB,kBAED4/J,EACH,OAAOhH,IAGT0L,GAAkB1L,GAClB,MAEF,KAAKoK,GAAeiB,UAGlB,GAFA1gJ,EAAMvjB,kBAED4/J,EACH,OAAOhH,IAGT2L,KACA,MAEF,QACEJ,EAAO5gJ,GAKjB,CACF,GAAG,CAACq8I,EAAQhH,EAAkBiH,EAAW4D,EAAuBU,EAAQ9D,EAAqBkC,KAC7F,IAAA9nK,YAAU,WACR,IAAI3N,EAAUw4J,EAAkBx4J,QAEhC,GAAKA,EAKL,OADAA,EAAQjC,iBAAiB,UAAWy3D,GAC7B,WACLx1D,EAAQhC,oBAAoB,UAAWw3D,EACzC,CACF,GAAG,CAACgjG,EAAmBD,EAAgBua,EAAQt9G,GACjD,CAxMEmiH,GA0MF,WACE,IAAI7L,EAAmBL,KACnBhT,EAAwBiB,IACxBpB,EAAUiB,IACV8d,EAASC,KACT9hH,GAAY,IAAA3nD,UAAQ,WACtB,OAAO,SAAmB4oB,GAGxB,OAFUA,EAAM98B,KAGd,KAAKu8K,GAAewB,QAClBjhJ,EAAMvjB,iBACN44J,IACA,MAEF,KAAKoK,GAAegB,WAClBzgJ,EAAMvjB,iBACN6kJ,EAAwBwe,MACxB,MAEF,KAAKL,GAAeqB,UAClB9gJ,EAAMvjB,iBACN2kJ,EAAwB0e,MACxB,MAEF,KAAKL,GAAeiB,UAClB1gJ,EAAMvjB,iBACN+8J,GAAuB3X,EAAQt4J,SAC/B,MAEF,QACEq3K,EAAO5gJ,GAGb,CACF,GAAG,CAAC6hI,EAASwT,EAAkBuL,KAC/B,IAAA1pK,YAAU,WACR,IAAI3N,EAAUy4J,EAAsBz4J,QAEpC,GAAKA,EAKL,OADAA,EAAQjC,iBAAiB,UAAWy3D,GAC7B,WACLx1D,EAAQhC,oBAAoB,UAAWw3D,EACzC,CACF,GAAG,CAACijG,EAAuBH,EAAS9iG,GACtC,CAzPEoiH,GA2PF,WACE,IAAItf,EAAUiB,IACVse,GAoFA/L,EAAmBL,KACnBqM,EAA0BpM,KAC1B4J,EAAenB,MACZ,IAAA/jK,cAAY,WACjB,OAAIklK,EACKxJ,IAGFgM,GACT,GAAG,CAAChM,EAAkBwJ,EAAcwC,KA5FhCpO,EAAqBK,KACrB6M,EAAiB9M,KACjBM,EAAsBb,KACtB8N,EAASC,KACT9hH,GAAY,IAAA3nD,UAAQ,WACtB,OAAO,SACc4oB,GACjB,IAAI98B,EAAM88B,EAAM98B,IACZuC,EAAgB+pK,GAAiBsQ,MAErC,OAAQ58K,GACN,KAAKu8K,GAAegB,WAClBzgJ,EAAMvjB,iBACNg9J,GAAsBh0K,GACtB,MAEF,KAAKg6K,GAAeqB,UAClB9gJ,EAAMvjB,iBACNi9J,GAAsBj0K,GACtB,MAEF,KAAKg6K,GAAeiB,UAGlB,GAFA1gJ,EAAMvjB,iBAEF0jK,IAAkB,CACpBxM,IACA,KACF,CAEAsG,GAA4Bx0K,GAC5B,MAEF,KAAKg6K,GAAewB,QAGlB,GAFAjhJ,EAAMvjB,iBAEF0jK,IAAkB,CACpBxM,IACA,KACF,CAEAgG,GAA0Bl0K,EAAe27K,GACzC,MAEF,KAAK3B,GAAev8B,MAClBljH,EAAMvjB,iBACNw2J,EAAmBjzI,EAAMn9B,QACzB,MAEF,QACE+9K,EAAO5gJ,GAIf,CACF,GAAG,CAACohJ,EAAcR,EAAQ3N,EAAoBkN,EAAgBxM,IA4BhE,IACM0B,EACAgM,EACAxC,GA9BJ,IAAA3nK,YAAU,WACR,IAAI3N,EAAUs4J,EAAQt4J,QAEtB,GAAKA,EAKL,OADAA,EAAQjC,iBAAiB,UAAWy3D,GAC7B,WACLx1D,EAAQhC,oBAAoB,UAAWw3D,EACzC,CACF,GAAG,CAAC8iG,EAAS9iG,GACf,CAhUEuiH,EACF,CAiUA,SAASf,KACP,IAAIc,EAA0BpM,KAC1B4J,EAAenB,KACf7b,EAAUiB,IACd,OAAO,IAAAnpJ,cAAY,WACjB,OAAIklK,EACKrF,GAAuB3X,EAAQt4J,SAGjC83K,GACT,GAAG,CAACxf,EAASwf,EAAyBxC,GACxC,CAeA,SAASkC,GAAkBQ,GACzB,IAAIC,EAAkB1B,KAEjB0B,IAIsBA,EA5nEVjgB,oBA6nEfggB,IAGFjgB,EAAwBkgB,GAC1B,CAEA,SAASR,KACP,IAAIQ,EAAkB1B,KAEjB0B,GAILpgB,EAAwBogB,EAC1B,CAEA,SAASX,KACP,IA9iDI/e,EACAqT,EA6iDAsM,GA9iDA3f,EAAiBiB,IACjBoS,EAAcC,KACX,SAAsBkB,GACvBxU,EAAev4J,SACjBu4J,EAAev4J,QAAQoI,MAAQ,GAAKmwJ,EAAev4J,QAAQoI,MAAQ2kK,EACnEnB,EAAYkB,GAAwBvU,EAAev4J,QAAQoI,SAE3DwjK,EAAYkB,GAAwBC,GAExC,GAsiDIjB,EAAmBL,KACnB/L,EAAiB6B,KACjB6I,EAAsBb,KAC1B,OAAO,SAAgB9yI,GACrB,IAAI98B,EAAM88B,EAAM98B,KAepB,SAAqB88B,GACnB,IAAIutD,EAAUvtD,EAAMutD,QAChBD,EAAUttD,EAAMstD,QAChBO,EAAS7tD,EAAM6tD,OACnB,OAAON,GAAWD,GAAWO,CAC/B,EAlBQ6zF,CAAY1hJ,IAAUipI,GAItB/lK,EAAIq6F,MAAM,wBACZv9D,EAAMvjB,iBACNk3J,IACA0B,IACAoM,EAAav+K,GAEjB,CACF,CASA,SAASy+K,GAAarY,EAAalE,EAAOgB,GACxC,GAAKhB,GAIDgB,IAAehE,EAAW0V,OAA9B,CAIA,IAAItS,EAAUE,EAAaN,GAEvBwc,GAAe/5K,IAAI29J,KAIvBK,EAAgBT,GAAO/1J,SAAQ,SAAUy2J,GACvC,IAOkBz5J,EAPdw1K,EAAWvY,EAAYxD,EAAWM,GAOpB/5J,EANLw1K,GAOH,IAAIC,OACV1J,IAAM/rK,CAPZ,IACAu1K,GAAe5uK,IAAIwyJ,GAZnB,CAaF,EAnbA,SAAWia,GACTA,EAA0B,UAAI,YAC9BA,EAAwB,QAAI,UAC5BA,EAA0B,UAAI,YAC9BA,EAA2B,WAAI,aAC/BA,EAAuB,OAAI,SAC3BA,EAAsB,MAAI,QAC1BA,EAAsB,MAAI,GAC3B,CARD,CAQGA,KAAmBA,GAAiB,CAAC,IA4axC,IAAImC,GAA8B,IAAI72K,IA8CtC,SAASg3K,GAAWr+K,GAClB,IAAI0K,EAAW1K,EAAK0K,SACpB,OAAO,IAAA5J,eAAcynK,GAAuB,MAAM,IAAAznK,eAAcw9K,GAAmB,KAAM5zK,GAC3F,CAEA,SAAS4zK,GAAkB/nC,GACzB,IAAIo9B,EA5CAxV,EACAuE,EACAkD,EA4CAl7J,EAAW6rI,EAAM7rI,SACjBrC,EAAQ6+J,KACRqX,EAAmBvE,KACnB/b,EAAgBgB,IAEhBuf,EApoFN,WACE,IAAIC,EAAqB5X,KACrBtmK,EAASk+K,EAAmBl+K,OAC5BF,EAAQo+K,EAAmBp+K,MAE/B,MAAO,CACLE,OAAQgnK,GAAahnK,GACrBF,MAAOknK,GAAalnK,GAExB,CA2nF6Bq+K,GACvBn+K,EAASi+K,EAAqBj+K,OAC9BF,EAAQm+K,EAAqBn+K,MAEjCg8K,KAvDIle,EAAUiB,IACVsD,EAAaqE,KACbnB,EAAc0B,MAClB,IAAA9zJ,YAAU,WACR,GAAIkvJ,IAAehE,EAAW0V,OAA9B,CAIA,IAAIpD,EAAU7S,EAAQt4J,QAEtB,OADW,MAAXmrK,GAA2BA,EAAQptK,iBAAiB,UAAWk+H,GACxD,WACM,MAAXkvC,GAA2BA,EAAQntK,oBAAoB,UAAWi+H,EACpE,CANA,CAQA,SAASA,EAAQxlG,GACf,IAAIsK,EAASklI,GAAiBxvI,EAAMn9B,QAEpC,GAAKynC,EAAL,CAIA,IACI86H,EADoBuK,GAAiBrlI,GACX,GAEzB86H,GAIDQ,EAAmBR,IACrBuc,GAAarY,EAAalE,EAAOgB,EAVnC,CAYF,CACF,GAAG,CAACvE,EAASuE,EAAYkD,IAyBzB,IAAInlK,EAAQ,CACVF,OAAQA,EACRF,MAAOA,GAET,OAAO,IAAAS,eAAc,QAAS,CAC5B6U,WAAW,aAAK4nJ,EAAW0e,YAAa,YAAatI,EAAQ,CAAC,EAAGA,EAAMpW,EAAWohB,cAAgBJ,EAAkB5K,EAAM,kBAAoBtrK,IAAUs2J,EAAMwC,KAAMwS,IACpKr9J,IAAK2nJ,EACLx9J,MAAOA,GACNiK,EACL,CA9BA2oK,GADiB,uNAoCjB,SAASuL,GAAYl+K,GACnB,OAAO,IAAAI,eAAck9J,EAA2B,MAAM,IAAAl9J,eAAc2lK,GAAsBxnK,OAAOC,OAAO,CAAC,EAAGwB,IAAQ,IAAAI,eAAcu9K,GAAY,MAAM,IAAAv9K,eAAcq7K,GAAQ,OAAO,IAAAr7K,eAAc02K,GAAM,OAAO,IAAA12K,eAAcq4K,GAAS,QACrO,CAJA9F,GADiB,ivHAOjB,IAAIt5J,GAA6B,SAAU8kK,GAzjmB3C,IAAwBC,EAAUC,EA4jmBhC,SAAShlK,EAAcrZ,GACrB,IAAIs+K,EAMJ,OAJAA,EAAQH,EAAiBl/K,KAAKqI,KAAMtH,IAAUsH,MACxC8O,MAAQ,CACZmoK,UAAU,GAELD,CACT,CApkmBgCD,EA0jmBFF,GA1jmBRC,EA0jmBP/kK,GAzjmBNta,UAAYR,OAAOiY,OAAO6nK,EAAWt/K,WAC9Cq/K,EAASr/K,UAAUqI,YAAcg3K,EAEjCtf,EAAgBsf,EAAUC,GAkkmB1BhlK,EAAc5C,yBAA2B,WACvC,MAAO,CACL8nK,UAAU,EAEd,EAEA,IAAIC,EAASnlK,EAActa,UAe3B,OAbAy/K,EAAO7nK,kBAAoB,SAA2BR,EAAOsoK,GAE3DrgG,QAAQjoE,MAAM,uCAAwCA,EAAOsoK,EAC/D,EAEAD,EAAOznK,OAAS,WACd,OAAIzP,KAAK8O,MAAMmoK,SACN,KAGFj3K,KAAKtH,MAAMgK,QACpB,EAEOqP,CACT,CAnCiC,CAmC/B,EAAAjC,WA6BF,KAJA,SAAuBpX,GACrB,OAAO,IAAAI,eAAciZ,GAAe,MAAM,IAAAjZ,eAAc89K,GAAa3/K,OAAOC,OAAO,CAAC,EAAGwB,IACzF,C,iCC9wmBAQ,EAAOvC,QAAU6+D,IAChB,GAAsB,iBAAXA,EACV,MAAM,IAAIj6C,UAAU,qBAKrB,OAAOi6C,EACLtwD,QAAQ,sBAAuB,QAC/BA,QAAQ,KAAM,QAAQ,C,qCCXZ,IAAIkyK,EAASp3K,MAAMA,KAAKo3K,UAAU,WAAwL,OAA7KA,EAASngL,OAAOC,QAAQ,SAASoC,GAAG,IAAI,IAAI+yC,EAAEj1C,EAAE,EAAEsD,EAAErD,UAAUC,OAAOF,EAAEsD,EAAEtD,IAAoB,IAAI,IAAIuD,KAAvB0xC,EAAEh1C,UAAUD,GAAqBH,OAAOQ,UAAUC,eAAeC,KAAK00C,EAAE1xC,KAAGrB,EAAEqB,GAAG0xC,EAAE1xC,IAAG,OAAOrB,CAAC,EAAS89K,EAAStqK,MAAM9M,KAAK3I,UAAU,EAAEJ,OAAO0/I,eAAehgJ,EAAtB,cAA4CsP,OAAM,IAAO,IAAIoxK,EAAmB,EAAQ,OAA0BC,EAAsB,EAAQ,OAA6BC,EAAkB,EAAQ,OAAyBC,EAAmBJ,EAASA,EAAS,CAAC,EAAEC,EAAmBI,iBAAiB,CAAC7gH,IAAIygH,EAAmBI,gBAAgBC,QAAQ,SAASC,EAAmBC,EAAUC,EAAYC,GAAeD,EAAYzrG,UAAU,EAAE,IAAiD2rG,EAA7CC,EAAaH,EAAYI,KAAKL,GAA6B,GAAGI,EAAa,CAACD,EAAc,GAAG,IAAIG,EAAiB,EAAE,EAAE,CAAIA,IAAmBF,EAAa7vJ,QAAO4vJ,GAAeH,EAAUl0H,UAAUw0H,EAAiBF,EAAa7vJ,QAAO,IAAIgwJ,EAAaH,EAAa,GAAGD,GAAeD,EAAcK,GAAcD,EAAiBF,EAAa7vJ,MAAMgwJ,EAAa7gL,MAAM,OAAO0gL,EAAaH,EAAYI,KAAKL,IAAeM,IAAmBN,EAAUtgL,SAAQygL,GAAeH,EAAUl0H,UAAUw0H,GAAkB,MAAMH,EAAcH,EAAU,OAAOG,CAAa,CAAC,IAAIK,EAAc,CAACC,aAAa,WAAWC,SAAS,6IAA6IC,kBAAkB,sKAAsKC,sBAAsB,iKAAiKC,UAAU,sMAA0MC,EAAqB,CAACv6J,KAAK,eAAew6J,MAAM,MAAMC,QAAQ,WAAimBjiL,EAAQkiL,OAA9lB,SAAgBtnJ,EAAKunJ,GAAI,IAAIC,OAAQ,IAALD,EAAYJ,EAAqBI,EAAGE,EAAGD,EAAG56J,KAAKA,OAAU,IAAL66J,EAAY,eAAeA,EAAGC,EAAGF,EAAGH,QAAQA,OAAa,IAALK,EAAY,UAAUA,EAAGC,EAAGH,EAAGJ,MAAiC,IAAIpnJ,EAAM,MAAM,GAAG,IAAI4nJ,EAAaf,EAAcj6J,GAAUi7J,EAAW5B,OAAvF,IAAL0B,EAAY,MAAMA,GAAoGG,WAAeC,EAAgB,gBAAVV,EAAwB,OAAOjB,EAAmBpmJ,EAAK4nJ,GAAa,SAAUr9I,GAAO,IAAIkR,EAAOosI,EAAWt9I,GAAO,IAAIkR,EAAO,CAAC,IAAI8qG,EAAKh8G,EAAMxkC,OAAO,EAAEigL,EAAkBgC,aAAaz9I,EAAM,GAAGA,EAAM09I,WAAW,GAAGxsI,GAAQssI,EAAM,MAAMxhC,EAAKx8F,SAAS,IAAI,KAAKw8F,GAAM,GAAG,CAAC,OAAO9qG,CAAO,GAAE,EAAuB,IAAIysI,EAAqB,CAACrhJ,MAAM,OAAOugJ,MAAM,OAAWe,EAAO,4CAAgDC,EAAU,gDAAoDC,EAAkB,CAACC,IAAI,CAACH,OAAOA,EAAOC,UAAUA,EAAUt3F,KAAKg1F,EAAmByC,YAAYD,KAAKE,MAAM,CAACL,OAAOA,EAAOC,UAAUA,EAAUt3F,KAAKg1F,EAAmByC,YAAYC,OAAOrC,MAAM,CAACgC,OAAOA,EAAOC,UAAUA,EAAUt3F,KAAKg1F,EAAmByC,YAAYpC,QAAYsC,EAAc5C,EAASA,EAAS,CAAC,EAAEwC,GAAmB,CAAChjH,IAAIgjH,EAAkBlC,QAAYz1F,EAAap5E,OAAOo5E,aAAiBg4F,EAAgBh4F,EAAa,OAAWi4F,EAA2B,CAACvB,MAAM,OAAO,SAASwB,EAAiBC,EAAOhB,EAAWiB,EAAYC,GAAU,IAAIC,EAAaH,EAAWI,EAAqBJ,EAAOA,EAAO9iL,OAAO,GAAG,GAAG+iL,GAAoC,MAAvBG,EAA4BD,EAAaH,OAAY,GAAGE,GAAiC,MAAvBE,EAA4BD,EAAaH,MAAW,CAAC,IAAIK,EAAwBrB,EAAWgB,GAAQ,GAAGK,EAAyBF,EAAaE,OAA6B,GAAe,MAAZL,EAAO,IAAsB,MAAZA,EAAO,GAAS,CAAC,IAAIM,EAAiBN,EAAO,GAAOO,EAA6B,KAAlBD,GAAyC,KAAlBA,EAAsBz4I,SAASm4I,EAAOr1H,OAAO,GAAG,IAAI9iB,SAASm4I,EAAOr1H,OAAO,IAAIw1H,EAAaI,GAAY,QAAQV,EAAgBU,EAAW,MAAMpD,EAAkB1Q,cAAc8T,GAAY14F,EAAaq1F,EAAsBsD,kBAAkBD,IAAaA,EAAW,CAAC,CAAC,OAAOJ,CAAY,CAA0N5jL,EAAQkkL,aAAjO,SAAsBT,EAAOtB,GAAI,IAAIC,QAAS,IAALD,EAAYoB,EAA2BpB,GAAIH,MAAiC,OAAIyB,EAAwBD,EAAiBC,EAAO5C,OAApE,IAALuB,EAAY,MAAMA,GAAiF+B,UAAS,GAAM,GAA3E,EAAiF,EAAkgBnkL,EAAQokL,OAAve,SAAgBxpJ,EAAKunJ,GAAI,IAAIC,OAAQ,IAALD,EAAYW,EAAqBX,EAAGE,EAAGD,EAAGJ,MAAMA,OAAW,IAALK,EAAY,MAAMA,EAAGC,EAAGF,EAAG3gJ,MAAMA,OAAW,IAAL6gJ,EAAoB,QAARN,EAAc,SAAS,OAAOM,EAAG,IAAI1nJ,EAAM,MAAM,GAAG,IAAIypJ,EAAahB,EAAcrB,GAAOvgJ,GAAWghJ,EAAW5B,EAAmBmB,GAAOmC,SAAaT,EAAoB,cAARjiJ,EAAwBkiJ,EAAiB,WAARliJ,EAAiB,OAAOu/I,EAAmBpmJ,EAAKypJ,GAAa,SAAUZ,GAAQ,OAAOD,EAAiBC,EAAOhB,EAAWiB,EAAYC,EAAU,GAAE,C,mCCAtxJrjL,OAAO0/I,eAAehgJ,EAAtB,cAA4CsP,OAAM,IAAOtP,EAAQmjL,YAAY,CAACD,IAAI,6CAA6CE,MAAM,uoBAAuoBrC,MAAM,qhCAAqhC/gL,EAAQ8gL,gBAAgB,CAACoC,IAAI,CAACiB,SAAS,CAAC,OAAO,IAAI,OAAO,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,KAAKzB,WAAW,CAAC,IAAI,OAAO,IAAI,OAAO,IAAI,SAAS,IAAI,SAAS,IAAI,UAAUU,MAAM,CAACe,SAAS,CAAC,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,IAAI,QAAQ,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,SAAS,IAAI,QAAQ,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,SAAS,IAAI,QAAQ,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,IAAI,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,UAAU,IAAI,aAAa,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,YAAY,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,OAAO,IAAI,SAAS,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,KAAKzB,WAAW,CAAC,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,SAAS,IAAI,QAAQ,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,SAAS,IAAI,QAAQ,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,IAAI,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,UAAU,IAAI,aAAa,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,YAAY,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,OAAO,IAAI,SAAS,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,YAAY3B,MAAM,CAACoD,SAAS,CAAC,SAAS,IAAI,UAAU,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,KAAK,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,SAAS,KAAK,kBAAkB,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,KAAK,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,cAAc,IAAI,SAAS,IAAI,WAAW,IAAI,QAAQ,IAAI,YAAY,IAAI,eAAe,IAAI,SAAS,IAAI,QAAQ,KAAK,SAAS,KAAK,UAAU,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,QAAQ,IAAI,yBAAyB,IAAI,YAAY,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,IAAI,cAAc,IAAI,QAAQ,IAAI,QAAQ,IAAI,cAAc,IAAI,gBAAgB,IAAI,eAAe,IAAI,gBAAgB,IAAI,6BAA6B,IAAI,0BAA0B,IAAI,oBAAoB,IAAI,UAAU,IAAI,WAAW,IAAI,cAAc,IAAI,WAAW,IAAI,oBAAoB,IAAI,SAAS,IAAI,cAAc,IAAI,oCAAoC,IAAI,UAAU,IAAI,SAAS,KAAK,QAAQ,IAAI,WAAW,IAAI,OAAO,IAAI,aAAa,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,KAAK,qBAAqB,IAAI,mBAAmB,IAAI,2BAA2B,IAAI,qBAAqB,IAAI,qBAAqB,IAAI,YAAY,IAAI,kBAAkB,IAAI,SAAS,KAAK,QAAQ,IAAI,WAAW,IAAI,aAAa,IAAI,0BAA0B,IAAI,cAAc,IAAI,oBAAoB,IAAI,oBAAoB,IAAI,yBAAyB,IAAI,kBAAkB,IAAI,wBAAwB,IAAI,6BAA6B,IAAI,yBAAyB,IAAI,qBAAqB,IAAI,mBAAmB,IAAI,kBAAkB,IAAI,sBAAsB,IAAI,sBAAsB,IAAI,cAAc,IAAI,iBAAiB,IAAI,qBAAqB,IAAI,cAAc,IAAI,wBAAwB,IAAI,sBAAsB,IAAI,mBAAmB,IAAI,sBAAsB,IAAI,uBAAuB,IAAI,oBAAoB,IAAI,uBAAuB,IAAI,YAAY,IAAI,iBAAiB,IAAI,cAAc,IAAI,SAAS,KAAK,WAAW,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,KAAK,UAAU,IAAI,WAAW,IAAI,YAAY,IAAI,UAAU,IAAI,qBAAqB,IAAI,yBAAyB,IAAI,UAAU,IAAI,SAAS,KAAK,YAAY,IAAI,UAAU,IAAI,eAAe,IAAI,gBAAgB,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,iBAAiB,IAAI,QAAQ,IAAI,QAAQ,KAAK,sBAAsB,IAAI,0BAA0B,IAAI,SAAS,KAAK,WAAW,IAAI,eAAe,IAAI,SAAS,IAAI,SAAS,IAAI,MAAM,IAAI,OAAO,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,KAAK,OAAO,IAAI,SAAS,KAAK,iBAAiB,IAAI,qBAAqB,IAAI,qBAAqB,IAAI,mBAAmB,IAAI,gBAAgB,IAAI,sBAAsB,IAAI,iBAAiB,IAAI,SAAS,KAAK,OAAO,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,IAAI,iBAAiB,IAAI,SAAS,IAAI,mBAAmB,IAAI,SAAS,IAAI,WAAW,IAAI,iBAAiB,IAAI,cAAc,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,OAAO,IAAI,UAAU,IAAI,eAAe,IAAI,YAAY,IAAI,QAAQ,IAAI,aAAa,IAAI,iBAAiB,IAAI,mBAAmB,IAAI,mBAAmB,IAAI,UAAU,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,IAAI,MAAM,IAAI,OAAO,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,eAAe,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,qBAAqB,IAAI,cAAc,IAAI,iBAAiB,IAAI,wBAAwB,IAAI,gBAAgB,IAAI,sBAAsB,IAAI,sBAAsB,IAAI,mBAAmB,IAAI,sBAAsB,IAAI,cAAc,IAAI,mBAAmB,IAAI,oBAAoB,IAAI,YAAY,IAAI,iBAAiB,IAAI,kBAAkB,IAAI,iBAAiB,IAAI,oBAAoB,IAAI,sBAAsB,IAAI,qBAAqB,IAAI,oBAAoB,IAAI,iBAAiB,IAAI,oBAAoB,IAAI,eAAe,IAAI,kBAAkB,IAAI,cAAc,IAAI,mBAAmB,IAAI,qBAAqB,IAAI,kBAAkB,IAAI,gBAAgB,IAAI,aAAa,IAAI,mBAAmB,IAAI,cAAc,IAAI,QAAQ,KAAK,OAAO,IAAI,eAAe,IAAI,WAAW,IAAI,kBAAkB,IAAI,uBAAuB,IAAI,mBAAmB,IAAI,kBAAkB,IAAI,uBAAuB,IAAI,mBAAmB,IAAI,SAAS,KAAK,mBAAmB,IAAI,oBAAoB,IAAI,SAAS,IAAI,QAAQ,IAAI,WAAW,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,gBAAgB,IAAI,cAAc,IAAI,QAAQ,KAAK,cAAc,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,wBAAwB,IAAI,uBAAuB,IAAI,sBAAsB,IAAI,0BAA0B,IAAI,yBAAyB,IAAI,mBAAmB,IAAI,YAAY,KAAK,QAAQ,KAAK,YAAY,IAAI,qBAAqB,IAAI,SAAS,IAAI,QAAQ,IAAI,iBAAiB,IAAI,cAAc,IAAI,yBAAyB,IAAI,eAAe,IAAI,aAAa,IAAI,kBAAkB,KAAK,cAAc,IAAI,eAAe,IAAI,oBAAoB,IAAI,wBAAwB,KAAK,sBAAsB,KAAK,mBAAmB,IAAI,yBAAyB,KAAK,oBAAoB,IAAI,oBAAoB,KAAK,iBAAiB,KAAK,oBAAoB,IAAI,uBAAuB,KAAK,yBAAyB,IAAI,YAAY,IAAI,iBAAiB,IAAI,mBAAmB,IAAI,gBAAgB,KAAK,sBAAsB,KAAK,iBAAiB,IAAI,4BAA4B,KAAK,sBAAsB,KAAK,gBAAgB,IAAI,qBAAqB,KAAK,0BAA0B,IAAI,sBAAsB,IAAI,qBAAqB,IAAI,wBAAwB,KAAK,0BAA0B,IAAI,oBAAoB,KAAK,yBAAyB,IAAI,sBAAsB,KAAK,2BAA2B,IAAI,cAAc,KAAK,mBAAmB,IAAI,gBAAgB,IAAI,qBAAqB,KAAK,0BAA0B,IAAI,qBAAqB,KAAK,gBAAgB,KAAK,qBAAqB,IAAI,aAAa,IAAI,kBAAkB,IAAI,sBAAsB,IAAI,kBAAkB,IAAI,mBAAmB,IAAI,SAAS,KAAK,UAAU,IAAI,WAAW,IAAI,OAAO,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,WAAW,IAAI,QAAQ,KAAK,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,SAAS,KAAK,yBAAyB,IAAI,mBAAmB,IAAI,OAAO,IAAI,SAAS,KAAK,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,YAAY,IAAI,cAAc,IAAI,gBAAgB,IAAI,oBAAoB,IAAI,aAAa,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,IAAI,cAAc,IAAI,kBAAkB,IAAI,SAAS,IAAI,OAAO,IAAI,aAAa,IAAI,kBAAkB,IAAI,uBAAuB,IAAI,kBAAkB,IAAI,UAAU,IAAI,YAAY,IAAI,eAAe,IAAI,iBAAiB,IAAI,SAAS,KAAK,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,SAAS,KAAK,UAAU,IAAI,OAAO,IAAI,QAAQ,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,OAAO,IAAI,mBAAmB,IAAI,uBAAuB,IAAI,yBAAyB,IAAI,QAAQ,IAAI,QAAQ,IAAI,sBAAsB,IAAI,eAAe,IAAI,kBAAkB,IAAI,wBAAwB,IAAI,iBAAiB,IAAI,uBAAuB,IAAI,uBAAuB,IAAI,oBAAoB,IAAI,uBAAuB,IAAI,eAAe,IAAI,aAAa,IAAI,kBAAkB,IAAI,mBAAmB,IAAI,kBAAkB,IAAI,qBAAqB,IAAI,uBAAuB,IAAI,sBAAsB,IAAI,qBAAqB,IAAI,kBAAkB,IAAI,qBAAqB,IAAI,gBAAgB,IAAI,mBAAmB,IAAI,eAAe,IAAI,SAAS,IAAI,iBAAiB,IAAI,gBAAgB,IAAI,SAAS,IAAI,QAAQ,IAAI,gBAAgB,IAAI,WAAW,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,OAAO,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,KAAK,mBAAmB,IAAI,mBAAmB,IAAI,oBAAoB,IAAI,iBAAiB,IAAI,UAAU,IAAI,gBAAgB,IAAI,SAAS,KAAK,SAAS,IAAI,WAAW,IAAI,uBAAuB,IAAI,iBAAiB,IAAI,sBAAsB,IAAI,mBAAmB,IAAI,wBAAwB,IAAI,gBAAgB,IAAI,SAAS,KAAK,SAAS,IAAI,QAAQ,IAAI,WAAW,IAAI,gBAAgB,IAAI,aAAa,IAAI,kBAAkB,IAAI,uBAAuB,IAAI,kBAAkB,IAAI,aAAa,IAAI,QAAQ,IAAI,QAAQ,IAAI,aAAa,IAAI,kBAAkB,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,QAAQ,KAAK,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,QAAQ,KAAK,cAAc,IAAI,UAAU,IAAI,eAAe,KAAK,cAAc,IAAI,UAAU,IAAI,eAAe,IAAI,mBAAmB,IAAI,eAAe,IAAI,SAAS,KAAK,cAAc,IAAI,SAAS,KAAK,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,aAAa,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,WAAW,IAAI,QAAQ,KAAK,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,aAAa,IAAI,eAAe,IAAI,iBAAiB,IAAI,qBAAqB,IAAI,UAAU,IAAI,cAAc,IAAI,UAAU,IAAI,SAAS,KAAK,YAAY,IAAI,eAAe,IAAI,qBAAqB,IAAI,gBAAgB,IAAI,kBAAkB,IAAI,UAAU,IAAI,eAAe,IAAI,YAAY,IAAI,gBAAgB,IAAI,mBAAmB,IAAI,oBAAoB,IAAI,SAAS,IAAI,YAAY,IAAI,UAAU,IAAI,SAAS,KAAK,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,IAAI,SAAS,IAAI,gBAAgB,IAAI,iBAAiB,IAAI,sBAAsB,IAAI,kBAAkB,IAAI,kBAAkB,IAAI,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,QAAQ,KAAK,OAAO,IAAI,SAAS,KAAK,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,mBAAmB,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,KAAK,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,OAAO,IAAI,QAAQ,KAAK,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,OAAO,IAAI,QAAQ,KAAK,UAAU,IAAI,WAAW,IAAI,YAAY,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,WAAW,IAAI,SAAS,IAAI,aAAa,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,UAAU,IAAI,YAAY,IAAI,aAAa,IAAI,WAAW,IAAI,UAAU,IAAI,YAAY,IAAI,UAAU,IAAI,SAAS,KAAK,OAAO,IAAI,QAAQ,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,aAAa,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,KAAK,QAAQ,IAAI,UAAU,IAAI,YAAY,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,aAAa,IAAI,UAAU,IAAI,SAAS,IAAI,aAAa,IAAI,gBAAgB,IAAI,cAAc,IAAI,YAAY,IAAI,cAAc,IAAI,WAAW,IAAI,WAAW,IAAI,aAAa,IAAI,SAAS,IAAI,aAAa,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,YAAY,IAAI,YAAY,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,YAAY,IAAI,QAAQ,KAAK,WAAW,IAAI,YAAY,IAAI,WAAW,IAAI,YAAY,IAAI,aAAa,IAAI,cAAc,IAAI,aAAa,IAAI,YAAY,IAAI,oBAAoB,IAAI,kBAAkB,IAAI,aAAa,IAAI,WAAW,IAAI,aAAa,IAAI,WAAW,IAAI,iBAAiB,IAAI,gBAAgB,IAAI,kBAAkB,IAAI,sBAAsB,IAAI,sBAAsB,IAAI,uBAAuB,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,KAAK,YAAY,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,aAAa,IAAI,YAAY,IAAI,aAAa,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,KAAK,UAAU,IAAI,aAAa,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,IAAI,aAAa,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,KAAK,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,YAAY,IAAI,QAAQ,IAAI,SAAS,IAAI,cAAc,IAAI,QAAQ,KAAK,SAAS,IAAI,UAAU,IAAI,cAAc,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,oBAAoB,IAAI,qBAAqB,IAAI,aAAa,IAAI,aAAa,IAAI,eAAe,IAAI,gBAAgB,IAAI,gBAAgB,IAAI,SAAS,IAAI,aAAa,IAAI,WAAW,IAAI,YAAY,IAAI,UAAU,IAAI,aAAa,IAAI,UAAU,IAAI,WAAW,IAAI,YAAY,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,WAAW,IAAI,eAAe,IAAI,cAAc,IAAI,SAAS,IAAI,YAAY,IAAI,WAAW,IAAI,SAAS,KAAK,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,YAAY,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,YAAY,IAAI,QAAQ,IAAI,aAAa,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,KAAK,WAAW,IAAI,YAAY,IAAI,gBAAgB,IAAI,gBAAgB,IAAI,aAAa,IAAI,eAAe,IAAI,UAAU,IAAI,WAAW,IAAI,mBAAmB,IAAI,oBAAoB,IAAI,UAAU,IAAI,UAAU,IAAI,aAAa,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,YAAY,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,OAAO,IAAI,YAAY,IAAI,UAAU,IAAI,YAAY,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,YAAY,IAAI,WAAW,IAAI,QAAQ,KAAK,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,YAAY,IAAI,gBAAgB,IAAI,UAAU,IAAI,QAAQ,IAAI,YAAY,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,kBAAkB,IAAI,WAAW,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,KAAK,QAAQ,IAAI,UAAU,IAAI,aAAa,IAAI,aAAa,IAAI,YAAY,IAAI,cAAc,IAAI,mBAAmB,IAAI,cAAc,IAAI,mBAAmB,IAAI,oBAAoB,IAAI,qBAAqB,IAAI,aAAa,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,SAAS,IAAI,aAAa,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,IAAI,UAAU,IAAI,QAAQ,KAAK,OAAO,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,IAAI,OAAO,IAAI,aAAa,IAAI,QAAQ,IAAI,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,aAAa,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,KAAK,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,YAAY,IAAI,UAAU,IAAI,WAAW,IAAI,YAAY,IAAI,UAAU,IAAI,eAAe,IAAI,gBAAgB,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,YAAY,IAAI,aAAa,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,gBAAgB,IAAI,iBAAiB,IAAI,kBAAkB,IAAI,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,KAAK,UAAU,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,aAAa,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,KAAK,OAAO,IAAI,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,aAAa,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,YAAY,IAAI,aAAa,IAAI,SAAS,KAAK,WAAW,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,SAAS,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,aAAa,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,MAAM,IAAI,OAAO,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,YAAY,IAAI,cAAc,IAAI,WAAW,IAAI,WAAW,IAAI,cAAc,IAAI,eAAe,IAAI,YAAY,IAAI,WAAW,IAAI,cAAc,KAAK,SAAS,KAAK,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,YAAY,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,cAAc,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,KAAK,aAAa,IAAI,aAAa,IAAI,UAAU,IAAI,WAAW,IAAI,kBAAkB,IAAI,mBAAmB,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,OAAO,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,KAAK,UAAU,IAAI,WAAW,IAAI,OAAO,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,aAAa,IAAI,aAAa,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,OAAO,IAAI,WAAW,IAAI,UAAU,IAAI,aAAa,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,YAAY,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,IAAI,YAAY,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,OAAO,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,KAAK,UAAU,IAAI,SAAS,KAAK,SAAS,KAAK,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,QAAQ,KAAK,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,KAAK,SAAS,KAAK,UAAU,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,OAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,aAAa,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,YAAY,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,YAAY,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,YAAY,IAAI,YAAY,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,YAAY,IAAI,aAAa,IAAI,SAAS,IAAI,OAAO,IAAI,cAAc,IAAI,kBAAkB,IAAI,oBAAoB,IAAI,kBAAkB,IAAI,mBAAmB,IAAI,mBAAmB,IAAI,oBAAoB,IAAI,sBAAsB,IAAI,wBAAwB,IAAI,mBAAmB,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,aAAa,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,YAAY,IAAI,aAAa,IAAI,SAAS,KAAK,WAAW,IAAI,eAAe,IAAI,YAAY,IAAI,cAAc,IAAI,eAAe,IAAI,YAAY,IAAI,YAAY,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,OAAO,IAAI,UAAU,IAAI,aAAa,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,eAAe,IAAI,QAAQ,IAAI,SAAS,IAAI,aAAa,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,kBAAkB,IAAI,uBAAuB,IAAI,eAAe,IAAI,mBAAmB,IAAI,kBAAkB,IAAI,mBAAmB,IAAI,UAAU,IAAI,SAAS,KAAK,WAAW,IAAI,YAAY,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,YAAY,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,aAAa,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,MAAM,IAAI,OAAO,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,YAAY,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,aAAa,IAAI,YAAY,IAAI,cAAc,KAAK,SAAS,KAAK,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,YAAY,IAAI,QAAQ,IAAI,WAAW,IAAI,eAAe,IAAI,eAAe,IAAI,aAAa,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,UAAU,IAAI,kBAAkB,IAAI,QAAQ,KAAK,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,YAAY,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,WAAW,IAAI,OAAO,IAAI,aAAa,IAAI,UAAU,IAAI,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,eAAe,IAAI,oBAAoB,IAAI,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,gBAAgB,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,UAAU,KAAK,UAAU,IAAI,YAAY,IAAI,UAAU,IAAI,YAAY,IAAI,aAAa,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,KAAK,WAAW,KAAK,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,aAAa,KAAK,SAAS,IAAI,QAAQ,IAAI,UAAU,IAAI,OAAO,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,YAAY,IAAI,UAAU,KAAK,WAAW,IAAI,WAAW,IAAI,UAAU,KAAK,WAAW,IAAI,YAAY,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,SAAS,IAAI,UAAU,KAAK,cAAc,KAAK,SAAS,KAAK,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,OAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,KAAK,UAAU,IAAI,SAAS,IAAI,QAAQ,IAAI,eAAe,IAAI,oBAAoB,IAAI,SAAS,IAAI,UAAU,KAAK,cAAc,KAAK,SAAS,KAAK,UAAU,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,KAAK,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,KAAK,aAAa,KAAK,YAAY,IAAI,YAAY,IAAI,YAAY,IAAI,UAAU,IAAI,YAAY,IAAI,YAAY,IAAI,YAAY,IAAI,SAAS,IAAI,cAAc,IAAI,WAAW,KAAK,UAAU,KAAK,YAAY,IAAI,QAAQ,IAAI,WAAW,IAAI,SAAS,KAAK,UAAU,IAAI,YAAY,KAAK,UAAU,IAAI,UAAU,IAAI,WAAW,KAAK,WAAW,KAAK,gBAAgB,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,IAAI,SAAS,KAAK,SAAS,KAAK,cAAc,IAAI,mBAAmB,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,YAAY,IAAI,SAAS,IAAI,UAAU,KAAK,UAAU,IAAI,YAAY,KAAK,cAAc,IAAI,eAAe,KAAK,UAAU,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,UAAU,IAAI,YAAY,KAAK,cAAc,IAAI,eAAe,KAAK,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,kBAAkB,IAAI,oBAAoB,IAAI,mBAAmB,IAAI,qBAAqB,IAAI,OAAO,IAAI,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,SAAS,KAAK,YAAY,IAAI,WAAW,IAAI,SAAS,KAAK,SAAS,KAAK,YAAY,KAAK,WAAW,IAAI,YAAY,KAAK,UAAU,KAAK,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,YAAY,IAAI,WAAW,IAAI,OAAO,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,KAAK,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,OAAO,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,YAAY,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,YAAY,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,aAAa,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,aAAa,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,YAAY,IAAI,QAAQ,KAAK,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,OAAO,IAAI,cAAc,IAAI,QAAQ,IAAI,WAAW,IAAI,YAAY,IAAI,WAAW,IAAI,SAAS,IAAI,aAAa,IAAI,UAAU,IAAI,YAAY,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,YAAY,IAAI,YAAY,IAAI,OAAO,IAAI,aAAa,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,IAAI,OAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,eAAe,IAAI,gBAAgB,IAAI,WAAW,IAAI,gBAAgB,IAAI,aAAa,IAAI,aAAa,IAAI,YAAY,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,KAAK,QAAQ,IAAI,WAAW,IAAI,QAAQ,KAAK,SAAS,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,gBAAgB,IAAI,YAAY,IAAI,UAAU,IAAI,YAAY,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,KAAK,WAAW,IAAI,UAAU,IAAI,aAAa,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,YAAY,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,YAAY,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,cAAc,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,YAAY,IAAI,YAAY,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,YAAY,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,YAAY,IAAI,aAAa,IAAI,UAAU,IAAI,SAAS,IAAI,OAAO,IAAI,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,KAAK,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,eAAe,IAAI,mBAAmB,IAAI,qBAAqB,IAAI,mBAAmB,IAAI,oBAAoB,IAAI,sBAAsB,IAAI,qBAAqB,IAAI,oBAAoB,IAAI,oBAAoB,IAAI,SAAS,IAAI,iBAAiB,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,IAAI,WAAW,IAAI,eAAe,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,KAAK,WAAW,IAAI,YAAY,IAAI,SAAS,IAAI,WAAW,IAAI,aAAa,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,aAAa,IAAI,YAAY,IAAI,OAAO,IAAI,WAAW,IAAI,UAAU,IAAI,OAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,aAAa,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,YAAY,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,aAAa,IAAI,UAAU,IAAI,SAAS,IAAI,QAAQ,KAAK,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,aAAa,IAAI,kBAAkB,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,YAAY,IAAI,UAAU,IAAI,kBAAkB,IAAI,WAAW,IAAI,aAAa,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,KAAK,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,KAAK,WAAW,IAAI,cAAc,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,KAAK,UAAU,IAAI,WAAW,KAAK,UAAU,IAAI,WAAW,IAAI,aAAa,IAAI,eAAe,IAAI,UAAU,IAAI,WAAW,IAAI,aAAa,IAAI,eAAe,IAAI,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,KAAK,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,oBAAoB,IAAI,gBAAgB,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,YAAY,IAAI,YAAY,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,YAAY,IAAI,WAAW,IAAI,aAAa,IAAI,cAAc,IAAI,cAAc,IAAI,eAAe,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,eAAe,IAAI,gBAAgB,IAAI,WAAW,IAAI,gBAAgB,IAAI,aAAa,IAAI,aAAa,IAAI,YAAY,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,IAAI,YAAY,IAAI,YAAY,IAAI,YAAY,IAAI,YAAY,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,WAAW,IAAI,aAAa,IAAI,cAAc,IAAI,cAAc,IAAI,eAAe,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,YAAY,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,QAAQ,KAAK,WAAW,IAAI,cAAc,IAAI,UAAU,IAAI,aAAa,IAAI,WAAW,IAAI,gBAAgB,IAAI,aAAa,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,aAAa,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,KAAK,YAAY,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,aAAa,IAAI,iBAAiB,IAAI,iBAAiB,IAAI,mBAAmB,IAAI,cAAc,IAAI,kBAAkB,IAAI,oBAAoB,IAAI,WAAW,IAAI,SAAS,IAAI,aAAa,IAAI,YAAY,IAAI,UAAU,IAAI,YAAY,IAAI,aAAa,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,qBAAqB,IAAI,sBAAsB,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,KAAK,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,aAAa,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,SAAS,KAAK,YAAY,IAAI,gBAAgB,IAAI,kBAAkB,IAAI,mBAAmB,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,YAAY,IAAI,eAAe,IAAI,WAAW,IAAI,aAAa,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,KAAK,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,YAAY,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,eAAe,IAAI,aAAa,IAAI,eAAe,IAAI,WAAW,IAAI,UAAU,IAAI,cAAc,IAAI,SAAS,IAAI,WAAW,IAAI,aAAa,IAAI,iBAAiB,KAAK,kBAAkB,KAAK,iBAAiB,KAAK,kBAAkB,KAAK,aAAa,IAAI,oBAAoB,IAAI,qBAAqB,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,QAAQ,KAAK,UAAU,IAAI,UAAU,KAAK,UAAU,KAAK,SAAS,KAAK,UAAU,IAAI,UAAU,IAAI,SAAS,KAAK,WAAW,KAAK,WAAW,KAAK,WAAW,KAAK,WAAW,KAAK,YAAY,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,KAAK,SAAS,KAAK,OAAO,IAAI,OAAO,IAAI,WAAW,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,KAAK,UAAU,IAAI,UAAU,IAAI,OAAO,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,KAAK,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,KAAK,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,KAAK,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,YAAY,IAAI,SAAS,KAAK,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAKzB,WAAW,CAAC,IAAI,UAAU,IAAI,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,KAAK,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,IAAI,UAAU,KAAK,SAAS,IAAI,YAAY,IAAI,WAAW,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,mBAAmB,IAAI,QAAQ,IAAI,YAAY,IAAI,WAAW,IAAI,SAAS,KAAK,QAAQ,KAAK,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,YAAY,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,aAAa,IAAI,WAAW,IAAI,WAAW,IAAI,eAAe,IAAI,WAAW,IAAI,UAAU,IAAI,0BAA0B,IAAI,SAAS,IAAI,cAAc,IAAI,WAAW,IAAI,aAAa,IAAI,UAAU,KAAK,SAAS,IAAI,QAAQ,IAAI,YAAY,IAAI,aAAa,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,YAAY,IAAI,SAAS,IAAI,kBAAkB,IAAI,WAAW,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,YAAY,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,cAAc,IAAI,iBAAiB,IAAI,UAAU,IAAI,cAAc,IAAI,wBAAwB,IAAI,sBAAsB,IAAI,UAAU,IAAI,sBAAsB,IAAI,uBAAuB,IAAI,qBAAqB,IAAI,uBAAuB,IAAI,QAAQ,IAAI,eAAe,KAAK,SAAS,IAAI,WAAW,IAAI,QAAQ,IAAI,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,KAAK,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,qBAAqB,IAAI,yBAAyB,IAAI,UAAU,KAAK,SAAS,IAAI,YAAY,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,gBAAgB,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,iBAAiB,IAAI,QAAQ,KAAK,QAAQ,IAAI,sBAAsB,IAAI,SAAS,KAAK,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,OAAO,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,IAAI,cAAc,IAAI,SAAS,IAAI,mBAAmB,IAAI,YAAY,IAAI,QAAQ,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,kBAAkB,IAAI,WAAW,IAAI,gBAAgB,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS,IAAI,aAAa,IAAI,WAAW,IAAI,UAAU,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,IAAI,aAAa,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,OAAO,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,WAAW,IAAI,qBAAqB,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,sBAAsB,IAAI,oBAAoB,IAAI,sBAAsB,IAAI,WAAW,IAAI,mBAAmB,IAAI,oBAAoB,IAAI,UAAU,IAAI,eAAe,IAAI,kBAAkB,IAAI,UAAU,IAAI,oBAAoB,IAAI,mBAAmB,IAAI,qBAAqB,IAAI,oBAAoB,IAAI,kBAAkB,IAAI,oBAAoB,IAAI,UAAU,IAAI,kBAAkB,IAAI,cAAc,IAAI,SAAS,IAAI,OAAO,IAAI,aAAa,IAAI,QAAQ,IAAI,SAAS,KAAK,QAAQ,IAAI,OAAO,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,KAAK,SAAS,IAAI,YAAY,IAAI,YAAY,IAAI,QAAQ,IAAI,WAAW,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,gBAAgB,IAAI,WAAW,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,mBAAmB,KAAK,YAAY,KAAK,QAAQ,IAAI,YAAY,IAAI,SAAS,IAAI,aAAa,IAAI,QAAQ,IAAI,WAAW,IAAI,cAAc,IAAI,UAAU,IAAI,YAAY,IAAI,OAAO,KAAK,UAAU,IAAI,YAAY,IAAI,SAAS,IAAI,SAAS,KAAK,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,UAAU,KAAK,WAAW,IAAI,kBAAkB,KAAK,uBAAuB,IAAI,oBAAoB,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,KAAK,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,4BAA4B,KAAK,sBAAsB,IAAI,UAAU,KAAK,YAAY,IAAI,WAAW,IAAI,YAAY,IAAI,mBAAmB,KAAK,wBAAwB,IAAI,qBAAqB,KAAK,oBAAoB,IAAI,YAAY,KAAK,sBAAsB,IAAI,YAAY,KAAK,UAAU,IAAI,cAAc,IAAI,UAAU,KAAK,YAAY,IAAI,WAAW,KAAK,qBAAqB,KAAK,UAAU,IAAI,cAAc,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,YAAY,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,IAAI,OAAO,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,WAAW,KAAK,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,OAAO,KAAK,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,cAAc,IAAI,SAAS,IAAI,oBAAoB,IAAI,SAAS,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,WAAW,IAAI,OAAO,IAAI,SAAS,IAAI,WAAW,IAAI,gBAAgB,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,QAAQ,IAAI,SAAS,KAAK,QAAQ,IAAI,cAAc,KAAK,SAAS,IAAI,aAAa,IAAI,QAAQ,IAAI,WAAW,IAAI,SAAS,IAAI,sBAAsB,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,aAAa,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,uBAAuB,IAAI,qBAAqB,IAAI,uBAAuB,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,mBAAmB,IAAI,UAAU,IAAI,qBAAqB,IAAI,oBAAoB,IAAI,sBAAsB,IAAI,qBAAqB,IAAI,mBAAmB,IAAI,qBAAqB,IAAI,mBAAmB,IAAI,mBAAmB,IAAI,UAAU,IAAI,iBAAiB,IAAI,UAAU,IAAI,YAAY,IAAI,QAAQ,IAAI,gBAAgB,IAAI,WAAW,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,OAAO,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,KAAK,QAAQ,IAAI,YAAY,IAAI,UAAU,IAAI,WAAW,KAAK,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,aAAa,IAAI,eAAe,IAAI,aAAa,IAAI,eAAe,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,aAAa,IAAI,SAAS,IAAI,WAAW,IAAI,gBAAgB,IAAI,YAAY,IAAI,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,aAAa,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,KAAK,QAAQ,IAAI,QAAQ,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,KAAK,QAAQ,IAAI,cAAc,IAAI,UAAU,KAAK,eAAe,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,aAAa,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,WAAW,KAAK,QAAQ,IAAI,WAAW,IAAI,UAAU7kJ,EAAE,WAAW,IAAI,eAAe,IAAI,SAAS,IAAI,qBAAqB,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,KAAK,SAAS,IAAI,eAAe,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,aAAa,IAAI,YAAY,IAAI,YAAY,IAAI,UAAU,IAAI,YAAY,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,sBAAsB,IAAI,WAAW,IAAI,WAAW,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,WAAW,IAAI,aAAa,KAAK,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,KAAK,QAAQ,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,KAAK,QAAQ,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,aAAa,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,kBAAkB,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,UAAU,IAAI,YAAY,IAAI,aAAa,IAAI,WAAW,IAAI,YAAY,IAAI,UAAU,KAAK,SAAS,IAAI,QAAQ,IAAI,WAAW,IAAI,aAAa,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,WAAW,IAAI,aAAa,IAAI,aAAa,IAAI,QAAQ,IAAI,WAAW,IAAI,YAAY,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,KAAK,QAAQ,KAAK,YAAY,IAAI,SAAS,KAAK,SAAS,IAAI,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,U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Mr0J,GAErB,YADgB,IAAZA,IAAsBA,EAAUo0J,IAC7B,EAAIF,EAAWX,SAASE,EAASY,EAAMr0J,GAClD,EAEA9/B,EAAQmzL,SAAWhO,EAAa,EAAQ,O,mCCjGxC7kL,OAAO0/I,eAAehgJ,EAAS,aAAc,CAAEsP,OAAO,IACtDtP,EAAQo0L,eAAiBp0L,EAAQq0L,kBAAe,EAChDr0L,EAAQq0L,aAAe,IAAIn+I,IAAI,CAC3B,WACA,cACA,eACA,eACA,gBACA,mBACA,WACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,eACA,gBACA,WACA,iBACA,iBACA,YACFnuB,KAAI,SAAU+jC,GAAO,MAAO,CAACA,EAAI54C,cAAe44C,EAAM,KACxD9rD,EAAQo0L,eAAiB,IAAIl+I,IAAI,CAC7B,gBACA,gBACA,gBACA,gBACA,cACA,WACA,gBACA,kBACA,WACA,cACA,WACA,oBACA,gBACA,eACA,mBACA,YACA,aACA,WACA,eACA,oBACA,eACA,cACA,cACA,mBACA,YACA,aACA,aACA,sBACA,mBACA,eACA,YACA,YACA,YACA,gBACA,sBACA,iBACA,OACA,OACA,cACA,YACA,qBACA,mBACA,mBACA,mBACA,eACA,cACA,eACA,cACA,eACA,iBACA,cACA,UACA,UACA,aACA,UACA,aACA,mBACA,mBACA,cACFnuB,KAAI,SAAU+jC,GAAO,MAAO,CAACA,EAAI54C,cAAe44C,EAAM,I,qCCrGxD,IAAI20H,EAAYp3K,MAAQA,KAAKo3K,UAAa,WAStC,OARAA,EAAWngL,OAAOC,QAAU,SAASoC,GACjC,IAAK,IAAI+yC,EAAGj1C,EAAI,EAAGsD,EAAIrD,UAAUC,OAAQF,EAAIsD,EAAGtD,IAE5C,IAAK,IAAIuD,KADT0xC,EAAIh1C,UAAUD,GACOH,OAAOQ,UAAUC,eAAeC,KAAK00C,EAAG1xC,KACzDrB,EAAEqB,GAAK0xC,EAAE1xC,IAEjB,OAAOrB,CACX,EACO89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YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,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UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,GAAI,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,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MAAO,QACPr/R,KAAM,MACNC,MAAO,MACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,SAEV68U,SAAU,QACVK,WAAY,YACZC,aAAc,OACdC,aAAc,iBCpBT,CACLltM,KAAM,QACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,IAETpjV,UAAW,MACXqlU,WAAY,CACR57R,KAAM,SACNvY,KAAM,SACNqyT,MAAO,QACPr/R,KAAM,MACNC,MAAO,MACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,SAEV68U,SAAU,QACVK,WAAY,YACZC,aAAc,OACdC,aAAc,iBCpBT,CACLltM,KAAM,QACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,IAETpjV,UAAW,MACXqlU,WAAY,CACR57R,KAAM,SACNvY,KAAM,SACNqyT,MAAO,QACPr/R,KAAM,MACNC,MAAO,MACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,SAEV68U,SAAU,QACVK,WAAY,YACZC,aAAc,OACdC,aAAc,iBCpBT,CACLltM,KAAM,QACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAETpjV,UAAW,MACXqlU,WAAY,CACR57R,KAAM,SACNvY,KAAM,SACNqyT,MAAO,QACPr/R,KAAM,MACNC,MAAO,MACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,SAEV68U,SAAU,QACVK,WAAY,YACZC,aAAc,OACdC,aAAc,iBCpBT,CACLltM,KAAM,QACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAETpjV,UAAW,MACXqlU,WAAY,CACR57R,KAAM,SACNvY,KAAM,SACNqyT,MAAO,QACPr/R,KAAM,MACNC,MAAO,MACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,SAEV68U,SAAU,QACVK,WAAY,YACZC,aAAc,OACdC,aAAc,iBCpBT,CACLltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,IAETpjV,UAAW,MACXqlU,WAAY,CACR57R,KAAM,SACNvY,KAAM,SACNqyT,MAAO,QACPr/R,KAAM,MACNC,MAAO,MACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,SAEV68U,SAAU,QACVK,WAAY,YACZC,aAAc,OACdC,aAAc,iBCpBT,CACLltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,QACNvY,KAAM,QACNqyT,MAAO,SACPr/R,KAAM,KACNC,MAAO,KACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,UAEV68U,SAAU,QACVK,WAAY,YACZC,aAAarqV,GACT,MAAO,cAAgBA,CAC3B,EACAsqV,aAAc,gCCrBT,CACLltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,QACNvY,KAAM,SACNqyT,MAAO,OACPr/R,KAAM,SACNC,MAAO,QACP++R,KAAM,UACN9+R,IAAK,MACLz9C,KAAM,UAEVk9U,WAAY,UACZC,aAAarqV,GACT,MAAO,QAAUA,CACrB,EACAsqV,aAAc,6BCpBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,QACNvY,KAAM,QACNqyT,MAAO,KACPr/R,KAAM,MACNC,MAAO,MACP++R,KAAM,SACN9+R,IAAK,MACLz9C,KAAM,UAEV68U,SAAU,SACVK,WAAY,UACZC,aAAarqV,GACT,MAAO,aAAeA,CAC1B,EACAsqV,aAAc,mBCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,SACNvY,KAAM,WACNqyT,MAAO,QACPr/R,KAAM,SACNC,MAAO,SACP++R,KAAM,UACN9+R,IAAK,MACLz9C,KAAM,YAEV68U,SAAU,MACVK,WAAY,aACZC,aAAarqV,GACT,MAAO,SAAWA,CACtB,EACAsqV,aAAc,iCCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,WACNvY,KAAM,UACNqyT,MAAO,OACPr/R,KAAM,MACNC,MAAO,MACP++R,KAAM,UACN9+R,IAAK,MACLz9C,KAAM,UAEV68U,SAAU,MACVK,WAAY,aACZC,aAAc,MACdC,aAAc,sCCnBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,QACNvY,KAAM,UACNqyT,MAAO,OACPr/R,KAAM,MACNC,MAAO,QACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,UAEV68U,SAAU,MACVK,WAAY,WACZC,aAAarqV,GACT,MAAO,WAAaA,CACxB,EACAsqV,aAAc,0BCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,YACNvY,KAAM,QACNqyT,MAAO,SACPr/R,KAAM,WACNC,MAAO,MACP++R,KAAM,UACN9+R,IAAK,OACLz9C,KAAM,UAEV68U,SAAU,UACVK,WAAY,cACZC,aAAc,MACdC,aAAc,oBCnBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,UACNvY,KAAM,QACNqyT,MAAO,QACPr/R,KAAM,KACNC,MAAO,QACP++R,KAAM,MACN9+R,IAAK,MACLz9C,KAAM,UAEV68U,SAAU,MACVK,WAAY,aACZC,aAAc,QACdC,aAAc,+BlBfR,CACNltM,KAAM,QACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,SACNvY,KAAM,MACNqyT,MAAO,QACPr/R,KAAM,OACNC,MAAO,QACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,mBAEV68U,SAAU,KACVC,aAAc,QACdI,WAAY,YACZC,aAAarqV,GACT,MAAO,aAAeA,CAC1B,EACAsqV,aAAc,8BACdE,YAAa,CACTx6S,KAAK47R,GACD,MAAO,YAAYksE,EAAMlsE,MAAeA,GAC5C,EACAn0S,KAAKm0S,GACD,MAAO,UAAUksE,EAAMlsE,MAAeA,GAC1C,EACAke,MAAMle,GAEF,MAAmB,QAAfA,EACO,QAEJ,QAAQksE,EAAMlsE,MAAeA,GACxC,GAEJ8e,SAAS9e,GAGL,OAAOA,GADqB,UAAfA,EAAyB,IAAqB,UAAfA,EAAyB,IAAM,MAChD,SAC/B,EACA+e,YAAa,aACbC,aAAaC,GACT,MAAO,UAAyB,IAAbA,EACf,wBACAA,EAAW,sBACnB,EACAZ,UAAW,YACXC,SAAU,UACVC,UAAW,YCnDL,CACN/sM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,SACNvY,KAAM,MACNqyT,MAAO,QACPr/R,KAAM,OACNC,MAAO,QACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,mBAEV68U,SAAU,KACVC,aAAc,QACdI,WAAY,YACZC,aAAarqV,GACT,MAAO,aAAeA,CAC1B,EACAsqV,aAAc,8BACdE,YAAa,CACTx6S,KAAK47R,GACD,MAAO,YAAY,EAAMA,MAAeA,GAC5C,EACAn0S,KAAKm0S,GACD,MAAO,UAAU,EAAMA,MAAeA,GAC1C,EACAke,MAAMle,GAEF,MAAmB,QAAfA,EACO,QAEJ,QAAQ,EAAMA,MAAeA,GACxC,GAEJ8e,SAAS9e,GAGL,OAAOA,GADqB,UAAfA,EAAyB,IAAqB,UAAfA,EAAyB,IAAM,MAChD,SAC/B,EACA+e,YAAa,aACbC,aAAaC,GACT,MAAO,UAAyB,IAAbA,EACf,wBACAA,EAAW,sBACnB,EACAZ,UAAW,YACXC,SAAU,UACVC,UAAW,YkBvDL,CACN/sM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,eACNvY,KAAM,WACNqyT,MAAO,SACPr/R,KAAM,OACNC,MAAO,QACP++R,KAAM,WACN9+R,IAAK,QACLz9C,KAAM,WAEV68U,SAAU,MACVK,WAAY,WACZC,aAAc,cACdC,aAAc,uCCnBR,CACNltM,KAAM,QACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAETa,YAAa,CACTx6S,KAAM,cACNvY,KAAM,UACNqyT,MAAO,WAEXY,SAAU,UACVC,YAAa,WACbC,aAAaC,GACT,MAAO,QAAQA,eAAmC,IAAbA,EAAiB,GAAK,KAC/D,GCfM,CACNztM,KAAM,QACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAETa,YAAa,CACTx6S,KAAM,cACNvY,KAAM,UACNqyT,MAAO,WAEXY,SAAU,UACVC,YAAa,WACbC,aAAaC,GACT,MAAO,QAAQA,eAAmC,IAAbA,EAAiB,GAAK,KAC/D,GCfM,CACNztM,KAAM,QACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAETa,YAAa,CACTx6S,KAAM,cACNvY,KAAM,UACNqyT,MAAO,WAEXY,SAAU,UACVC,YAAa,WACbC,aAAaC,GACT,MAAO,QAAQA,eAAmC,IAAbA,EAAiB,GAAK,KAC/D,GCfM,CACNztM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,SACNvY,KAAM,QACNqyT,MAAO,SACPr/R,KAAM,OACNC,MAAO,SACP++R,KAAM,UACN9+R,IAAK,OACLz9C,KAAM,WAEV68U,SAAU,KACVK,WAAY,YACZC,aAAc,MACdC,aAAc,6BCnBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,MACNvY,KAAM,MACNqyT,MAAO,MACPr/R,KAAM,MACNC,MAAO,MACP++R,KAAM,SACN9+R,IAAK,MACLz9C,KAAM,UAEV68U,SAAU,KACVK,WAAY,cACZC,aAAc,MACdC,aAAc,+BCnBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,MACNvY,KAAM,MACNqyT,MAAO,MACPr/R,KAAM,MACNC,MAAO,MACP++R,KAAM,SACN9+R,IAAK,MACLz9C,KAAM,UAEVs9U,YAAa,CACTx6S,KAAM,WACNvY,KAAM,eACNqyT,MAAMle,GACF,MAAuB,QAAfA,EAAwB,OACX,WAAfA,EAA2B,OAAS,QAAU,IAAMA,EAAW6f,mBACzE,GAEJf,SAAS9e,GACL,MAAO,UAA2B,WAAfA,EAA0B,QAAU,OAAS,IAAMA,EAAW6f,mBACrF,EACA1B,SAAU,KACVC,aAAc,SACdI,WAAY,cACZC,aAAc,MACdO,aAAaC,GACT,MAAO,WAAWA,eACtB,EACAP,aAAc,8BACdK,YAAa,WACbV,UAAW,SACXC,SAAU,UACVC,UAAW,UCtCL,CACN/sM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,SACNvY,KAAM,UACNqyT,MAAO,OACPr/R,KAAM,QACNC,MAAO,MACP++R,KAAM,QACN9+R,IAAK,OACLz9C,KAAM,aAEV68U,SAAU,MACVK,WAAY,YACZC,aAAarqV,GACT,MAAO,UAAYA,CACvB,EACAsqV,aAAc,iCCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,MACNvY,KAAM,MACNqyT,MAAO,OACPr/R,KAAM,QACNC,MAAO,YACP++R,KAAM,QACN9+R,IAAK,QACLz9C,KAAM,UAEV68U,SAAU,KACVK,WAAY,YACZC,aAAc,UACdC,aAAc,kCCnBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,IAETpjV,UAAW,MACXqlU,WAAY,CACR57R,KAAM,OACNvY,KAAM,OACNqyT,MAAO,QACPr/R,KAAM,MACNC,MAAO,MACP++R,KAAM,OACN9+R,IAAK,MACLz9C,KAAM,UAEV68U,SAAU,KACVK,WAAY,WACZC,aAAarqV,GACT,MAAO,UAAYA,CACvB,EACAsqV,aAAc,wBCtBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,YACNvY,KAAM,WACNqyT,MAAO,SACPr/R,KAAM,QACNC,MAAO,WACP++R,KAAM,SACN9+R,IAAK,QACLz9C,KAAM,cAEV68U,SAAU,KACVK,WAAY,aACZC,aAAc,QACdC,aAAc,6BCnBR,CACNltM,KAAM,KACNwuL,WAAY,CACR57R,KAAM,YACNvY,KAAM,UACNqyT,MAAO,cACPr/R,KAAM,QACNC,MAAO,OACP++R,KAAM,UACN9+R,IAAK,OACLz9C,KAAM,gBAEV68U,SAAU,OACVK,WAAY,mBACZC,aAAc,UACdC,aAAc,8BCfR,CACNltM,KAAM,QACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,YACNvY,KAAM,UACNqyT,MAAO,UACPr/R,KAAM,QACNC,MAAO,OACP++R,KAAM,UACN9+R,IAAK,OACLz9C,KAAM,gBAEV68U,SAAU,KACVK,WAAY,mBACZC,aAAc,UACdC,aAAc,8BCnBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,YACNvY,KAAM,UACNqyT,MAAO,cACPr/R,KAAM,QACNC,MAAO,OACP++R,KAAM,UACN9+R,IAAK,OACLz9C,KAAM,YAEV68U,SAAU,OACVC,aAAc,UACdI,WAAY,mBACZC,aAAc,UACdC,aAAc,8BCpBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,MACNvY,KAAM,MACNqyT,MAAO,OACPr/R,KAAM,MACNC,MAAO,MACP++R,KAAM,SACN9+R,IAAK,MACLz9C,KAAM,UAEVs9U,YAAa,CACTx6S,KAAM,WACNvY,KAAM,cACNqyT,MAAMle,GACF,MAAuB,QAAfA,EAAwB,QACX,WAAfA,EAA2B,OAAS,QAAU,IAAMA,EAAW6f,mBACzE,GAEJf,SAAS9e,GACL,MAAO,UAA2B,WAAfA,EAA0B,KAAO,MAAQ,IAAMA,EAAW6f,mBACjF,EACA1B,SAAU,KACVC,aAAc,SACdI,WAAY,aACZC,aAAc,OACdO,aAAaC,GACT,MAAO,UAAUA,gBACrB,EACAP,aAAc,8BACdK,YAAa,WACbV,UAAW,SACXC,SAAU,SACVC,UAAW,UCtCL,CACN/sM,KAAM,KACN72I,UAAW,MACXqlU,WAAY,CACR57R,KAAM,QACNvY,KAAM,MACNqyT,MAAO,OACPr/R,KAAM,MACNC,MAAO,OACP++R,KAAM,OACN9+R,IAAK,MACLz9C,KAAM,WAEVk9U,WAAY,UACZC,aAAc,SACdC,aAAc,oBACdP,SAAU,QChBJ,CACN3sM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,QACNvY,KAAM,OACNqyT,MAAO,KACPr/R,KAAM,OACNC,MAAO,QACP++R,KAAM,SACN9+R,IAAK,MACLz9C,KAAM,aAEV68U,SAAU,QACVK,WAAY,UACZC,aAAarqV,GACT,MAAO,SAAWA,CACtB,EACAsqV,aAAc,uCCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,YACNvY,KAAM,WACNqyT,MAAO,QACPr/R,KAAM,SACNC,MAAO,SACP++R,KAAM,SACN9+R,IAAK,MACLz9C,KAAM,YAEV68U,SAAU,MACVK,WAAY,aACZC,aAAarqV,GACT,MAAO,SAAWA,CACtB,EACAsqV,aAAc,2BCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,SACNvY,KAAM,QACNqyT,MAAO,KACPr/R,KAAM,KACNC,MAAO,QACP++R,KAAM,MACN9+R,IAAK,MACLz9C,KAAM,SAEV68U,SAAU,MACVK,WAAY,YACZC,aAAc,UACdC,aAAc,gCCnBR,CACNltM,KAAM,QACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,SACNvY,KAAM,SACNqyT,MAAO,QACPr/R,KAAM,OACNC,MAAO,OACP++R,KAAM,QACN9+R,IAAK,KACLz9C,KAAM,eAEV68U,SAAU,MACVK,WAAY,YACZC,aAAarqV,GACT,MAAO,QAAUA,CACrB,EACAsqV,aAAc,4CCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,SACNvY,KAAM,OACNqyT,MAAO,WACPr/R,KAAM,QACNC,MAAO,QACP++R,KAAM,SACN9+R,IAAK,OACLz9C,KAAM,UAEV68U,SAAU,KACVK,WAAY,eACZC,aAAc,QACdC,aAAc,qCCnBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,QACNvY,KAAM,QACNqyT,MAAO,QACPr/R,KAAM,KACNC,MAAO,UACP++R,KAAM,OACN9+R,IAAK,QACLz9C,KAAM,WAEV68U,SAAU,OACVK,WAAY,eACZC,aAAc,QACdC,aAAc,+BCnBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,OACNvY,KAAM,OACNqyT,MAAO,OACPr/R,KAAM,OACNC,MAAO,OACP++R,KAAM,YACN9+R,IAAK,SACLz9C,KAAM,UAEV68U,SAAU,KACVK,WAAY,kBACZC,aAAarqV,GACT,MAAO,UAAYA,CACvB,EACAsqV,aAAc,sCCrBR,CACNltM,KAAM,KACNwuL,WAAY,CACR57R,KAAM,IACNvY,KAAM,IACNqyT,MAAO,KACPr/R,KAAM,IACNC,MAAO,IACP++R,KAAM,IACN9+R,IAAK,IACLz9C,KAAM,SAEV68U,SAAU,IACVK,WAAY,KACZC,aAAarqV,GACT,MAAO,KAAOA,EAAI,IACtB,EACAsqV,aAAc,gBCjBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,OACNvY,KAAM,UACNqyT,MAAO,OACPr/R,KAAM,WACNC,MAAO,MACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,gBAEV68U,SAAU,KACVK,WAAY,YACZC,aAAarqV,GACT,MAAO,WAAaA,CACxB,EACAsqV,aAAc,wBCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,UACNvY,KAAM,SACNqyT,MAAO,QACPr/R,KAAM,MACNC,MAAO,KACP++R,KAAM,OACN9+R,IAAK,MACLz9C,KAAM,eAEV68U,SAAU,KACVK,WAAY,YACZC,aAAarqV,GACT,MAAO,UAAYA,CACvB,EACAsqV,aAAc,6BCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,MACNvY,KAAM,UACNqyT,MAAO,UACPr/R,KAAM,QACNC,MAAO,KACP++R,KAAM,UACN9+R,IAAK,OACLz9C,KAAM,SAEV68U,SAAU,UACVK,WAAY,aACZC,aAAc,WACdC,aAAc,iCCnBR,CACNltM,KAAM,KACNwuL,WAAY,CACR57R,KAAM,MACNvY,KAAM,MACNqyT,MAAO,KACPr/R,KAAM,KACNC,MAAO,IACP++R,KAAM,IACN9+R,IAAK,IACLz9C,KAAM,QAEV68U,SAAU,IACVK,WAAY,KACZC,aAAc,IACdC,aAAc,YCfR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,IAETpjV,UAAW,MACXqlU,WAAY,CACR57R,KAAM,QACNvY,KAAM,QACNqyT,MAAO,QACPr/R,KAAM,MACNC,MAAO,OACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,WAEV68U,SAAU,QACVK,WAAY,eACZC,aAAc,QACdC,aAAc,oBCpBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,QACNvY,KAAM,SACNqyT,MAAO,OACPr/R,KAAM,OACNC,MAAO,QACP++R,KAAM,OACN9+R,IAAK,MACLz9C,KAAM,qBAEV68U,SAAU,IACVK,WAAY,aACZC,aAAc,MACdC,aAAc,mCCnBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,QACNvY,KAAM,SACNqyT,MAAO,WACPr/R,KAAM,QACNC,MAAO,QACP++R,KAAM,UACN9+R,IAAK,QACLz9C,KAAM,eAEV68U,SAAU,MACVK,WAAY,aACZC,aAAc,UACdC,aAAc,sBCnBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,QACNvY,KAAM,OACNqyT,MAAO,SACPr/R,KAAM,OACNC,MAAO,UACP++R,KAAM,SACN9+R,IAAK,QACLz9C,KAAM,kBAEV68U,SAAU,OACVK,WAAY,aACZC,aAAarqV,GACT,MAAO,QAAUA,CACrB,EACAsqV,aAAc,gBCrBR,CACNltM,KAAM,KACNwuL,WAAY,CACR57R,KAAM,YACNvY,KAAM,SACNqyT,MAAO,QACPr/R,KAAM,SACNC,MAAO,QACP++R,KAAM,SACN9+R,IAAK,MACLz9C,KAAM,UAEV68U,SAAU,MACVK,WAAY,UACZC,aAAa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CVK,WAAY,aACZC,aAAarqV,GACT,MAAO,SAAWA,CACtB,EACAsqV,aAAc,kCCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,OACNvY,KAAM,OACNqyT,MAAO,UACPr/R,KAAM,MACNC,MAAO,QACP++R,KAAM,SACN9+R,IAAK,OACLz9C,KAAM,gBAEV68U,SAAU,MACVK,WAAY,YACZC,aAAarqV,GACT,MAAO,SAAWA,CACtB,EACAsqV,aAAc,+BCrBR,CACNltM,KAAM,QACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,MACNvY,KAAM,MACNqyT,MAAO,KACPr/R,KAAM,UACNC,MAAO,OACP++R,KAAM,OACN9+R,IAAK,MACLz9C,KAAM,aAEV68U,SAAU,MACVK,WAAY,QACZC,aAAc,OACdC,aAAc,cCnBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,iBACNvY,KAAM,cACNqyT,MAAO,OACPr/R,KAAM,MACNC,MAAO,SACP++R,KAAM,SACN9+R,IAAK,MACLz9C,KAAM,UAEV68U,SAAU,KACVK,WAAY,WACZC,aAAarqV,GACT,MAAO,YAAcA,CACzB,EACAsqV,aAAc,8BCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,WACNvY,KAAM,YACNqyT,MAAO,WACPr/R,KAAM,OACNC,MAAO,QACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,cAEV68U,SAAU,QACVK,WAAY,UACZC,aAAc,MACdC,aAAc,yBCnBR,CACNltM,KAAM,KACNwuL,WAAY,CACR57R,KAAM,UACNvY,KAAM,eACNqyT,MAAO,UACPr/R,KAAM,UACNC,MAAO,SACP++R,KAAM,SACN9+R,IAAK,MACLz9C,KAAM,aAEV68U,SAAU,SACVK,WAAY,WACZC,aAAc,WACdC,aAAc,yBCfR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,SACNvY,KAAM,UACNqyT,MAAO,MACPr/R,KAAM,OACNC,MAAO,OACP++R,KAAM,OACN9+R,IAAK,OACLz9C,KAAM,SAEV68U,SAAU,KACVK,WAAY,eACZC,aAAarqV,GACT,MAAO,aAAeA,CAC1B,EACAsqV,aAAc,gCCrBR,CACNltM,KAAM,UACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,YACNvY,KAAM,UACNqyT,MAAO,QACPr/R,KAAM,SACNC,MAAO,QACP++R,KAAM,SACN9+R,IAAK,MACLz9C,KAAM,UAEV68U,SAAU,MACVK,WAAY,UACZC,aAAarqV,GACT,MAAO,SAAWA,CACtB,EACAsqV,aAAc,2BCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,YACNvY,KAAM,WACNqyT,MAAO,QACPr/R,KAAM,SACNC,MAAO,QACP++R,KAAM,UACN9+R,IAAK,MACLz9C,KAAM,UAEV68U,SAAU,MACVK,WAAY,UACZC,aAAarqV,GACT,MAAO,SAAWA,CACtB,EACAsqV,aAAc,2BCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,QACNvY,KAAM,QACNqyT,MAAO,OACPr/R,KAAM,KACNC,MAAO,QACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,WAEVs9U,YAAa,CACTx6S,KAAK47R,GACD,MAAO,cAAcA,EAAW6f,qBACpC,EACAh0T,KAAKm0S,GACD,MAAO,SAASA,EAAW6f,qBAC/B,EACA3B,MAAMle,GACF,OAAuB,YAAfA,EAA2B,QAAU,SAAW,IAAMA,EAAW6f,mBAC7E,GAEJf,SAAU,QACVC,YAAa,aACbC,aAAaC,GACT,MAAO,oBAAoBA,aAAiC,IAAbA,EAAiB,GAAK,KACzE,EACAd,SAAU,KACVC,aAAc,QACdI,WAAY,SACZC,aAAc,OACdC,aAAc,0BACdL,UAAW,QACXC,SAAU,UACVC,UAAW,YCvCL,CACN/sM,KAAM,QACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,UACNvY,KAAM,WACNqyT,MAAO,QACPr/R,KAAM,QACNC,MAAO,QACP++R,KAAM,QACN9+R,IAAK,OACLz9C,KAAM,kBAEV68U,SAAU,QACVK,WAAY,iBACZC,aAAarqV,GACT,MAAO,YAAcA,CACzB,EACAsqV,aAAc,8BCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,WACNvY,KAAM,QACNmyT,SAAU,aACVC,SAAU,UACVp/R,KAAM,KACNq/R,MAAO,SACPp/R,MAAO,QACP++R,KAAM,UACN9+R,IAAK,MACLz9C,KAAM,YAEV68U,SAAU,UACVK,WAAY,UACZC,aAAc,YACdC,aAAc,yBCrBR,CACNltM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,OACNvY,KAAM,QACNqyT,MAAO,QACPr/R,KAAM,MACNC,MAAO,KACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,UAEV68U,SAAU,KACVK,WAAY,UACZC,aAAc,aACdC,aAAc,6BCnBR,CACNltM,KAAM,KACNwuL,WAAY,CACR57R,KAAM,WACNvY,KAAM,UACNqyT,MAAO,QACPr/R,KAAM,MACNC,MAAO,MACP++R,KAAM,QACN9+R,IAAK,MACLz9C,KAAM,aAEVk9U,WAAY,aCZN,CACNhtM,KAAM,KACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,aACNvY,KAAM,OACNqyT,MAAO,WACPr/R,KAAM,MACNC,MAAO,SACP++R,KAAM,UACN9+R,IAAK,OACLz9C,KAAM,kBAEV68U,SAAU,MACVK,WAAY,aACZC,aAAarqV,GACT,MAAO,OAASA,EAAI,KACxB,EACAsqV,aAAc,gCCrBR,CACNltM,KAAM,QACNqsM,KAAM,CACFC,IAAK,EACLC,IAAK,GAET/d,WAAY,CACR57R,KAAM,OACNvY,KAAM,QACNqyT,MAAO,QACPp/R,MAAO,KACP++R,KAAM,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","sources":["webpack://groot/./node_modules/@fortawesome/free-brands-svg-icons/faJs.js","webpack://groot/./node_modules/@fortawesome/free-brands-svg-icons/faMicrosoft.js","webpack://groot/./node_modules/@fortawesome/free-brands-svg-icons/faSlack.js","webpack://groot/./node_modules/@fortawesome/pro-solid-svg-icons/faCircleExclamation.js","webpack://groot/./node_modules/@icons/material/CheckIcon.js","webpack://groot/./node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","webpack://groot/./node_modules/@lexical/dragon/LexicalDragon.js","webpack://groot/./node_modules/@lexical/dragon/LexicalDragon.prod.js","webpack://groot/./node_modules/@lexical/history/LexicalHistory.js","webpack://groot/./node_modules/@lexical/history/LexicalHistory.prod.js","webpack://groot/./node_modules/@lexical/link/LexicalLink.js","webpack://groot/./node_modules/@lexical/link/LexicalLink.prod.js","webpack://groot/./node_modules/@lexical/list/LexicalList.js","webpack://groot/./node_modules/@lexical/list/LexicalList.prod.js","webpack://groot/./node_modules/@lexical/react/LexicalComposer.js","webpack://groot/./node_modules/@lexical/react/LexicalComposer.prod.js","webpack://groot/./node_modules/@lexical/react/LexicalComposerContext.js","webpack://groot/./node_modules/@lexical/react/LexicalComposerContext.prod.js","webpack://groot/./node_modules/@lexical/react/LexicalContentEditable.js","webpack://groot/./node_modules/@lexical/react/LexicalContentEditable.prod.js","webpack://groot/./node_modules/@lexical/react/LexicalEditorRefPlugin.js","webpack://groot/./node_modules/@lexical/react/LexicalEditorRefPlugin.prod.js","webpack://groot/./node_modules/@lexical/react/LexicalErrorBoundary.js","webpack://groot/./node_modules/@lexical/react/LexicalErrorBoundary.prod.js","webpack://groot/./node_modules/@lexical/react/LexicalHistoryPlugin.js","webpack://groot/./node_modules/@lexical/react/LexicalHistoryPlugin.prod.js","webpack://groot/./node_modules/@lexical/react/LexicalLinkPlugin.js","webpack://groot/./node_modules/@lexical/react/LexicalLinkPlugin.prod.js","webpack://groot/./node_modules/@lexical/react/LexicalListPlugin.js","webpack://groot/./node_modules/@lexical/react/LexicalListPlugin.prod.js","webpack://groot/./node_modules/@lexical/react/LexicalOnChangePlugin.js","webpack://groot/./node_modules/@lexical/react/LexicalOnChangePlugin.prod.js","webpack://groot/./node_modules/@lexical/react/LexicalRichTextPlugin.js","webpack://groot/./node_modules/@lexical/react/LexicalRichTextPlugin.prod.js","webpack://groot/./node_modules/@lexical/react/useLexicalEditable.js","webpack://groot/./node_modules/@lexical/react/useLexicalEditable.prod.js","webpack://groot/./node_modules/@lexical/rich-text/LexicalRichText.js","webpack://groot/./node_modules/@lexical/rich-text/LexicalRichText.prod.js","webpack://groot/./node_modules/@lexical/text/LexicalText.js","webpack://groot/./node_modules/@lexical/text/LexicalText.prod.js","webpack://groot/./node_modules/@mui/icons-material/esm/AccessTime.js","webpack://groot/./node_modules/@mui/icons-material/esm/Add.js","webpack://groot/./node_modules/@mui/icons-material/esm/AddOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/AlarmOff.js","webpack://groot/./node_modules/@mui/icons-material/esm/AlarmOn.js","webpack://groot/./node_modules/@mui/icons-material/esm/Apartment.js","webpack://groot/./node_modules/@mui/icons-material/esm/ArrowBack.js","webpack://groot/./node_modules/@mui/icons-material/esm/ArrowCircleDown.js","webpack://groot/./node_modules/@mui/icons-material/esm/ArrowCircleLeft.js","webpack://groot/./node_modules/@mui/icons-material/esm/ArrowCircleRight.js","webpack://groot/./node_modules/@mui/icons-material/esm/ArrowCircleUp.js","webpack://groot/./node_modules/@mui/icons-material/esm/ArrowDownward.js","webpack://groot/./node_modules/@mui/icons-material/esm/ArrowDropDown.js","webpack://groot/./node_modules/@mui/icons-material/esm/ArrowUpward.js","webpack://groot/./node_modules/@mui/icons-material/esm/Article.js","webpack://groot/./node_modules/@mui/icons-material/esm/Backup.js","webpack://groot/./node_modules/@mui/icons-material/esm/BarChart.js","webpack://groot/./node_modules/@mui/icons-material/esm/Bookmark.js","webpack://groot/./node_modules/@mui/icons-material/esm/BookmarkBorder.js","webpack://groot/./node_modules/@mui/icons-material/esm/Cached.js","webpack://groot/./node_modules/@mui/icons-material/esm/CalendarMonth.js","webpack://groot/./node_modules/@mui/icons-material/esm/CameraAlt.js","webpack://groot/./node_modules/@mui/icons-material/esm/Campaign.js","webpack://groot/./node_modules/@mui/icons-material/esm/CancelOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/ChangeCircle.js","webpack://groot/./node_modules/@mui/icons-material/esm/ChatBubbleOutline.js","webpack://groot/./node_modules/@mui/icons-material/esm/CheckCircleRounded.js","webpack://groot/./node_modules/@mui/icons-material/esm/Clear.js","webpack://groot/./node_modules/@mui/icons-material/esm/ClearAll.js","webpack://groot/./node_modules/@mui/icons-material/esm/CloseRounded.js","webpack://groot/./node_modules/@mui/icons-material/esm/CloudDownload.js","webpack://groot/./node_modules/@mui/icons-material/esm/CloudUpload.js","webpack://groot/./node_modules/@mui/icons-material/esm/Code.js","webpack://groot/./node_modules/@mui/icons-material/esm/CollectionsBookmark.js","webpack://groot/./node_modules/@mui/icons-material/esm/ContactEmergencyRounded.js","webpack://groot/./node_modules/@mui/icons-material/esm/Contacts.js","webpack://groot/./node_modules/@mui/icons-material/esm/DeleteForever.js","webpack://groot/./node_modules/@mui/icons-material/esm/DeleteOutline.js","webpack://groot/./node_modules/@mui/icons-material/esm/DeleteOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/DoubleArrow.js","webpack://groot/./node_modules/@mui/icons-material/esm/Download.js","webpack://groot/./node_modules/@mui/icons-material/esm/DownloadOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/DriveFileRenameOutline.js","webpack://groot/./node_modules/@mui/icons-material/esm/Edit.js","webpack://groot/./node_modules/@mui/icons-material/esm/EditOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/ErrorOutline.js","webpack://groot/./node_modules/@mui/icons-material/esm/ExpandLess.js","webpack://groot/./node_modules/@mui/icons-material/esm/Facebook.js","webpack://groot/./node_modules/@mui/icons-material/esm/Feed.js","webpack://groot/./node_modules/@mui/icons-material/esm/FileDownload.js","webpack://groot/./node_modules/@mui/icons-material/esm/FilterAlt.js","webpack://groot/./node_modules/@mui/icons-material/esm/FilterAltOff.js","webpack://groot/./node_modules/@mui/icons-material/esm/FilterList.js","webpack://groot/./node_modules/@mui/icons-material/esm/Flag.js","webpack://groot/./node_modules/@mui/icons-material/esm/Group.js","webpack://groot/./node_modules/@mui/icons-material/esm/HealthAndSafetyRounded.js","webpack://groot/./node_modules/@mui/icons-material/esm/Help.js","webpack://groot/./node_modules/@mui/icons-material/esm/HelpOutlineOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/HighlightOff.js","webpack://groot/./node_modules/@mui/icons-material/esm/HistoryToggleOff.js","webpack://groot/./node_modules/@mui/icons-material/esm/ImageOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/ImageRounded.js","webpack://groot/./node_modules/@mui/icons-material/esm/ImageSearch.js","webpack://groot/./node_modules/@mui/icons-material/esm/InsertEmoticon.js","webpack://groot/./node_modules/@mui/icons-material/esm/Insights.js","webpack://groot/./node_modules/@mui/icons-material/esm/KeyboardArrowDown.js","webpack://groot/./node_modules/@mui/icons-material/esm/KeyboardBackspace.js","webpack://groot/./node_modules/@mui/icons-material/esm/Language.js","webpack://groot/./node_modules/@mui/icons-material/esm/LightbulbRounded.js","webpack://groot/./node_modules/@mui/icons-material/esm/Link.js","webpack://groot/./node_modules/@mui/icons-material/esm/LinkedIn.js","webpack://groot/./node_modules/@mui/icons-material/esm/LocalOffer.js","webpack://groot/./node_modules/@mui/icons-material/esm/LocalPhone.js","webpack://groot/./node_modules/@mui/icons-material/esm/LocalShipping.js","webpack://groot/./node_modules/@mui/icons-material/esm/LocationOn.js","webpack://groot/./node_modules/@mui/icons-material/esm/Lock.js","webpack://groot/./node_modules/@mui/icons-material/esm/LockOpen.js","webpack://groot/./node_modules/@mui/icons-material/esm/Loyalty.js","webpack://groot/./node_modules/@mui/icons-material/esm/Mail.js","webpack://groot/./node_modules/@mui/icons-material/esm/MailOutline.js","webpack://groot/./node_modules/@mui/icons-material/esm/ManageSearch.js","webpack://groot/./node_modules/@mui/icons-material/esm/Menu.js","webpack://groot/./node_modules/@mui/icons-material/esm/Message.js","webpack://groot/./node_modules/@mui/icons-material/esm/MoreHoriz.js","webpack://groot/./node_modules/@mui/icons-material/esm/NavigateBefore.js","webpack://groot/./node_modules/@mui/icons-material/esm/NavigateNext.js","webpack://groot/./node_modules/@mui/icons-material/esm/NewspaperOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/Notes.js","webpack://groot/./node_modules/@mui/icons-material/esm/Numbers.js","webpack://groot/./node_modules/@mui/icons-material/esm/Outbound.js","webpack://groot/./node_modules/@mui/icons-material/esm/OutlinedFlag.js","webpack://groot/./node_modules/@mui/icons-material/esm/Pageview.js","webpack://groot/./node_modules/@mui/icons-material/esm/PendingOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/People.js","webpack://groot/./node_modules/@mui/icons-material/esm/PeopleAltOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/PersonOutlineOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/PhotoLibrary.js","webpack://groot/./node_modules/@mui/icons-material/esm/PictureAsPdf.js","webpack://groot/./node_modules/@mui/icons-material/esm/Place.js","webpack://groot/./node_modules/@mui/icons-material/esm/PlayArrow.js","webpack://groot/./node_modules/@mui/icons-material/esm/PlayCircle.js","webpack://groot/./node_modules/@mui/icons-material/esm/PlaylistAdd.js","webpack://groot/./node_modules/@mui/icons-material/esm/Pool.js","webpack://groot/./node_modules/@mui/icons-material/esm/ReadMore.js","webpack://groot/./node_modules/@mui/icons-material/esm/Refresh.js","webpack://groot/./node_modules/@mui/icons-material/esm/Remove.js","webpack://groot/./node_modules/@mui/icons-material/esm/RemoveCircle.js","webpack://groot/./node_modules/@mui/icons-material/esm/RemoveOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/RemoveRedEye.js","webpack://groot/./node_modules/@mui/icons-material/esm/Report.js","webpack://groot/./node_modules/@mui/icons-material/esm/ReportGmailerrorred.js","webpack://groot/./node_modules/@mui/icons-material/esm/ReportOffRounded.js","webpack://groot/./node_modules/@mui/icons-material/esm/ReportProblemRounded.js","webpack://groot/./node_modules/@mui/icons-material/esm/RssFeed.js","webpack://groot/./node_modules/@mui/icons-material/esm/Save.js","webpack://groot/./node_modules/@mui/icons-material/esm/SaveAlt.js","webpack://groot/./node_modules/@mui/icons-material/esm/Schedule.js","webpack://groot/./node_modules/@mui/icons-material/esm/Search.js","webpack://groot/./node_modules/@mui/icons-material/esm/Send.js","webpack://groot/./node_modules/@mui/icons-material/esm/Settings.js","webpack://groot/./node_modules/@mui/icons-material/esm/SettingsBackupRestore.js","webpack://groot/./node_modules/@mui/icons-material/esm/ShortText.js","webpack://groot/./node_modules/@mui/icons-material/esm/StickyNote2.js","webpack://groot/./node_modules/@mui/icons-material/esm/Summarize.js","webpack://groot/./node_modules/@mui/icons-material/esm/SwapHoriz.js","webpack://groot/./node_modules/@mui/icons-material/esm/SwapVert.js","webpack://groot/./node_modules/@mui/icons-material/esm/SwapVerticalCircle.js","webpack://groot/./node_modules/@mui/icons-material/esm/SwitchAccount.js","webpack://groot/./node_modules/@mui/icons-material/esm/TableView.js","webpack://groot/./node_modules/@mui/icons-material/esm/Tag.js","webpack://groot/./node_modules/@mui/icons-material/esm/Theaters.js","webpack://groot/./node_modules/@mui/icons-material/esm/TimerOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/Title.js","webpack://groot/./node_modules/@mui/icons-material/esm/TrendingDown.js","webpack://groot/./node_modules/@mui/icons-material/esm/TrendingFlat.js","webpack://groot/./node_modules/@mui/icons-material/esm/TrendingUp.js","webpack://groot/./node_modules/@mui/icons-material/esm/TripOriginRounded.js","webpack://groot/./node_modules/@mui/icons-material/esm/UnsubscribeOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/Visibility.js","webpack://groot/./node_modules/@mui/icons-material/esm/VisibilityOff.js","webpack://groot/./node_modules/@mui/icons-material/esm/WarningAmber.js","webpack://groot/./node_modules/@mui/icons-material/esm/WarningAmberOutlined.js","webpack://groot/./node_modules/@mui/icons-material/esm/WatchLaterRounded.js","webpack://groot/./node_modules/@mui/icons-material/esm/Web.js","webpack://groot/./node_modules/@mui/lab/TabContext/TabContext.js","webpack://groot/./node_modules/@mui/lab/TabList/TabList.js","webpack://groot/./node_modules/@mui/lab/node_modules/clsx/dist/clsx.mjs","webpack://groot/./node_modules/@mui/lab/TabPanel/tabPanelClasses.js","webpack://groot/./node_modules/@mui/lab/TabPanel/TabPanel.js","webpack://groot/./node_modules/@mui/material/AccordionActions/accordionActionsClasses.js","webpack://groot/./node_modules/@mui/material/AccordionActions/AccordionActions.js","webpack://groot/./node_modules/@mui/material/Alert/alertClasses.js","webpack://groot/./node_modules/@mui/material/internal/svg-icons/SuccessOutlined.js","webpack://groot/./node_modules/@mui/material/internal/svg-icons/ReportProblemOutlined.js","webpack://groot/./node_modules/@mui/material/internal/svg-icons/ErrorOutline.js","webpack://groot/./node_modules/@mui/material/internal/svg-icons/InfoOutlined.js","webpack://groot/./node_modules/@mui/material/Alert/Alert.js","webpack://groot/./node_modules/@mui/material/AlertTitle/alertTitleClasses.js","webpack://groot/./node_modules/@mui/material/AlertTitle/AlertTitle.js","webpack://groot/./node_modules/@mui/material/Badge/useBadge.js","webpack://groot/./node_modules/@mui/material/Badge/badgeClasses.js","webpack://groot/./node_modules/@mui/material/Badge/Badge.js","webpack://groot/./node_modules/@mui/material/internal/svg-icons/MoreHoriz.js","webpack://groot/./node_modules/@mui/material/Breadcrumbs/BreadcrumbCollapsed.js","webpack://groot/./node_modules/@mui/material/Breadcrumbs/breadcrumbsClasses.js","webpack://groot/./node_modules/@mui/material/Breadcrumbs/Breadcrumbs.js","webpack://groot/./node_modules/@mui/material/CardActionArea/cardActionAreaClasses.js","webpack://groot/./node_modules/@mui/material/CardActionArea/CardActionArea.js","webpack://groot/./node_modules/@mui/material/CardActions/cardActionsClasses.js","webpack://groot/./node_modules/@mui/material/CardActions/CardActions.js","webpack://groot/./node_modules/@mui/material/DialogContentText/dialogContentTextClasses.js","webpack://groot/./node_modules/@mui/material/DialogContentText/DialogContentText.js","webpack://groot/./node_modules/@mui/material/DialogTitle/DialogTitle.js","webpack://groot/./node_modules/@mui/material/Drawer/drawerClasses.js","webpack://groot/./node_modules/@mui/material/Drawer/Drawer.js","webpack://groot/./node_modules/@mui/material/LinearProgress/linearProgressClasses.js","webpack://groot/./node_modules/@mui/material/LinearProgress/LinearProgress.js","webpack://groot/./node_modules/@mui/material/ListItemAvatar/listItemAvatarClasses.js","webpack://groot/./node_modules/@mui/material/ListItemAvatar/ListItemAvatar.js","webpack://groot/./node_modules/@mui/material/ListItemButton/ListItemButton.js","webpack://groot/./node_modules/@mui/material/Pagination/paginationClasses.js","webpack://groot/./node_modules/@mui/material/PaginationItem/paginationItemClasses.js","webpack://groot/./node_modules/@mui/material/internal/svg-icons/NavigateBefore.js","webpack://groot/./node_modules/@mui/material/internal/svg-icons/NavigateNext.js","webpack://groot/./node_modules/@mui/material/PaginationItem/PaginationItem.js","webpack://groot/./node_modules/@mui/material/Pagination/Pagination.js","webpack://groot/./node_modules/@mui/material/usePagination/usePagination.js","webpack://groot/./node_modules/@mui/system/esm/Stack/createStack.js","webpack://groot/./node_modules/@mui/material/Stack/Stack.js","webpack://groot/./node_modules/@mui/material/Table/tableClasses.js","webpack://groot/./node_modules/@mui/material/Table/Table.js","webpack://groot/./node_modules/@mui/material/Table/TableContext.js","webpack://groot/./node_modules/@mui/material/Table/Tablelvl2Context.js","webpack://groot/./node_modules/@mui/material/TableBody/tableBodyClasses.js","webpack://groot/./node_modules/@mui/material/TableBody/TableBody.js","webpack://groot/./node_modules/@mui/material/TableCell/tableCellClasses.js","webpack://groot/./node_modules/@mui/material/TableCell/TableCell.js","webpack://groot/./node_modules/@mui/material/TableContainer/tableContainerClasses.js","webpack://groot/./node_modules/@mui/material/TableContainer/TableContainer.js","webpack://groot/./node_modules/@mui/material/TableHead/tableHeadClasses.js","webpack://groot/./node_modules/@mui/material/TableHead/TableHead.js","webpack://groot/./node_modules/@mui/material/TablePagination/TablePaginationActions.js","webpack://groot/./node_modules/@mui/material/TablePagination/TablePagination.js","webpack://groot/./node_modules/@mui/material/TablePagination/tablePaginationClasses.js","webpack://groot/./node_modules/@mui/material/TableRow/tableRowClasses.js","webpack://groot/./node_modules/@mui/material/TableRow/TableRow.js","webpack://groot/./node_modules/@mui/material/ToggleButtonGroup/isValueSelected.js","webpack://groot/./node_modules/@mui/material/ToggleButton/ToggleButton.js","webpack://groot/./node_modules/@mui/material/ToggleButton/toggleButtonClasses.js","webpack://groot/./node_modules/@mui/material/ToggleButtonGroup/toggleButtonGroupClasses.js","webpack://groot/./node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroup.js","webpack://groot/./node_modules/@mui/utils/esm/getValidReactChildren/getValidReactChildren.js","webpack://groot/./node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroupButtonContext.js","webpack://groot/./node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroupContext.js","webpack://groot/./node_modules/@mui/material/colors/amber.js","webpack://groot/./node_modules/@mui/material/colors/blueGrey.js","webpack://groot/./node_modules/@mui/material/colors/deepOrange.js","webpack://groot/./node_modules/@mui/material/colors/indigo.js","webpack://groot/./node_modules/@mui/material/colors/pink.js","webpack://groot/./node_modules/@mui/material/colors/teal.js","webpack://groot/./node_modules/@mui/material/internal/svg-icons/FirstPage.js","webpack://groot/./node_modules/@mui/material/internal/svg-icons/LastPage.js","webpack://groot/./node_modules/@mui/material/useScrollTrigger/useScrollTrigger.js","webpack://groot/./node_modules/@mui/system/esm/styled/styled.js","webpack://groot/./node_modules/@mui/x-internals/esm/reactMajor.js","webpack://groot/./node_modules/@mui/x-internals/esm/forwardRef/forwardRef.js","webpack://groot/./node_modules/@mui/x-data-grid/node_modules/clsx/dist/clsx.mjs","webpack://groot/./node_modules/@mui/x-data-grid/constants/gridClasses.js","webpack://groot/./node_modules/@mui/x-internals/esm/fastObjectShallowCompare/fastObjectShallowCompare.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/utils/useGridSelector.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/utils/useGridPrivateApiContext.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/dimensions/gridDimensionsSelectors.js","webpack://groot/./node_modules/@mui/x-data-grid/components/containers/GridRootStyles.js","webpack://groot/./node_modules/@mui/x-data-grid/context/GridRootPropsContext.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/utils/useGridRootProps.js","webpack://groot/./node_modules/@mui/x-data-grid/node_modules/reselect/dist/reselect.mjs","webpack://groot/./node_modules/@mui/x-data-grid/utils/createSelector.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/density/densitySelector.js","webpack://groot/./node_modules/@mui/x-data-grid/components/containers/GridRoot.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/columns/gridColumnsInterfaces.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/columns/gridColumnsSelector.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/core/gridCoreSelector.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/preferencesPanel/gridPreferencePanelSelector.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/preferencesPanel/gridPreferencePanelsValue.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridApiContext.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/utils/useGridApiContext.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/GridPreferencesPanel.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridHeader.js","webpack://groot/./node_modules/@mui/x-internals/esm/fastMemo/fastMemo.js","webpack://groot/./node_modules/@mui/x-data-grid/utils/cleanupTracking/TimerBasedCleanupTracking.js","webpack://groot/./node_modules/@mui/x-data-grid/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/utils/useGridApiEventHandler.js","webpack://groot/./node_modules/@mui/x-data-grid/components/cell/GridEditInputCell.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/sorting/gridSortingUtils.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterInputValue.js","webpack://groot/./node_modules/@mui/x-data-grid/utils/utils.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterInputMultipleValue.js","webpack://groot/./node_modules/@mui/x-data-grid/models/gridFilterItem.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/filter/gridFilterState.js","webpack://groot/./node_modules/@mui/x-data-grid/utils/getPublicApiRef.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/filter/gridFilterUtils.js","webpack://groot/./node_modules/@mui/x-data-grid/colDef/gridStringOperators.js","webpack://groot/./node_modules/@mui/x-data-grid/colDef/gridStringColDef.js","webpack://groot/./node_modules/@mui/x-data-grid/colDef/gridNumericOperators.js","webpack://groot/./node_modules/@mui/x-data-grid/colDef/gridNumericColDef.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterInputDate.js","webpack://groot/./node_modules/@mui/x-data-grid/colDef/gridDateOperators.js","webpack://groot/./node_modules/@mui/x-data-grid/components/cell/GridEditDateCell.js","webpack://groot/./node_modules/@mui/x-data-grid/colDef/gridDateColDef.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rows/gridRowsSelector.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rows/gridRowsUtils.js","webpack://groot/./node_modules/@mui/x-data-grid/internals/constants.js","webpack://groot/./node_modules/@mui/x-data-grid/components/cell/GridBooleanCell.js","webpack://groot/./node_modules/@mui/x-data-grid/components/cell/GridEditBooleanCell.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterInputBoolean.js","webpack://groot/./node_modules/@mui/x-data-grid/colDef/gridBooleanOperators.js","webpack://groot/./node_modules/@mui/x-data-grid/colDef/gridBooleanColDef.js","webpack://groot/./node_modules/@mui/x-data-grid/models/params/gridEditCellParams.js","webpack://groot/./node_modules/@mui/x-data-grid/models/gridEditRowModel.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/filterPanel/filterPanelUtils.js","webpack://groot/./node_modules/@mui/x-data-grid/components/cell/GridEditSingleSelectCell.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterInputSingleSelect.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js","webpack://groot/./node_modules/@mui/x-data-grid/colDef/gridSingleSelectOperators.js","webpack://groot/./node_modules/@mui/x-data-grid/colDef/gridSingleSelectColDef.js","webpack://groot/./node_modules/@mui/x-data-grid/components/menu/GridMenu.js","webpack://groot/./node_modules/@mui/x-data-grid/components/cell/GridActionsCell.js","webpack://groot/./node_modules/@mui/x-data-grid/colDef/gridActionsColDef.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/columnGrouping/gridColumnGroupsSelector.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/columns/gridColumnsUtils.js","webpack://groot/./node_modules/@mui/x-data-grid/colDef/gridDefaultColumnTypes.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridScrollArea.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/utils/useRunOnce.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/focus/gridFocusStateSelector.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/sorting/gridSortingSelector.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/filter/gridFilterSelector.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/pagination/gridPaginationUtils.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/pagination/gridPaginationSelector.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/utils/useGridVisibleRows.js","webpack://groot/./node_modules/@mui/x-data-grid/utils/platform.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rowSelection/gridRowSelectionSelector.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rows/gridRowsMetaSelector.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/virtualization/gridVirtualizationSelectors.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/utils/useGridApiMethod.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/virtualization/useGridVirtualization.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rows/gridRowSpanningSelectors.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/listView/gridListViewSelectors.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/virtualization/useGridVirtualScroller.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/overlays/useGridOverlays.js","webpack://groot/./node_modules/@mui/x-data-grid/components/base/GridOverlays.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/columnMenu/columnMenuSelector.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridHeaders.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridConfigurationContext.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/utils/useGridConfiguration.js","webpack://groot/./node_modules/@mui/x-data-grid/components/virtualization/GridMainContainer.js","webpack://groot/./node_modules/@mui/x-data-grid/components/virtualization/GridTopContainer.js","webpack://groot/./node_modules/@mui/x-data-grid/components/virtualization/GridBottomContainer.js","webpack://groot/./node_modules/@mui/x-data-grid/components/virtualization/GridVirtualScrollerContent.js","webpack://groot/./node_modules/@mui/x-data-grid/components/virtualization/GridVirtualScrollerFiller.js","webpack://groot/./node_modules/@mui/x-data-grid/components/virtualization/GridVirtualScrollerRenderZone.js","webpack://groot/./node_modules/@mui/x-data-grid/components/virtualization/GridVirtualScrollbar.js","webpack://groot/./node_modules/@mui/x-data-grid/components/virtualization/GridVirtualScroller.js","webpack://groot/./node_modules/@mui/x-data-grid/components/base/GridFooterPlaceholder.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rowSelection/utils.js","webpack://groot/./node_modules/@mui/x-data-grid/context/GridContextProvider.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/core/useGridRefs.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/core/useGridLoggerFactory.js","webpack://groot/./node_modules/@mui/x-data-grid/utils/Store.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/core/useGridApiInitialization.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/core/pipeProcessing/useGridPipeProcessing.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/core/strategyProcessing/useGridStrategyProcessing.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/core/useGridInitialization.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/core/useGridIsRtl.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/core/useGridStateInitialization.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/core/useGridLocaleText.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/utils/useGridInitializeState.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/utils/useGridLogger.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/utils/useGridNativeEventListener.js","webpack://groot/./node_modules/@mui/x-data-grid/components/columnSelection/GridCellCheckboxRenderer.js","webpack://groot/./node_modules/@mui/x-data-grid/components/columnSelection/GridHeaderCheckbox.js","webpack://groot/./node_modules/@mui/x-data-grid/colDef/gridCheckboxSelectionColDef.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/export/serializers/csvSerializer.js","webpack://groot/./node_modules/@mui/x-data-grid/utils/keyboardUtils.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/clipboard/useGridClipboard.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/columnMenu/useGridColumnMenu.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/utils/useFirstRender.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/columns/useGridColumns.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/density/useGridDensity.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/export/utils.js","webpack://groot/./node_modules/@mui/x-data-grid/components/toolbar/GridToolbarExportContainer.js","webpack://groot/./node_modules/@mui/x-data-grid/components/toolbar/GridToolbarExport.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/export/useGridCsvExport.js","webpack://groot/./node_modules/@mui/x-data-grid/utils/exportAs.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/pagination/useGridPaginationModel.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/export/useGridPrintExport.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/filter/useGridFilter.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/focus/useGridFocus.js","webpack://groot/./node_modules/@mui/x-data-grid/utils/domUtils.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/keyboardNavigation/utils.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js","webpack://groot/./node_modules/@mui/x-data-grid/internals/utils/gridRowGroupingUtils.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/pagination/useGridPagination.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/pagination/useGridPaginationMeta.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/pagination/useGridRowCount.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/preferencesPanel/useGridPreferencesPanel.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/editing/gridEditingSelectors.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/editing/utils.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/editing/useGridCellEditing.js","webpack://groot/./node_modules/@mui/x-data-grid/models/params/gridRowParams.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/editing/useGridRowEditing.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/editing/useGridEditing.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rows/useGridRows.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rows/useGridRowsPreProcessors.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rows/useGridParamsApi.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rowSelection/useGridRowSelection.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/sorting/useGridSorting.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/scroll/useGridScroll.js","webpack://groot/./node_modules/@mui/x-data-grid/constants/dataGridPropsDefaultValues.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/dimensions/useGridDimensions.js","webpack://groot/./node_modules/@mui/x-internals/esm/throttle/throttle.js","webpack://groot/./node_modules/@mui/x-data-grid/utils/ResizeObserver.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rows/useGridRowsMeta.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/columns/useGridColumnSpanning.js","webpack://groot/./node_modules/@mui/x-data-grid/models/gridColumnGrouping.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/columnGrouping/gridColumnGroupsUtils.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/columnGrouping/useGridColumnGrouping.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/columnResize/gridColumnResizeApi.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/columnResize/useGridColumnResize.js","webpack://groot/./node_modules/@mui/x-data-grid/utils/createControllablePromise.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rows/gridRowSpanningUtils.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rows/useGridRowSpanning.js","webpack://groot/./node_modules/@mui/x-internals/esm/warning/warning.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/listView/useGridListView.js","webpack://groot/./node_modules/@mui/x-data-grid/DataGrid/useDataGridComponent.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/events/useGridEvents.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/statePersistence/useGridStatePersistence.js","webpack://groot/./node_modules/@mui/x-data-grid/constants/localeTextConstants.js","webpack://groot/./node_modules/@mui/x-data-grid/components/cell/GridSkeletonCell.js","webpack://groot/./node_modules/@mui/x-data-grid/components/columnHeaders/GridIconButtonContainer.js","webpack://groot/./node_modules/@mui/x-data-grid/components/columnHeaders/GridColumnHeaderSortIcon.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridSelectedRowCount.js","webpack://groot/./node_modules/@mui/x-data-grid/components/containers/GridFooterContainer.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridFooter.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridRowCount.js","webpack://groot/./node_modules/@mui/x-data-grid/components/containers/GridOverlay.js","webpack://groot/./node_modules/@mui/x-data-grid/internals/utils/getPinnedCellOffset.js","webpack://groot/./node_modules/@mui/x-data-grid/utils/cellBorderUtils.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridScrollbarFillerCell.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridSkeletonLoadingOverlay.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridLoadingOverlay.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridNoRowsOverlay.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridPagination.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/GridPanelContent.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/GridPanelFooter.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/GridPanelWrapper.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterForm.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterPanel.js","webpack://groot/./node_modules/@mui/x-data-grid/components/columnsManagement/utils.js","webpack://groot/./node_modules/@mui/x-data-grid/components/columnsManagement/GridColumnsManagement.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/GridPanel.js","webpack://groot/./node_modules/@mui/x-data-grid/utils/doesSupportPreventScroll.js","webpack://groot/./node_modules/@mui/x-data-grid/components/cell/GridCell.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridRow.js","webpack://groot/./node_modules/@mui/x-data-grid/utils/composeGridClasses.js","webpack://groot/./node_modules/@mui/x-data-grid/components/columnHeaders/ColumnHeaderMenuIcon.js","webpack://groot/./node_modules/@mui/x-data-grid/components/menu/columnMenu/GridColumnHeaderMenu.js","webpack://groot/./node_modules/@mui/x-data-grid/components/columnHeaders/GridColumnHeaderTitle.js","webpack://groot/./node_modules/@mui/x-data-grid/components/columnHeaders/GridColumnHeaderSeparator.js","webpack://groot/./node_modules/@mui/x-data-grid/components/columnHeaders/GridGenericColumnHeaderItem.js","webpack://groot/./node_modules/@mui/x-data-grid/components/columnHeaders/GridColumnHeaderItem.js","webpack://groot/./node_modules/@mui/x-data-grid/components/columnHeaders/GridColumnGroupHeader.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/columnHeaders/useGridColumnHeaders.js","webpack://groot/./node_modules/@mui/x-data-grid/components/columnHeaders/GridBaseColumnHeaders.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridColumnHeaders.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/columnMenu/useGridColumnMenuSlots.js","webpack://groot/./node_modules/@mui/x-data-grid/components/menu/columnMenu/GridColumnMenuContainer.js","webpack://groot/./node_modules/@mui/x-data-grid/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js","webpack://groot/./node_modules/@mui/x-data-grid/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js","webpack://groot/./node_modules/@mui/x-data-grid/components/menu/columnMenu/GridColumnMenu.js","webpack://groot/./node_modules/@mui/x-data-grid/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js","webpack://groot/./node_modules/@mui/x-data-grid/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js","webpack://groot/./node_modules/@mui/x-data-grid/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridNoResultsOverlay.js","webpack://groot/./node_modules/@mui/x-data-grid/material/icons/GridColumnUnsortedIcon.js","webpack://groot/./node_modules/@mui/x-data-grid/material/icons/index.js","webpack://groot/./node_modules/@mui/x-data-grid/material/components/MUISelectOption.js","webpack://groot/./node_modules/@mui/x-data-grid/material/index.js","webpack://groot/./node_modules/@mui/x-data-grid/constants/defaultGridSlotsComponents.js","webpack://groot/./node_modules/@mui/x-data-grid/components/columnHeaders/GridColumnHeaderFilterIconButton.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridDetailPanels.js","webpack://groot/./node_modules/@mui/x-data-grid/components/GridPinnedRows.js","webpack://groot/./node_modules/@mui/x-data-grid/components/panel/GridColumnsPanel.js","webpack://groot/./node_modules/@mui/x-data-grid/internals/utils/useProps.js","webpack://groot/./node_modules/@mui/x-data-grid/DataGrid/useDataGridProps.js","webpack://groot/./node_modules/@mui/x-data-grid/internals/utils/computeSlots.js","webpack://groot/./node_modules/@mui/x-data-grid/DataGrid/DataGrid.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/utils/useGridAriaAttributes.js","webpack://groot/./node_modules/@mui/x-data-grid/hooks/features/rows/useGridRowAriaAttributes.js","webpack://groot/./node_modules/@mui/x-internals/esm/EventManager/EventManager.js","webpack://groot/./node_modules/@mui/x-internals/reactMajor.js","webpack://groot/../src/components/HiddenText/HiddenText.tsx","webpack://groot/../src/components/LiveRegion/LiveRegion.tsx","webpack://groot/../src/components/DndMonitor/context.ts","webpack://groot/../src/components/Accessibility/defaults.ts","webpack://groot/../src/components/Accessibility/Accessibility.tsx","webpack://groot/../src/hooks/useAnnouncement.ts","webpack://groot/../src/components/DndMonitor/useDndMonitor.ts","webpack://groot/../src/store/actions.ts","webpack://groot/../src/utilities/other/noop.ts","webpack://groot/../src/sensors/useSensor.ts","webpack://groot/../src/sensors/useSensors.ts","webpack://groot/../src/utilities/coordinates/constants.ts","webpack://groot/../src/utilities/coordinates/distanceBetweenPoints.ts","webpack://groot/../src/utilities/coordinates/getRelativeTransformOrigin.ts","webpack://groot/../src/utilities/algorithms/helpers.ts","webpack://groot/../src/utilities/algorithms/closestCenter.ts","webpack://groot/../src/utilities/algorithms/rectIntersection.ts","webpack://groot/../src/utilities/rect/getRectDelta.ts","webpack://groot/../src/utilities/rect/rectAdjustment.ts","webpack://groot/../src/utilities/transform/parseTransform.ts","webpack://groot/../src/utilities/rect/getRect.ts","webpack://groot/../src/utilities/transform/inverseTransform.ts","webpack://groot/../src/utilities/scroll/getScrollableAncestors.ts","webpack://groot/../src/utilities/scroll/isScrollable.ts","webpack://groot/../src/utilities/scroll/isFixed.ts","webpack://groot/../src/utilities/scroll/getScrollableElement.ts","webpack://groot/../src/utilities/scroll/getScrollCoordinates.ts","webpack://groot/../src/types/direction.ts","webpack://groot/../src/utilities/scroll/documentScrollingElement.ts","webpack://groot/../src/utilities/scroll/getScrollPosition.ts","webpack://groot/../src/utilities/scroll/getScrollDirectionAndSpeed.ts","webpack://groot/../src/utilities/scroll/getScrollElementRect.ts","webpack://groot/../src/utilities/scroll/getScrollOffsets.ts","webpack://groot/../src/utilities/scroll/scrollIntoViewIfNeeded.ts","webpack://groot/../src/utilities/rect/Rect.ts","webpack://groot/../src/sensors/utilities/Listeners.ts","webpack://groot/../src/sensors/utilities/hasExceededDistance.ts","webpack://groot/../src/sensors/events.ts","webpack://groot/../src/sensors/keyboard/types.ts","webpack://groot/../src/sensors/keyboard/defaults.ts","webpack://groot/../src/sensors/keyboard/KeyboardSensor.ts","webpack://groot/../src/sensors/pointer/AbstractPointerSensor.ts","webpack://groot/../src/sensors/utilities/getEventListenerTarget.ts","webpack://groot/../src/sensors/pointer/PointerSensor.ts","webpack://groot/../src/sensors/mouse/MouseSensor.ts","webpack://groot/../src/sensors/touch/TouchSensor.ts","webpack://groot/../src/hooks/utilities/useAutoScroller.ts","webpack://groot/../src/hooks/utilities/useDroppableMeasuring.ts","webpack://groot/../src/hooks/utilities/useInitialValue.ts","webpack://groot/../src/hooks/utilities/useResizeObserver.ts","webpack://groot/../src/hooks/utilities/useRect.ts","webpack://groot/../src/hooks/utilities/useMutationObserver.ts","webpack://groot/../src/hooks/utilities/useScrollableAncestors.ts","webpack://groot/../src/hooks/utilities/useScrollOffsetsDelta.ts","webpack://groot/../src/hooks/utilities/useWindowRect.ts","webpack://groot/../src/utilities/rect/getWindowClientRect.ts","webpack://groot/../src/hooks/utilities/useRects.ts","webpack://groot/../src/utilities/nodes/getMeasurableNode.ts","webpack://groot/../src/components/DndContext/defaults.ts","webpack://groot/../src/store/constructors.ts","webpack://groot/../src/store/context.ts","webpack://groot/../src/store/reducer.ts","webpack://groot/../src/components/Accessibility/components/RestoreFocus.tsx","webpack://groot/../src/modifiers/applyModifiers.ts","webpack://groot/../src/components/DndContext/DndContext.tsx","webpack://groot/../src/components/DndMonitor/useDndMonitorProvider.tsx","webpack://groot/../src/components/DndContext/hooks/useMeasuringConfiguration.ts","webpack://groot/../src/hooks/utilities/useCachedNode.ts","webpack://groot/../src/hooks/utilities/useInitialRect.ts","webpack://groot/../src/components/DndContext/hooks/useLayoutShiftScrollCompensation.ts","webpack://groot/../src/hooks/utilities/useDragOverlayMeasuring.ts","webpack://groot/../src/hooks/utilities/useRectDelta.ts","webpack://groot/../src/hooks/utilities/useScrollOffsets.ts","webpack://groot/../src/utilities/rect/adjustScale.ts","webpack://groot/../src/hooks/utilities/useCombineActivators.ts","webpack://groot/../src/hooks/utilities/useSensorSetup.ts","webpack://groot/../src/hooks/useDraggable.ts","webpack://groot/../src/hooks/utilities/useSyntheticListeners.ts","webpack://groot/../src/hooks/useDndContext.ts","webpack://groot/../src/hooks/useDroppable.ts","webpack://groot/../src/components/DragOverlay/components/AnimationManager/AnimationManager.tsx","webpack://groot/../src/components/DragOverlay/components/NullifiedContextProvider/NullifiedContextProvider.tsx","webpack://groot/../src/components/DragOverlay/components/PositionedOverlay/PositionedOverlay.tsx","webpack://groot/../src/components/DragOverlay/hooks/useDropAnimation.ts","webpack://groot/../src/components/DragOverlay/hooks/useKey.ts","webpack://groot/../src/components/DragOverlay/DragOverlay.tsx","webpack://groot/../src/utilities/arrayMove.ts","webpack://groot/../src/utilities/getSortedRects.ts","webpack://groot/../src/utilities/isValidIndex.ts","webpack://groot/../src/strategies/rectSorting.ts","webpack://groot/../src/strategies/verticalListSorting.ts","webpack://groot/../src/components/SortableContext.tsx","webpack://groot/../src/utilities/itemsEqual.ts","webpack://groot/../src/utilities/normalizeDisabled.ts","webpack://groot/../src/hooks/defaults.ts","webpack://groot/../src/hooks/useSortable.ts","webpack://groot/../src/hooks/utilities/useDerivedTransform.ts","webpack://groot/../src/sensors/keyboard/sortableKeyboardCoordinates.ts","webpack://groot/../src/hooks/useCombinedRefs.ts","webpack://groot/../src/execution-context/canUseDOM.ts","webpack://groot/../src/type-guards/isWindow.ts","webpack://groot/../src/type-guards/isNode.ts","webpack://groot/../src/execution-context/getWindow.ts","webpack://groot/../src/type-guards/isDocument.ts","webpack://groot/../src/type-guards/isHTMLElement.ts","webpack://groot/../src/type-guards/isSVGElement.ts","webpack://groot/../src/execution-context/getOwnerDocument.ts","webpack://groot/../src/hooks/useIsomorphicLayoutEffect.ts","webpack://groot/../src/hooks/useEvent.ts","webpack://groot/../src/hooks/useInterval.ts","webpack://groot/../src/hooks/useLatestValue.ts","webpack://groot/../src/hooks/useLazyMemo.ts","webpack://groot/../src/hooks/useNodeRef.ts","webpack://groot/../src/hooks/usePrevious.ts","webpack://groot/../src/hooks/useUniqueId.ts","webpack://groot/../src/adjustment.ts","webpack://groot/../src/event/isKeyboardEvent.ts","webpack://groot/../src/coordinates/getEventCoordinates.ts","webpack://groot/../src/event/isTouchEvent.ts","webpack://groot/../src/event/hasViewportRelativeCoordinates.ts","webpack://groot/../src/css.ts","webpack://groot/../src/focus/findFirstFocusableNode.ts","webpack://groot/./node_modules/deepmerge/dist/cjs.js","webpack://groot/./node_modules/domelementtype/lib/index.js","webpack://groot/./node_modules/emoji-picker-react/dist/emoji-picker-react.esm.js","webpack://groot/./node_modules/escape-string-regexp/index.js","webpack://groot/./node_modules/html-entities/lib/index.js","webpack://groot/./node_modules/html-entities/lib/named-references.js","webpack://groot/./node_modules/html-entities/lib/numeric-unicode-map.js","webpack://groot/./node_modules/html-entities/lib/surrogate-pairs.js","webpack://groot/./node_modules/htmlparser2/lib/Parser.js","webpack://groot/./node_modules/htmlparser2/lib/Tokenizer.js","webpack://groot/./node_modules/htmlparser2/lib/index.js","webpack://groot/./node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js","webpack://groot/./node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js","webpack://groot/./node_modules/htmlparser2/node_modules/domhandler/lib/index.js","webpack://groot/./node_modules/htmlparser2/node_modules/domhandler/lib/node.js","webpack://groot/./node_modules/htmlparser2/node_modules/domutils/lib/feeds.js","webpack://groot/./node_modules/htmlparser2/node_modules/domutils/lib/helpers.js","webpack://groot/./node_modules/htmlparser2/node_modules/domutils/lib/index.js","webpack://groot/./node_modules/htmlparser2/node_modules/domutils/lib/legacy.js","webpack://groot/./node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js","webpack://groot/./node_modules/htmlparser2/node_modules/domutils/lib/querying.js","webpack://groot/./node_modules/htmlparser2/node_modules/domutils/lib/stringify.js","webpack://groot/./node_modules/htmlparser2/node_modules/domutils/lib/traversal.js","webpack://groot/./node_modules/htmlparser2/node_modules/entities/lib/decode.js","webpack://groot/./node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js","webpack://groot/./node_modules/htmlparser2/node_modules/entities/lib/encode.js","webpack://groot/./node_modules/htmlparser2/node_modules/entities/lib/escape.js","webpack://groot/./node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-html.js","webpack://groot/./node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-xml.js","webpack://groot/./node_modules/htmlparser2/node_modules/entities/lib/generated/encode-html.js","webpack://groot/./node_modules/htmlparser2/node_modules/entities/lib/index.js","webpack://groot/./node_modules/ip-regex/index.js","webpack://groot/./node_modules/lodash/_castFunction.js","webpack://groot/./node_modules/lodash/cloneDeep.js","webpack://groot/./node_modules/lodash/forOwn.js","webpack://groot/./node_modules/parse-srcset/src/parse-srcset.js","webpack://groot/./node_modules/pdfjs-dist/legacy/build/pdf.js","webpack://groot/./node_modules/picocolors/picocolors.browser.js","webpack://groot/./node_modules/postcss/lib/at-rule.js","webpack://groot/./node_modules/postcss/lib/comment.js","webpack://groot/./node_modules/postcss/lib/container.js","webpack://groot/./node_modules/postcss/lib/css-syntax-error.js","webpack://groot/./node_modules/postcss/lib/declaration.js","webpack://groot/./node_modules/postcss/lib/document.js","webpack://groot/./node_modules/postcss/lib/fromJSON.js","webpack://groot/./node_modules/postcss/lib/input.js","webpack://groot/./node_modules/postcss/lib/lazy-result.js","webpack://groot/./node_modules/postcss/lib/list.js","webpack://groot/./node_modules/postcss/lib/map-generator.js","webpack://groot/./node_modules/postcss/lib/no-work-result.js","webpack://groot/./node_modules/postcss/lib/node.js","webpack://groot/./node_modules/postcss/lib/parse.js","webpack://groot/./node_modules/postcss/lib/parser.js","webpack://groot/./node_modules/postcss/lib/postcss.js","webpack://groot/./node_modules/postcss/lib/previous-map.js","webpack://groot/./node_modules/postcss/lib/processor.js","webpack://groot/./node_modules/postcss/lib/result.js","webpack://groot/./node_modules/postcss/lib/root.js","webpack://groot/./node_modules/postcss/lib/rule.js","webpack://groot/./node_modules/postcss/lib/stringifier.js","webpack://groot/./node_modules/postcss/lib/stringify.js","webpack://groot/./node_modules/postcss/lib/symbols.js","webpack://groot/./node_modules/postcss/lib/tokenize.js","webpack://groot/./node_modules/postcss/lib/warn-once.js","webpack://groot/./node_modules/postcss/lib/warning.js","webpack://groot/./node_modules/preact/hooks/dist/hooks.module.js","webpack://groot/./node_modules/preact/compat/dist/compat.module.js","webpack://groot/./node_modules/preact/dist/preact.module.js","webpack://groot/./node_modules/react-color/es/helpers/alpha.js","webpack://groot/./node_modules/react-color/es/helpers/checkboard.js","webpack://groot/./node_modules/react-color/es/components/common/Checkboard.js","webpack://groot/./node_modules/react-color/es/components/common/Alpha.js","webpack://groot/./node_modules/react-color/es/components/common/EditableInput.js","webpack://groot/./node_modules/react-color/es/helpers/hue.js","webpack://groot/./node_modules/react-color/es/components/common/Hue.js","webpack://groot/./node_modules/lodash-es/_stackClear.js","webpack://groot/./node_modules/lodash-es/_stackDelete.js","webpack://groot/./node_modules/lodash-es/_stackGet.js","webpack://groot/./node_modules/lodash-es/_stackHas.js","webpack://groot/./node_modules/lodash-es/_stackSet.js","webpack://groot/./node_modules/lodash-es/_Stack.js","webpack://groot/./node_modules/lodash-es/_baseAssignValue.js","webpack://groot/./node_modules/lodash-es/_assignMergeValue.js","webpack://groot/./node_modules/lodash-es/_createBaseFor.js","webpack://groot/./node_modules/lodash-es/_baseFor.js","webpack://groot/./node_modules/lodash-es/_cloneBuffer.js","webpack://groot/./node_modules/lodash-es/_Uint8Array.js","webpack://groot/./node_modules/lodash-es/_cloneArrayBuffer.js","webpack://groot/./node_modules/lodash-es/_cloneTypedArray.js","webpack://groot/./node_modules/lodash-es/_copyArray.js","webpack://groot/./node_modules/lodash-es/_baseCreate.js","webpack://groot/./node_modules/lodash-es/_overArg.js","webpack://groot/./node_modules/lodash-es/_getPrototype.js","webpack://groot/./node_modules/lodash-es/_isPrototype.js","webpack://groot/./node_modules/lodash-es/_initCloneObject.js","webpack://groot/./node_modules/lodash-es/_baseIsArguments.js","webpack://groot/./node_modules/lodash-es/isArguments.js","webpack://groot/./node_modules/lodash-es/stubFalse.js","webpack://groot/./node_modules/lodash-es/isBuffer.js","webpack://groot/./node_modules/lodash-es/isPlainObject.js","webpack://groot/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://groot/./node_modules/lodash-es/_nodeUtil.js","webpack://groot/./node_modules/lodash-es/isTypedArray.js","webpack://groot/./node_modules/lodash-es/_safeGet.js","webpack://groot/./node_modules/lodash-es/_assignValue.js","webpack://groot/./node_modules/lodash-es/_copyObject.js","webpack://groot/./node_modules/lodash-es/_baseTimes.js","webpack://groot/./node_modules/lodash-es/_isIndex.js","webpack://groot/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://groot/./node_modules/lodash-es/_nativeKeysIn.js","webpack://groot/./node_modules/lodash-es/_baseKeysIn.js","webpack://groot/./node_modules/lodash-es/keysIn.js","webpack://groot/./node_modules/lodash-es/toPlainObject.js","webpack://groot/./node_modules/lodash-es/_baseMergeDeep.js","webpack://groot/./node_modules/lodash-es/_baseMerge.js","webpack://groot/./node_modules/lodash-es/_isIterateeCall.js","webpack://groot/./node_modules/lodash-es/_createAssigner.js","webpack://groot/./node_modules/lodash-es/merge.js","webpack://groot/./node_modules/react-color/es/components/common/Raised.js","webpack://groot/./node_modules/lodash-es/now.js","webpack://groot/./node_modules/lodash-es/toNumber.js","webpack://groot/./node_modules/lodash-es/debounce.js","webpack://groot/./node_modules/lodash-es/throttle.js","webpack://groot/./node_modules/react-color/es/components/common/Saturation.js","webpack://groot/./node_modules/react-color/es/helpers/saturation.js","webpack://groot/./node_modules/lodash-es/_arrayEach.js","webpack://groot/./node_modules/lodash-es/_nativeKeys.js","webpack://groot/./node_modules/lodash-es/_baseKeys.js","webpack://groot/./node_modules/lodash-es/keys.js","webpack://groot/./node_modules/lodash-es/_createBaseEach.js","webpack://groot/./node_modules/lodash-es/_baseEach.js","webpack://groot/./node_modules/lodash-es/_baseForOwn.js","webpack://groot/./node_modules/lodash-es/_castFunction.js","webpack://groot/./node_modules/lodash-es/forEach.js","webpack://groot/./node_modules/react-color/es/helpers/color.js","webpack://groot/./node_modules/react-color/es/components/common/ColorWrap.js","webpack://groot/./node_modules/react-color/es/helpers/interaction.js","webpack://groot/./node_modules/react-color/es/components/common/Swatch.js","webpack://groot/./node_modules/react-color/es/components/alpha/AlphaPointer.js","webpack://groot/./node_modules/react-color/es/components/alpha/Alpha.js","webpack://groot/./node_modules/lodash-es/_arraySome.js","webpack://groot/./node_modules/lodash-es/_equalArrays.js","webpack://groot/./node_modules/lodash-es/_mapToArray.js","webpack://groot/./node_modules/lodash-es/_setToArray.js","webpack://groot/./node_modules/lodash-es/_equalByTag.js","webpack://groot/./node_modules/lodash-es/_arrayPush.js","webpack://groot/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://groot/./node_modules/lodash-es/_arrayFilter.js","webpack://groot/./node_modules/lodash-es/stubArray.js","webpack://groot/./node_modules/lodash-es/_getSymbols.js","webpack://groot/./node_modules/lodash-es/_getAllKeys.js","webpack://groot/./node_modules/lodash-es/_equalObjects.js","webpack://groot/./node_modules/lodash-es/_DataView.js","webpack://groot/./node_modules/lodash-es/_Promise.js","webpack://groot/./node_modules/lodash-es/_Set.js","webpack://groot/./node_modules/lodash-es/_WeakMap.js","webpack://groot/./node_modules/lodash-es/_getTag.js","webpack://groot/./node_modules/lodash-es/_baseIsEqualDeep.js","webpack://groot/./node_modules/lodash-es/_baseIsEqual.js","webpack://groot/./node_modules/lodash-es/_baseIsMatch.js","webpack://groot/./node_modules/lodash-es/_isStrictComparable.js","webpack://groot/./node_modules/lodash-es/_getMatchData.js","webpack://groot/./node_modules/lodash-es/_matchesStrictComparable.js","webpack://groot/./node_modules/lodash-es/_baseMatches.js","webpack://groot/./node_modules/lodash-es/_isKey.js","webpack://groot/./node_modules/lodash-es/memoize.js","webpack://groot/./node_modules/lodash-es/_memoizeCapped.js","webpack://groot/./node_modules/lodash-es/_stringToPath.js","webpack://groot/./node_modules/lodash-es/_castPath.js","webpack://groot/./node_modules/lodash-es/_toKey.js","webpack://groot/./node_modules/lodash-es/_baseGet.js","webpack://groot/./node_modules/lodash-es/get.js","webpack://groot/./node_modules/lodash-es/_baseHasIn.js","webpack://groot/./node_modules/lodash-es/_hasPath.js","webpack://groot/./node_modules/lodash-es/hasIn.js","webpack://groot/./node_modules/lodash-es/_baseMatchesProperty.js","webpack://groot/./node_modules/lodash-es/_baseProperty.js","webpack://groot/./node_modules/lodash-es/_basePropertyDeep.js","webpack://groot/./node_modules/lodash-es/property.js","webpack://groot/./node_modules/lodash-es/_baseIteratee.js","webpack://groot/./node_modules/lodash-es/_baseMap.js","webpack://groot/./node_modules/lodash-es/map.js","webpack://groot/./node_modules/react-color/es/components/block/BlockSwatches.js","webpack://groot/./node_modules/react-color/es/components/block/Block.js","webpack://groot/./node_modules/material-colors/dist/colors.es2015.js","webpack://groot/./node_modules/react-color/es/components/circle/CircleSwatch.js","webpack://groot/./node_modules/react-color/es/components/circle/Circle.js","webpack://groot/./node_modules/lodash-es/isUndefined.js","webpack://groot/./node_modules/react-color/es/components/chrome/ChromeFields.js","webpack://groot/./node_modules/react-color/es/components/chrome/ChromePointer.js","webpack://groot/./node_modules/react-color/es/components/chrome/ChromePointerCircle.js","webpack://groot/./node_modules/react-color/es/components/chrome/Chrome.js","webpack://groot/./node_modules/react-color/es/components/compact/CompactColor.js","webpack://groot/./node_modules/react-color/es/components/compact/CompactFields.js","webpack://groot/./node_modules/react-color/es/components/compact/Compact.js","webpack://groot/./node_modules/react-color/es/components/github/GithubSwatch.js","webpack://groot/./node_modules/react-color/es/components/github/Github.js","webpack://groot/./node_modules/react-color/es/components/hue/HuePointer.js","webpack://groot/./node_modules/react-color/es/components/hue/Hue.js","webpack://groot/./node_modules/react-color/es/components/material/Material.js","webpack://groot/./node_modules/react-color/es/components/photoshop/PhotoshopFields.js","webpack://groot/./node_modules/react-color/es/components/photoshop/PhotoshopPointerCircle.js","webpack://groot/./node_modules/react-color/es/components/photoshop/PhotoshopPointer.js","webpack://groot/./node_modules/react-color/es/components/photoshop/PhotoshopButton.js","webpack://groot/./node_modules/react-color/es/components/photoshop/PhotoshopPreviews.js","webpack://groot/./node_modules/react-color/es/components/photoshop/Photoshop.js","webpack://groot/./node_modules/react-color/es/components/sketch/SketchFields.js","webpack://groot/./node_modules/react-color/es/components/sketch/SketchPresetColors.js","webpack://groot/./node_modules/react-color/es/components/sketch/Sketch.js","webpack://groot/./node_modules/react-color/es/components/slider/SliderSwatch.js","webpack://groot/./node_modules/react-color/es/components/slider/SliderSwatches.js","webpack://groot/./node_modules/react-color/es/components/slider/SliderPointer.js","webpack://groot/./node_modules/react-color/es/components/slider/Slider.js","webpack://groot/./node_modules/react-color/es/components/swatches/SwatchesColor.js","webpack://groot/./node_modules/react-color/es/components/swatches/SwatchesGroup.js","webpack://groot/./node_modules/react-color/es/components/swatches/Swatches.js","webpack://groot/./node_modules/react-color/es/components/twitter/Twitter.js","webpack://groot/./node_modules/react-color/es/components/google/GooglePointerCircle.js","webpack://groot/./node_modules/react-color/es/components/google/GooglePointer.js","webpack://groot/./node_modules/react-color/es/components/google/GoogleFields.js","webpack://groot/./node_modules/react-color/es/components/google/Google.js","webpack://groot/./node_modules/react-email-editor/dist/index.js","webpack://groot/./node_modules/react-email-editor/dist/react-email-editor.cjs.production.min.js","webpack://groot/./node_modules/react-facebook-login/dist/facebook-login-render-props.js","webpack://groot/./node_modules/react-google-authorize/dist/google-authorize.js","webpack://groot/./node_modules/react-linkedin-login-oauth2/build/index.esm.js","webpack://groot/./node_modules/pdfjs-dist/legacy/build/pdf.worker.js","webpack://groot/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://groot/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://groot/./node_modules/make-event-props/dist/esm/index.js","webpack://groot/./node_modules/make-cancellable-promise/dist/esm/index.js","webpack://groot/./node_modules/merge-class-names/dist/esm/index.js","webpack://groot/./node_modules/tiny-warning/dist/tiny-warning.esm.js","webpack://groot/./node_modules/react-pdf/dist/esm/DocumentContext.js","webpack://groot/./node_modules/react-pdf/dist/esm/Message.js","webpack://groot/./node_modules/react-pdf/dist/esm/LinkService.js","webpack://groot/./node_modules/react-pdf/dist/esm/PasswordResponses.js","webpack://groot/./node_modules/react-pdf/dist/esm/shared/utils.js","webpack://groot/./node_modules/react-pdf/dist/esm/shared/propTypes.js","webpack://groot/./node_modules/react-pdf/dist/esm/Document.js","webpack://groot/./node_modules/react-pdf/dist/esm/OutlineContext.js","webpack://groot/./node_modules/react-pdf/dist/esm/Ref.js","webpack://groot/./node_modules/react-pdf/dist/esm/OutlineItem.js","webpack://groot/./node_modules/react-pdf/dist/esm/Outline.js","webpack://groot/./node_modules/merge-refs/dist/esm/index.js","webpack://groot/./node_modules/react-pdf/dist/esm/PageContext.js","webpack://groot/./node_modules/react-pdf/dist/esm/Page/PageCanvas.js","webpack://groot/./node_modules/react-pdf/dist/esm/Page/PageSVG.js","webpack://groot/./node_modules/react-pdf/dist/esm/Page/TextLayerItem.js","webpack://groot/./node_modules/react-pdf/dist/esm/Page/TextLayer.js","webpack://groot/./node_modules/react-pdf/dist/esm/Page/AnnotationLayer.js","webpack://groot/./node_modules/react-pdf/dist/esm/Page.js","webpack://groot/./node_modules/react-pdf/dist/esm/entry.webpack.js","webpack://groot/./node_modules/consolidated-events/lib/index.esm.js","webpack://groot/./node_modules/react-waypoint/es/index.js","webpack://groot/./node_modules/react-waypoint/node_modules/react-is/cjs/react-is.production.min.js","webpack://groot/./node_modules/react-waypoint/node_modules/react-is/index.js","webpack://groot/./node_modules/reactcss/lib/autoprefix.js","webpack://groot/./node_modules/reactcss/lib/components/active.js","webpack://groot/./node_modules/reactcss/lib/components/hover.js","webpack://groot/./node_modules/reactcss/lib/flattenNames.js","webpack://groot/./node_modules/reactcss/lib/index.js","webpack://groot/./node_modules/reactcss/lib/loop.js","webpack://groot/./node_modules/reactcss/lib/mergeClasses.js","webpack://groot/./node_modules/rfdc/index.js","webpack://groot/./node_modules/sanitize-html/index.js","webpack://groot/./node_modules/sanitize-html/node_modules/is-plain-object/dist/is-plain-object.js","webpack://groot/./node_modules/url-regex-safe/lib/index.js","webpack://groot/./node_modules/validator/lib/isByteLength.js","webpack://groot/./node_modules/validator/lib/isEmail.js","webpack://groot/./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack://groot/./node_modules/@babel/runtime/helpers/typeof.js","webpack://groot/./node_modules/nanoid/non-secure/index.cjs","webpack://groot/./node_modules/@fullcalendar/core/index.js","webpack://groot/./node_modules/@fullcalendar/core/internal-common.js","webpack://groot/./node_modules/@fullcalendar/core/locales/de-at.js","webpack://groot/./node_modules/@fullcalendar/core/locales/de.js","webpack://groot/./node_modules/@fullcalendar/core/locales-all.js","webpack://groot/./node_modules/@fullcalendar/core/locales/af.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ar-dz.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ar-kw.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ar-ly.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ar-ma.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ar-sa.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ar-tn.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ar.js","webpack://groot/./node_modules/@fullcalendar/core/locales/az.js","webpack://groot/./node_modules/@fullcalendar/core/locales/bg.js","webpack://groot/./node_modules/@fullcalendar/core/locales/bn.js","webpack://groot/./node_modules/@fullcalendar/core/locales/bs.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ca.js","webpack://groot/./node_modules/@fullcalendar/core/locales/cs.js","webpack://groot/./node_modules/@fullcalendar/core/locales/cy.js","webpack://groot/./node_modules/@fullcalendar/core/locales/da.js","webpack://groot/./node_modules/@fullcalendar/core/locales/el.js","webpack://groot/./node_modules/@fullcalendar/core/locales/en-au.js","webpack://groot/./node_modules/@fullcalendar/core/locales/en-gb.js","webpack://groot/./node_modules/@fullcalendar/core/locales/en-nz.js","webpack://groot/./node_modules/@fullcalendar/core/locales/eo.js","webpack://groot/./node_modules/@fullcalendar/core/locales/es-us.js","webpack://groot/./node_modules/@fullcalendar/core/locales/es.js","webpack://groot/./node_modules/@fullcalendar/core/locales/et.js","webpack://groot/./node_modules/@fullcalendar/core/locales/eu.js","webpack://groot/./node_modules/@fullcalendar/core/locales/fa.js","webpack://groot/./node_modules/@fullcalendar/core/locales/fi.js","webpack://groot/./node_modules/@fullcalendar/core/locales/fr-ca.js","webpack://groot/./node_modules/@fullcalendar/core/locales/fr-ch.js","webpack://groot/./node_modules/@fullcalendar/core/locales/fr.js","webpack://groot/./node_modules/@fullcalendar/core/locales/gl.js","webpack://groot/./node_modules/@fullcalendar/core/locales/he.js","webpack://groot/./node_modules/@fullcalendar/core/locales/hi.js","webpack://groot/./node_modules/@fullcalendar/core/locales/hr.js","webpack://groot/./node_modules/@fullcalendar/core/locales/hu.js","webpack://groot/./node_modules/@fullcalendar/core/locales/hy-am.js","webpack://groot/./node_modules/@fullcalendar/core/locales/id.js","webpack://groot/./node_modules/@fullcalendar/core/locales/is.js","webpack://groot/./node_modules/@fullcalendar/core/locales/it.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ja.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ka.js","webpack://groot/./node_modules/@fullcalendar/core/locales/kk.js","webpack://groot/./node_modules/@fullcalendar/core/locales/km.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ko.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ku.js","webpack://groot/./node_modules/@fullcalendar/core/locales/lb.js","webpack://groot/./node_modules/@fullcalendar/core/locales/lt.js","webpack://groot/./node_modules/@fullcalendar/core/locales/lv.js","webpack://groot/./node_modules/@fullcalendar/core/locales/mk.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ms.js","webpack://groot/./node_modules/@fullcalendar/core/locales/nb.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ne.js","webpack://groot/./node_modules/@fullcalendar/core/locales/nl.js","webpack://groot/./node_modules/@fullcalendar/core/locales/nn.js","webpack://groot/./node_modules/@fullcalendar/core/locales/pl.js","webpack://groot/./node_modules/@fullcalendar/core/locales/pt-br.js","webpack://groot/./node_modules/@fullcalendar/core/locales/pt.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ro.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ru.js","webpack://groot/./node_modules/@fullcalendar/core/locales/si-lk.js","webpack://groot/./node_modules/@fullcalendar/core/locales/sk.js","webpack://groot/./node_modules/@fullcalendar/core/locales/sl.js","webpack://groot/./node_modules/@fullcalendar/core/locales/sm.js","webpack://groot/./node_modules/@fullcalendar/core/locales/sq.js","webpack://groot/./node_modules/@fullcalendar/core/locales/sr-cyrl.js","webpack://groot/./node_modules/@fullcalendar/core/locales/sr.js","webpack://groot/./node_modules/@fullcalendar/core/locales/sv.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ta-in.js","webpack://groot/./node_modules/@fullcalendar/core/locales/th.js","webpack://groot/./node_modules/@fullcalendar/core/locales/tr.js","webpack://groot/./node_modules/@fullcalendar/core/locales/ug.js","webpack://groot/./node_modules/@fullcalendar/core/locales/uk.js","webpack://groot/./node_modules/@fullcalendar/core/locales/uz-cy.js","webpack://groot/./node_modules/@fullcalendar/core/locales/uz.js","webpack://groot/./node_modules/@fullcalendar/core/locales/vi.js","webpack://groot/./node_modules/@fullcalendar/core/locales/zh-cn.js","webpack://groot/./node_modules/@fullcalendar/core/locales/zh-tw.js","webpack://groot/./node_modules/@fullcalendar/daygrid/internal.js","webpack://groot/./node_modules/@fullcalendar/daygrid/index.js","webpack://groot/./node_modules/@fullcalendar/interaction/index.js","webpack://groot/./node_modules/@fullcalendar/react/dist/index.js","webpack://groot/./node_modules/get-urls/node_modules/normalize-url/index.js","webpack://groot/./node_modules/function-timeout/browser.js","webpack://groot/./node_modules/time-span/browser.js","webpack://groot/./node_modules/is-regexp/index.js","webpack://groot/./node_modules/clone-regexp/index.js","webpack://groot/./node_modules/super-regex/index.js","webpack://groot/./node_modules/get-urls/index.js","webpack://groot/./node_modules/hex-rgb/index.js","webpack://groot/./node_modules/lodash-es/_listCacheClear.js","webpack://groot/./node_modules/lodash-es/_assocIndexOf.js","webpack://groot/./node_modules/lodash-es/_listCacheDelete.js","webpack://groot/./node_modules/lodash-es/_listCacheGet.js","webpack://groot/./node_modules/lodash-es/_listCacheHas.js","webpack://groot/./node_modules/lodash-es/_listCacheSet.js","webpack://groot/./node_modules/lodash-es/_ListCache.js","webpack://groot/./node_modules/lodash-es/_Map.js","webpack://groot/./node_modules/lodash-es/_nativeCreate.js","webpack://groot/./node_modules/lodash-es/_hashClear.js","webpack://groot/./node_modules/lodash-es/_hashDelete.js","webpack://groot/./node_modules/lodash-es/_hashGet.js","webpack://groot/./node_modules/lodash-es/_hashHas.js","webpack://groot/./node_modules/lodash-es/_hashSet.js","webpack://groot/./node_modules/lodash-es/_Hash.js","webpack://groot/./node_modules/lodash-es/_mapCacheClear.js","webpack://groot/./node_modules/lodash-es/_isKeyable.js","webpack://groot/./node_modules/lodash-es/_getMapData.js","webpack://groot/./node_modules/lodash-es/_mapCacheDelete.js","webpack://groot/./node_modules/lodash-es/_mapCacheGet.js","webpack://groot/./node_modules/lodash-es/_mapCacheHas.js","webpack://groot/./node_modules/lodash-es/_mapCacheSet.js","webpack://groot/./node_modules/lodash-es/_MapCache.js","webpack://groot/./node_modules/lodash-es/_setCacheAdd.js","webpack://groot/./node_modules/lodash-es/_setCacheHas.js","webpack://groot/./node_modules/lodash-es/_SetCache.js","webpack://groot/./node_modules/lodash-es/_Symbol.js","webpack://groot/./node_modules/lodash-es/_arrayMap.js","webpack://groot/./node_modules/lodash-es/_getRawTag.js","webpack://groot/./node_modules/lodash-es/_objectToString.js","webpack://groot/./node_modules/lodash-es/_baseGetTag.js","webpack://groot/./node_modules/lodash-es/_apply.js","webpack://groot/./node_modules/lodash-es/_overRest.js","webpack://groot/./node_modules/lodash-es/constant.js","webpack://groot/./node_modules/lodash-es/_baseSetToString.js","webpack://groot/./node_modules/lodash-es/_shortOut.js","webpack://groot/./node_modules/lodash-es/_setToString.js","webpack://groot/./node_modules/lodash-es/_baseRest.js","webpack://groot/./node_modules/lodash-es/_baseToString.js","webpack://groot/./node_modules/lodash-es/_trimmedEndIndex.js","webpack://groot/./node_modules/lodash-es/_baseTrim.js","webpack://groot/./node_modules/lodash-es/_baseUnary.js","webpack://groot/./node_modules/lodash-es/_cacheHas.js","webpack://groot/./node_modules/lodash-es/_defineProperty.js","webpack://groot/./node_modules/lodash-es/_freeGlobal.js","webpack://groot/./node_modules/lodash-es/_isMasked.js","webpack://groot/./node_modules/lodash-es/_coreJsData.js","webpack://groot/./node_modules/lodash-es/_baseIsNative.js","webpack://groot/./node_modules/lodash-es/_getValue.js","webpack://groot/./node_modules/lodash-es/_getNative.js","webpack://groot/./node_modules/lodash-es/_root.js","webpack://groot/./node_modules/lodash-es/_toSource.js","webpack://groot/./node_modules/lodash-es/eq.js","webpack://groot/./node_modules/lodash-es/identity.js","webpack://groot/./node_modules/lodash-es/isArray.js","webpack://groot/./node_modules/lodash-es/isArrayLike.js","webpack://groot/./node_modules/lodash-es/isArrayLikeObject.js","webpack://groot/./node_modules/lodash-es/isFunction.js","webpack://groot/./node_modules/lodash-es/isLength.js","webpack://groot/./node_modules/lodash-es/isObject.js","webpack://groot/./node_modules/lodash-es/isObjectLike.js","webpack://groot/./node_modules/lodash-es/isSymbol.js","webpack://groot/./node_modules/lodash-es/toString.js","webpack://groot/./node_modules/codsen-utils/dist/codsen-utils.esm.js","webpack://groot/./node_modules/lodash-es/_baseFindIndex.js","webpack://groot/./node_modules/lodash-es/_baseIsNaN.js","webpack://groot/./node_modules/lodash-es/_strictIndexOf.js","webpack://groot/./node_modules/lodash-es/_baseIndexOf.js","webpack://groot/./node_modules/lodash-es/_arrayIncludes.js","webpack://groot/./node_modules/lodash-es/_arrayIncludesWith.js","webpack://groot/./node_modules/lodash-es/_baseDifference.js","webpack://groot/./node_modules/lodash-es/without.js","webpack://groot/./node_modules/lodash-es/_baseSlice.js","webpack://groot/./node_modules/lodash-es/_castSlice.js","webpack://groot/./node_modules/lodash-es/_charsEndIndex.js","webpack://groot/./node_modules/lodash-es/_charsStartIndex.js","webpack://groot/./node_modules/lodash-es/_asciiToArray.js","webpack://groot/./node_modules/lodash-es/_hasUnicode.js","webpack://groot/./node_modules/lodash-es/_unicodeToArray.js","webpack://groot/./node_modules/lodash-es/_stringToArray.js","webpack://groot/./node_modules/lodash-es/trim.js","webpack://groot/./node_modules/ranges-sort/dist/ranges-sort.esm.js","webpack://groot/./node_modules/ranges-merge/dist/ranges-merge.esm.js","webpack://groot/./node_modules/ranges-apply/dist/ranges-apply.esm.js","webpack://groot/./node_modules/string-collapse-leading-whitespace/dist/string-collapse-leading-whitespace.esm.js","webpack://groot/./node_modules/ranges-push/dist/ranges-push.esm.js","webpack://groot/./node_modules/string-left-right/dist/string-left-right.esm.js","webpack://groot/./node_modules/string-strip-html/dist/string-strip-html.esm.js","webpack://groot/./node_modules/throttle-debounce/esm/index.js"],"sourcesContent":["'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fab';\nvar iconName = 'js';\nvar width = 448;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f3b8';\nvar svgPathData = 'M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faJs = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fab';\nvar iconName = 'microsoft';\nvar width = 448;\nvar height = 512;\nvar aliases = [];\nvar unicode = 'f3ca';\nvar svgPathData = 'M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faMicrosoft = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fab';\nvar iconName = 'slack';\nvar width = 448;\nvar height = 512;\nvar aliases = [62447,\"slack-hash\"];\nvar unicode = 'f198';\nvar svgPathData = 'M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faSlack = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'circle-exclamation';\nvar width = 512;\nvar height = 512;\nvar aliases = [\"exclamation-circle\"];\nvar unicode = 'f06a';\nvar svgPathData = 'M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n aliases,\n unicode,\n svgPathData\n ]};\n\nexports.faCircleExclamation = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = aliases;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;\nexports.aliases = aliases;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' })\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' })\n );\n};","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalDragon = process.env.NODE_ENV === 'development' ? require('./LexicalDragon.dev.js') : require('./LexicalDragon.prod.js')\nmodule.exports = LexicalDragon;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var g=require(\"lexical\");\nexports.registerDragonSupport=function(m){let t=window.location.origin,r=l=>{if(l.origin===t){var h=m.getRootElement();if(document.activeElement===h&&(h=l.data,\"string\"===typeof h)){try{var a=JSON.parse(h)}catch(k){return}if(a&&\"nuanria_messaging\"===a.protocol&&\"request\"===a.type&&(a=a.payload)&&\"makeChanges\"===a.functionId&&(a=a.args)){const [k,n,p,q,u]=a;m.update(()=>{const f=g.$getSelection();if(g.$isRangeSelection(f)){var e=f.anchor;let b=e.getNode(),c=0,d=0;g.$isTextNode(b)&&0<=k&&0<=n&&(c=k,\nd=k+n,f.setTextNodeRange(b,c,b,d));if(c!==d||\"\"!==p)f.insertRawText(p),b=e.getNode();g.$isTextNode(b)&&(c=q,d=q+u,e=b.getTextContentSize(),c=c>e?e:c,d=d>e?e:d,f.setTextNodeRange(b,c,b,d));l.stopImmediatePropagation()}})}}}};window.addEventListener(\"message\",r,!0);return()=>{window.removeEventListener(\"message\",r,!0)}}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalHistory = process.env.NODE_ENV === 'development' ? require('./LexicalHistory.dev.js') : require('./LexicalHistory.prod.js')\nmodule.exports = LexicalHistory;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var c=require(\"@lexical/utils\"),x=require(\"lexical\");\nfunction y(b,a,l,h,n){if(null===b||0===l.size&&0===h.size&&!n)return 0;var f=a._selection,d=b._selection;if(n)return 1;if(!(x.$isRangeSelection(f)&&x.$isRangeSelection(d)&&d.isCollapsed()&&f.isCollapsed()))return 0;n=a._nodeMap;let e=[];for(let m of l)l=n.get(m),void 0!==l&&e.push(l);for(let [m,p]of h)p&&(h=n.get(m),void 0===h||x.$isRootNode(h)||e.push(h));if(0===e.length)return 0;if(1<e.length)return h=a._nodeMap,a=h.get(f.anchor.key),d=h.get(d.anchor.key),a&&d&&!b._nodeMap.has(a.__key)&&x.$isTextNode(a)&&\n1===a.__text.length&&1===f.anchor.offset?2:0;a=e[0];b=b._nodeMap.get(a.__key);if(!x.$isTextNode(b)||!x.$isTextNode(a)||b.__mode!==a.__mode)return 0;b=b.__text;a=a.__text;if(b===a)return 0;f=f.anchor;d=d.anchor;if(f.key!==d.key||\"text\"!==f.type)return 0;f=f.offset;d=d.offset;b=a.length-b.length;return 1===b&&d===f-1?2:-1===b&&d===f+1?3:-1===b&&d===f?4:0}\nfunction z(b,a){let l=Date.now(),h=0;return(n,f,d,e,m,p)=>{let r=Date.now();if(p.has(\"historic\"))return h=0,l=r,2;let q=y(n,f,e,m,b.isComposing()),v=(()=>{var k=null===d||d.editor===b,g=p.has(\"history-push\");if(!g&&k&&p.has(\"history-merge\"))return 0;if(null===n)return 1;var t=f._selection;if(!(0<e.size||0<m.size))return null!==t?0:2;if(!1===g&&0!==q&&q===h&&r<l+a&&k)return 0;if(1===e.size){{g=Array.from(e)[0];k=n._nodeMap.get(g);g=f._nodeMap.get(g);t=n._selection;let u=f._selection,w=!1;x.$isRangeSelection(t)&&\nx.$isRangeSelection(u)&&(w=\"element\"===t.anchor.type&&\"element\"===t.focus.type&&\"text\"===u.anchor.type&&\"text\"===u.focus.type);k=!w&&x.$isTextNode(k)&&x.$isTextNode(g)?k.__type===g.__type&&k.__text===g.__text&&k.__mode===g.__mode&&k.__detail===g.__detail&&k.__style===g.__style&&k.__format===g.__format&&k.__parent===g.__parent:!1}if(k)return 0}return 1})();l=r;h=q;return v}}exports.createEmptyHistoryState=function(){return{current:null,redoStack:[],undoStack:[]}};\nexports.registerHistory=function(b,a,l){let h=z(b,l);l=({editorState:d,prevEditorState:e,dirtyLeaves:m,dirtyElements:p,tags:r})=>{const q=a.current,v=a.redoStack,k=a.undoStack,g=null===q?null:q.editorState;if(null===q||d!==g){e=h(e,d,q,m,p,r);if(1===e)0!==v.length&&(a.redoStack=[],b.dispatchCommand(x.CAN_REDO_COMMAND,!1)),null!==q&&(k.push({...q}),b.dispatchCommand(x.CAN_UNDO_COMMAND,!0));else if(2===e)return;a.current={editor:b,editorState:d}}};let n=c.mergeRegister(b.registerCommand(x.UNDO_COMMAND,\n()=>{let d=a.redoStack,e=a.undoStack;if(0!==e.length){let m=a.current,p=e.pop();null!==m&&(d.push(m),b.dispatchCommand(x.CAN_REDO_COMMAND,!0));0===e.length&&b.dispatchCommand(x.CAN_UNDO_COMMAND,!1);a.current=p||null;p&&p.editor.setEditorState(p.editorState,{tag:\"historic\"})}return!0},x.COMMAND_PRIORITY_EDITOR),b.registerCommand(x.REDO_COMMAND,()=>{let d=a.redoStack;var e=a.undoStack;if(0!==d.length){let m=a.current;null!==m&&(e.push(m),b.dispatchCommand(x.CAN_UNDO_COMMAND,!0));e=d.pop();0===d.length&&\nb.dispatchCommand(x.CAN_REDO_COMMAND,!1);a.current=e||null;e&&e.editor.setEditorState(e.editorState,{tag:\"historic\"})}return!0},x.COMMAND_PRIORITY_EDITOR),b.registerCommand(x.CLEAR_EDITOR_COMMAND,()=>{a.undoStack=[];a.redoStack=[];a.current=null;return!1},x.COMMAND_PRIORITY_EDITOR),b.registerCommand(x.CLEAR_HISTORY_COMMAND,()=>{a.undoStack=[];a.redoStack=[];a.current=null;b.dispatchCommand(x.CAN_REDO_COMMAND,!1);b.dispatchCommand(x.CAN_UNDO_COMMAND,!1);return!0},x.COMMAND_PRIORITY_EDITOR),b.registerUpdateListener(l)),\nf=b.registerUpdateListener(l);return()=>{n();f()}}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalLink = process.env.NODE_ENV === 'development' ? require('./LexicalLink.dev.js') : require('./LexicalLink.prod.js')\nmodule.exports = LexicalLink;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"@lexical/utils\"),m=require(\"lexical\");let n=new Set([\"http:\",\"https:\",\"mailto:\",\"sms:\",\"tel:\"]);\nclass p extends m.ElementNode{static getType(){return\"link\"}static clone(a){return new p(a.__url,{rel:a.__rel,target:a.__target,title:a.__title},a.__key)}constructor(a,b={},e){super(e);let {target:h=null,rel:k=null,title:f=null}=b;this.__url=a;this.__target=h;this.__rel=k;this.__title=f}createDOM(a){let b=document.createElement(\"a\");b.href=this.sanitizeUrl(this.__url);null!==this.__target&&(b.target=this.__target);null!==this.__rel&&(b.rel=this.__rel);null!==this.__title&&(b.title=this.__title);l.addClassNamesToElement(b,\na.theme.link);return b}updateDOM(a,b){let e=this.__url,h=this.__target,k=this.__rel,f=this.__title;e!==a.__url&&(b.href=e);h!==a.__target&&(h?b.target=h:b.removeAttribute(\"target\"));k!==a.__rel&&(k?b.rel=k:b.removeAttribute(\"rel\"));f!==a.__title&&(f?b.title=f:b.removeAttribute(\"title\"));return!1}static importDOM(){return{a:()=>({conversion:q,priority:1})}}static importJSON(a){let b=r(a.url,{rel:a.rel,target:a.target,title:a.title});b.setFormat(a.format);b.setIndent(a.indent);b.setDirection(a.direction);\nreturn b}sanitizeUrl(a){try{let b=new URL(a);if(!n.has(b.protocol))return\"about:blank\"}catch(b){}return a}exportJSON(){return{...super.exportJSON(),rel:this.getRel(),target:this.getTarget(),title:this.getTitle(),type:\"link\",url:this.getURL(),version:1}}getURL(){return this.getLatest().__url}setURL(a){this.getWritable().__url=a}getTarget(){return this.getLatest().__target}setTarget(a){this.getWritable().__target=a}getRel(){return this.getLatest().__rel}setRel(a){this.getWritable().__rel=a}getTitle(){return this.getLatest().__title}setTitle(a){this.getWritable().__title=\na}insertNewAfter(a,b=!0){a=r(this.__url,{rel:this.__rel,target:this.__target,title:this.__title});this.insertAfter(a,b);return a}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}canBeEmpty(){return!1}isInline(){return!0}extractWithChild(a,b){if(!m.$isRangeSelection(b))return!1;a=b.anchor.getNode();let e=b.focus.getNode();return this.isParentOf(a)&&this.isParentOf(e)&&0<b.getTextContent().length}}\nfunction q(a){let b=null;if(l.isHTMLAnchorElement(a)){let e=a.textContent;if(null!==e&&\"\"!==e||0<a.children.length)b=r(a.getAttribute(\"href\")||\"\",{rel:a.getAttribute(\"rel\"),target:a.getAttribute(\"target\"),title:a.getAttribute(\"title\")})}return{node:b}}function r(a,b){return m.$applyNodeReplacement(new p(a,b))}function u(a){return a instanceof p}\nclass v extends p{static getType(){return\"autolink\"}static clone(a){return new v(a.__url,{rel:a.__rel,target:a.__target,title:a.__title},a.__key)}static importJSON(a){let b=w(a.url,{rel:a.rel,target:a.target,title:a.title});b.setFormat(a.format);b.setIndent(a.indent);b.setDirection(a.direction);return b}static importDOM(){return null}exportJSON(){return{...super.exportJSON(),type:\"autolink\",version:1}}insertNewAfter(a,b=!0){a=this.getParentOrThrow().insertNewAfter(a,b);return m.$isElementNode(a)?\n(b=w(this.__url,{rel:this.__rel,target:this.__target,title:this.__title}),a.append(b),b):null}}function w(a,b){return m.$applyNodeReplacement(new v(a,b))}let x=m.createCommand(\"TOGGLE_LINK_COMMAND\");function y(a,b){for(;null!==a&&null!==a.getParent()&&!b(a);)a=a.getParentOrThrow();return b(a)?a:null}exports.$createAutoLinkNode=w;exports.$createLinkNode=r;exports.$isAutoLinkNode=function(a){return a instanceof v};exports.$isLinkNode=u;exports.AutoLinkNode=v;exports.LinkNode=p;\nexports.TOGGLE_LINK_COMMAND=x;\nexports.toggleLink=function(a,b={}){let {target:e,title:h}=b,k=void 0===b.rel?\"noreferrer\":b.rel;b=m.$getSelection();if(m.$isRangeSelection(b))if(b=b.extract(),null===a)b.forEach(f=>{f=f.getParent();if(u(f)){let d=f.getChildren();for(let c=0;c<d.length;c++)f.insertBefore(d[c]);f.remove()}});else{if(1===b.length){let c=y(b[0],u);if(null!==c){c.setURL(a);void 0!==e&&c.setTarget(e);null!==k&&c.setRel(k);void 0!==h&&c.setTitle(h);return}}let f=null,d=null;b.forEach(c=>{var g=c.getParent();if(g!==d&&null!==\ng&&(!m.$isElementNode(c)||c.isInline()))if(u(g))d=g,g.setURL(a),void 0!==e&&g.setTarget(e),null!==k&&d.setRel(k),void 0!==h&&d.setTitle(h);else if(g.is(f)||(f=g,d=r(a,{rel:k,target:e,title:h}),u(g)?null===c.getPreviousSibling()?g.insertBefore(d):g.insertAfter(d):c.insertBefore(d)),u(c)){if(!c.is(d)){if(null!==d){g=c.getChildren();for(let t=0;t<g.length;t++)d.append(g[t])}c.remove()}}else null!==d&&d.append(c)})}}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalList = process.env.NODE_ENV === 'development' ? require('./LexicalList.dev.js') : require('./LexicalList.prod.js')\nmodule.exports = LexicalList;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"lexical\"),k=require(\"@lexical/utils\");function l(a){let b=new URLSearchParams;b.append(\"code\",a);for(let c=1;c<arguments.length;c++)b.append(\"v\",arguments[c]);throw Error(`Minified Lexical error #${a}; visit https://lexical.dev/docs/error?${b} for the full message or `+\"use the non-minified dev environment for full errors and additional helpful warnings.\");}\nfunction n(a){let b=1;for(a=a.getParent();null!=a;){if(p(a)){a=a.getParent();if(q(a)){b++;a=a.getParent();continue}l(40)}break}return b}function r(a){a=a.getParent();q(a)||l(40);let b=a;for(;null!==b;)b=b.getParent(),q(b)&&(a=b);return a}function t(a){let b=[];a=a.getChildren().filter(p);for(let c=0;c<a.length;c++){let d=a[c],e=d.getFirstChild();q(e)?b=b.concat(t(e)):b.push(d)}return b}function u(a){return p(a)&&q(a.getFirstChild())}\nfunction v(a){for(;null==a.getNextSibling()&&null==a.getPreviousSibling();){let b=a.getParent();if(null==b||!p(a)&&!q(a))break;a=b}a.remove()}function w(a){return y().append(a)}function z(a,b){return p(a)&&(0===b.length||1===b.length&&a.is(b[0])&&0===a.getChildrenSize())}function C(a,b){a.splice(a.getChildrenSize(),0,b)}\nfunction D(a,b){if(q(a))return a;let c=a.getPreviousSibling(),d=a.getNextSibling(),e=y();e.setFormat(a.getFormatType());e.setIndent(a.getIndent());C(e,a.getChildren());if(q(c)&&b===c.getListType())return c.append(e),a.remove(),q(d)&&b===d.getListType()&&(C(c,d.getChildren()),d.remove()),c;if(q(d)&&b===d.getListType())return d.getFirstChildOrThrow().insertBefore(e),a.remove(),d;b=E(b);b.append(e);a.replace(b);F(b);return b}\nfunction G(a,b){var c=a.getLastChild();let d=b.getFirstChild();c&&d&&u(c)&&u(d)&&(G(c.getFirstChild(),d.getFirstChild()),d.remove());c=b.getChildren();0<c.length&&(a.append(...c),F(a));b.remove()}function F(a,b){a=b||a.getChildren();if(void 0!==a)for(b=0;b<a.length;b++){let f=a[b];if(p(f)){let g=f.getValue();var c=f,d=c.getParent(),e=1;null!=d&&(q(d)?e=d.getStart():l(44));c=c.getPreviousSiblings();for(d=0;d<c.length;d++){let m=c[d];p(m)&&!q(m.getFirstChild())&&e++}g!==e&&f.setValue(e)}}}\nfunction H(a){if(!u(a)){var b=a.getParent(),c=b?b.getParent():void 0,d=c?c.getParent():void 0;if(q(d)&&p(c)&&q(b)){var e=b?b.getFirstChild():void 0,f=b?b.getLastChild():void 0;if(a.is(e))c.insertBefore(a),b.isEmpty()&&c.remove();else if(a.is(f))c.insertAfter(a),b.isEmpty()&&c.remove();else{var g=b.getListType();e=y();let m=E(g);e.append(m);a.getPreviousSiblings().forEach(x=>m.append(x));f=y();g=E(g);f.append(g);C(g,a.getNextSiblings());c.insertBefore(e);c.insertAfter(f);c.replace(a)}F(b);F(d)}}}\nclass I extends h.ElementNode{static getType(){return\"listitem\"}static clone(a){return new I(a.__value,a.__checked,a.__key)}constructor(a,b,c){super(c);this.__value=void 0===a?1:a;this.__checked=b}createDOM(a){let b=document.createElement(\"li\"),c=this.getParent();q(c)&&\"check\"===c.getListType()&&J(b,this,null);b.value=this.__value;K(b,a.theme,this);return b}updateDOM(a,b,c){let d=this.getParent();q(d)&&\"check\"===d.getListType()&&J(b,this,a);b.value=this.__value;K(b,c.theme,this);return!1}static transform(){return a=>\n{let b=a.getParent();q(b)&&(F(b),p(a)||l(144),\"check\"!==b.getListType()&&null!=a.getChecked()&&a.setChecked(void 0))}}static importDOM(){return{li:()=>({conversion:L,priority:0})}}static importJSON(a){let b=y();b.setChecked(a.checked);b.setValue(a.value);b.setFormat(a.format);b.setDirection(a.direction);return b}exportDOM(a){a=this.createDOM(a._config);a.style.textAlign=this.getFormatType();return{element:a}}exportJSON(){return{...super.exportJSON(),checked:this.getChecked(),type:\"listitem\",value:this.getValue(),\nversion:1}}append(...a){for(let b=0;b<a.length;b++){let c=a[b];if(h.$isElementNode(c)&&this.canMergeWith(c)){let d=c.getChildren();this.append(...d);c.remove()}else super.append(c)}return this}replace(a,b){if(p(a))return super.replace(a);this.setIndent(0);let c=this.getParentOrThrow();if(!q(c))return a;if(c.__first===this.getKey())c.insertBefore(a);else if(c.__last===this.getKey())c.insertAfter(a);else{let d=E(c.getListType()),e=this.getNextSibling();for(;e;){let f=e;e=e.getNextSibling();d.append(f)}c.insertAfter(a);\na.insertAfter(d)}b&&(h.$isElementNode(a)||l(139),this.getChildren().forEach(d=>{a.append(d)}));this.remove();0===c.getChildrenSize()&&c.remove();return a}insertAfter(a,b=!0){var c=this.getParentOrThrow();q(c)||l(39);var d=this.getNextSiblings();if(p(a))return b=super.insertAfter(a,b),a=a.getParentOrThrow(),q(a)&&F(a),b;if(q(a)){c=a;a=a.getChildren();for(d=a.length-1;0<=d;d--)c=a[d],this.insertAfter(c,b);return c}c.insertAfter(a,b);if(0!==d.length){let e=E(c.getListType());d.forEach(f=>e.append(f));\na.insertAfter(e,b)}return a}remove(a){let b=this.getPreviousSibling(),c=this.getNextSibling();super.remove(a);b&&c&&u(b)&&u(c)?(G(b.getFirstChild(),c.getFirstChild()),c.remove()):c&&(a=c.getParent(),q(a)&&F(a))}insertNewAfter(a,b=!0){a=y(null==this.__checked?void 0:!1);this.insertAfter(a,b);return a}collapseAtStart(a){let b=h.$createParagraphNode();this.getChildren().forEach(f=>b.append(f));var c=this.getParentOrThrow(),d=c.getParentOrThrow();let e=p(d);1===c.getChildrenSize()?e?(c.remove(),d.select()):\n(c.insertBefore(b),c.remove(),c=a.anchor,a=a.focus,d=b.getKey(),\"element\"===c.type&&c.getNode().is(this)&&c.set(d,c.offset,\"element\"),\"element\"===a.type&&a.getNode().is(this)&&a.set(d,a.offset,\"element\")):(c.insertBefore(b),this.remove());return!0}getValue(){return this.getLatest().__value}setValue(a){this.getWritable().__value=a}getChecked(){return this.getLatest().__checked}setChecked(a){this.getWritable().__checked=a}toggleChecked(){this.setChecked(!this.__checked)}getIndent(){var a=this.getParent();\nif(null===a)return this.getLatest().__indent;a=a.getParentOrThrow();let b=0;for(;p(a);)a=a.getParentOrThrow().getParentOrThrow(),b++;return b}setIndent(a){\"number\"===typeof a&&-1<a||l(117);let b=this.getIndent();for(;b!==a;)if(b<a){a:{var c=new Set;if(u(this)||c.has(this.getKey()))break a;let g=this.getParent();var d=this.getNextSibling(),e=this.getPreviousSibling();if(u(d)&&u(e)){if(e=e.getFirstChild(),q(e)){e.append(this);var f=d.getFirstChild();q(f)&&(f=f.getChildren(),C(e,f),d.remove(),c.add(d.getKey()));\nF(e)}}else u(d)?(d=d.getFirstChild(),q(d)&&(c=d.getFirstChild(),null!==c&&c.insertBefore(this),F(d))):u(e)?(d=e.getFirstChild(),q(d)&&(d.append(this),F(d))):q(g)&&(c=y(),f=E(g.getListType()),c.append(f),f.append(this),e?e.insertAfter(c):d?d.insertBefore(c):g.append(c),F(f));q(g)&&F(g)}b++}else H(this),b--;return this}insertBefore(a){if(p(a)){let b=this.getParentOrThrow();if(q(b)){let c=this.getNextSiblings();F(b,c)}}return super.insertBefore(a)}canInsertAfter(a){return p(a)}canReplaceWith(a){return p(a)}canMergeWith(a){return h.$isParagraphNode(a)||\np(a)}extractWithChild(a,b){if(!h.$isRangeSelection(b))return!1;a=b.anchor.getNode();let c=b.focus.getNode();return this.isParentOf(a)&&this.isParentOf(c)&&this.getTextContent().length===b.getTextContent().length}isParentRequired(){return!0}createParentElementNode(){return E(\"bullet\")}}\nfunction K(a,b,c){let d=[],e=[];var f=(b=b.list)?b.listitem:void 0;if(b&&b.nested)var g=b.nested.listitem;void 0!==f&&(f=f.split(\" \"),d.push(...f));if(b){f=c.getParent();f=q(f)&&\"check\"===f.getListType();let m=c.getChecked();f&&!m||e.push(b.listitemUnchecked);f&&m||e.push(b.listitemChecked);f&&d.push(m?b.listitemChecked:b.listitemUnchecked)}void 0!==g&&(g=g.split(\" \"),c.getChildren().some(m=>q(m))?d.push(...g):e.push(...g));0<e.length&&k.removeClassNamesFromElement(a,...e);0<d.length&&k.addClassNamesToElement(a,\n...d)}function J(a,b,c){q(b.getFirstChild())?(a.removeAttribute(\"role\"),a.removeAttribute(\"tabIndex\"),a.removeAttribute(\"aria-checked\")):(a.setAttribute(\"role\",\"checkbox\"),a.setAttribute(\"tabIndex\",\"-1\"),c&&b.__checked===c.__checked||a.setAttribute(\"aria-checked\",b.getChecked()?\"true\":\"false\"))}function L(a){a=k.isHTMLElement(a)&&\"true\"===a.getAttribute(\"aria-checked\");return{node:y(a)}}function y(a){return h.$applyNodeReplacement(new I(void 0,a))}function p(a){return a instanceof I}\nclass M extends h.ElementNode{static getType(){return\"list\"}static clone(a){return new M(a.__listType||O[a.__tag],a.__start,a.__key)}constructor(a,b,c){super(c);this.__listType=a=O[a]||a;this.__tag=\"number\"===a?\"ol\":\"ul\";this.__start=b}getTag(){return this.__tag}setListType(a){let b=this.getWritable();b.__listType=a;b.__tag=\"number\"===a?\"ol\":\"ul\"}getListType(){return this.__listType}getStart(){return this.__start}createDOM(a){let b=document.createElement(this.__tag);1!==this.__start&&b.setAttribute(\"start\",\nString(this.__start));b.__lexicalListType=this.__listType;P(b,a.theme,this);return b}updateDOM(a,b,c){if(a.__tag!==this.__tag)return!0;P(b,c.theme,this);return!1}static importDOM(){return{ol:()=>({conversion:Q,priority:0}),ul:()=>({conversion:Q,priority:0})}}static importJSON(a){let b=E(a.listType,a.start);b.setFormat(a.format);b.setIndent(a.indent);b.setDirection(a.direction);return b}exportDOM(a){({element:a}=super.exportDOM(a));a&&k.isHTMLElement(a)&&(1!==this.__start&&a.setAttribute(\"start\",String(this.__start)),\n\"check\"===this.__listType&&a.setAttribute(\"__lexicalListType\",\"check\"));return{element:a}}exportJSON(){return{...super.exportJSON(),listType:this.getListType(),start:this.getStart(),tag:this.getTag(),type:\"list\",version:1}}canBeEmpty(){return!1}canIndent(){return!1}append(...a){for(let c=0;c<a.length;c++){var b=a[c];if(p(b))super.append(b);else{let d=y();q(b)?d.append(b):h.$isElementNode(b)?(b=h.$createTextNode(b.getTextContent()),d.append(b)):d.append(b);super.append(d)}}F(this);return this}extractWithChild(a){return p(a)}}\nfunction P(a,b,c){let d=[],e=[];var f=b.list;if(void 0!==f){let m=f[`${c.__tag}Depth`]||[];b=n(c)-1;let x=b%m.length;var g=m[x];let N=f[c.__tag],A,B=f.nested;f=f.checklist;void 0!==B&&B.list&&(A=B.list);void 0!==N&&d.push(N);void 0!==f&&\"check\"===c.__listType&&d.push(f);if(void 0!==g)for(g=g.split(\" \"),d.push(...g),g=0;g<m.length;g++)g!==x&&e.push(c.__tag+g);void 0!==A&&(c=A.split(\" \"),1<b?d.push(...c):e.push(...c))}0<e.length&&k.removeClassNamesFromElement(a,...e);0<d.length&&k.addClassNamesToElement(a,\n...d)}function R(a){let b=[];for(let d=0;d<a.length;d++){var c=a[d];p(c)?(b.push(c),c=c.getChildren(),1<c.length&&c.forEach(e=>{q(e)&&b.push(w(e))})):b.push(w(c))}return b}function Q(a){let b=a.nodeName.toLowerCase(),c=null;\"ol\"===b?c=E(\"number\",a.start):\"ul\"===b&&(c=k.isHTMLElement(a)&&\"check\"===a.getAttribute(\"__lexicallisttype\")?E(\"check\"):E(\"bullet\"));return{after:R,node:c}}let O={ol:\"number\",ul:\"bullet\"};function E(a,b=1){return h.$applyNodeReplacement(new M(a,b))}\nfunction q(a){return a instanceof M}let S=h.createCommand(\"INSERT_UNORDERED_LIST_COMMAND\"),T=h.createCommand(\"INSERT_ORDERED_LIST_COMMAND\"),U=h.createCommand(\"INSERT_CHECK_LIST_COMMAND\"),V=h.createCommand(\"REMOVE_LIST_COMMAND\");exports.$createListItemNode=y;exports.$createListNode=E;exports.$getListDepth=n;\nexports.$handleListInsertParagraph=function(){var a=h.$getSelection();if(!h.$isRangeSelection(a)||!a.isCollapsed())return!1;a=a.anchor.getNode();if(!p(a)||0!==a.getChildrenSize())return!1;var b=r(a),c=a.getParent();q(c)||l(40);let d=c.getParent(),e;if(h.$isRootOrShadowRoot(d))e=h.$createParagraphNode(),b.insertAfter(e);else if(p(d))e=y(),d.insertAfter(e);else return!1;e.select();b=a.getNextSiblings();if(0<b.length){let f=E(c.getListType());h.$isParagraphNode(e)?e.insertAfter(f):(c=y(),c.append(f),\ne.insertAfter(c));b.forEach(g=>{g.remove();f.append(g)})}v(a);return!0};exports.$isListItemNode=p;exports.$isListNode=q;exports.INSERT_CHECK_LIST_COMMAND=U;exports.INSERT_ORDERED_LIST_COMMAND=T;exports.INSERT_UNORDERED_LIST_COMMAND=S;exports.ListItemNode=I;exports.ListNode=M;exports.REMOVE_LIST_COMMAND=V;\nexports.insertList=function(a,b){a.update(()=>{var c=h.$getSelection();if(null!==c){var d=c.getNodes();c=c.getStartEndPoints();null===c&&l(143);[c]=c;c=c.getNode();var e=c.getParent();if(z(c,d))d=E(b),h.$isRootOrShadowRoot(e)?(c.replace(d),e=y(),h.$isElementNode(c)&&(e.setFormat(c.getFormatType()),e.setIndent(c.getIndent())),d.append(e)):p(c)&&(c=c.getParentOrThrow(),C(d,c.getChildren()),c.replace(d));else for(c=new Set,e=0;e<d.length;e++){var f=d[e];if(h.$isElementNode(f)&&f.isEmpty()&&!p(f)&&!c.has(f.getKey()))D(f,\nb);else if(h.$isLeafNode(f))for(f=f.getParent();null!=f;){let m=f.getKey();if(q(f)){if(!c.has(m)){var g=E(b);C(g,f.getChildren());f.replace(g);F(g);c.add(m)}break}else{g=f.getParent();if(h.$isRootOrShadowRoot(g)&&!c.has(m)){c.add(m);D(f,b);break}f=g}}}}})};\nexports.removeList=function(a){a.update(()=>{let b=h.$getSelection();if(h.$isRangeSelection(b)){var c=new Set,d=b.getNodes(),e=b.anchor.getNode();if(z(e,d))c.add(r(e));else for(e=0;e<d.length;e++){var f=d[e];h.$isLeafNode(f)&&(f=k.$getNearestNodeOfType(f,I),null!=f&&c.add(r(f)))}for(let g of c){c=g;d=t(g);for(let m of d)d=h.$createParagraphNode(),C(d,m.getChildren()),c.insertAfter(d),c=d,m.__key===b.anchor.key&&b.anchor.set(d.getKey(),0,\"element\"),m.__key===b.focus.key&&b.focus.set(d.getKey(),0,\"element\"),\nm.remove();g.remove()}}})}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalComposer = process.env.NODE_ENV === 'development' ? require('./LexicalComposer.dev.js') : require('./LexicalComposer.prod.js')\nmodule.exports = LexicalComposer;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"@lexical/react/LexicalComposerContext\"),f=require(\"lexical\"),g=require(\"react\");let m=\"undefined\"!==typeof window&&\"undefined\"!==typeof window.document&&\"undefined\"!==typeof window.document.createElement;var n=m?g.useLayoutEffect:g.useEffect;let p={tag:\"history-merge\"};\nfunction q(a,c){if(null!==c)if(void 0===c)a.update(()=>{var b=f.$getRoot();if(b.isEmpty()){let d=f.$createParagraphNode();b.append(d);b=m?document.activeElement:null;(null!==f.$getSelection()||null!==b&&b===a.getRootElement())&&d.select()}},p);else if(null!==c)switch(typeof c){case \"string\":let b=a.parseEditorState(c);a.setEditorState(b,p);break;case \"object\":a.setEditorState(c,p);break;case \"function\":a.update(()=>{f.$getRoot().isEmpty()&&c(a)},p)}}\nexports.LexicalComposer=function({initialConfig:a,children:c}){let b=g.useMemo(()=>{const {theme:d,namespace:h,editor__DEPRECATED:r,nodes:t,onError:u,editorState:v,html:w}=a,x=e.createLexicalComposerContext(null,d);let k=r||null;if(null===k){const l=f.createEditor({editable:a.editable,html:w,namespace:h,nodes:t,onError:y=>u(y,l),theme:d});q(l,v);k=l}return[k,x]},[]);n(()=>{let d=a.editable,[h]=b;h.setEditable(void 0!==d?d:!0)},[]);return g.createElement(e.LexicalComposerContext.Provider,{value:b},\nc)}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalComposerContext = process.env.NODE_ENV === 'development' ? require('./LexicalComposerContext.dev.js') : require('./LexicalComposerContext.prod.js')\nmodule.exports = LexicalComposerContext;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var d=require(\"react\");function e(a){let c=new URLSearchParams;c.append(\"code\",a);for(let b=1;b<arguments.length;b++)c.append(\"v\",arguments[b]);throw Error(`Minified Lexical error #${a}; visit https://lexical.dev/docs/error?${c} for the full message or `+\"use the non-minified dev environment for full errors and additional helpful warnings.\");}let f=d.createContext(null);exports.LexicalComposerContext=f;\nexports.createLexicalComposerContext=function(a,c){let b=null;null!=a&&(b=a[1]);return{getTheme:function(){return null!=c?c:null!=b?b.getTheme():null}}};exports.useLexicalComposerContext=function(){let a=d.useContext(f);null==a&&e(8);return a}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalContentEditable = process.env.NODE_ENV === 'development' ? require('./LexicalContentEditable.dev.js') : require('./LexicalContentEditable.prod.js')\nmodule.exports = LexicalContentEditable;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var c=require(\"@lexical/react/LexicalComposerContext\"),h=require(\"react\");function n(){n=Object.assign?Object.assign.bind():function(g){for(var d=1;d<arguments.length;d++){var e=arguments[d],b;for(b in e)Object.prototype.hasOwnProperty.call(e,b)&&(g[b]=e[b])}return g};return n.apply(this,arguments)}var p=\"undefined\"!==typeof window&&\"undefined\"!==typeof window.document&&\"undefined\"!==typeof window.document.createElement?h.useLayoutEffect:h.useEffect;\nexports.ContentEditable=function({ariaActiveDescendant:g,ariaAutoComplete:d,ariaControls:e,ariaDescribedBy:b,ariaExpanded:q,ariaLabel:r,ariaLabelledBy:t,ariaMultiline:u,ariaOwns:v,ariaRequired:w,autoCapitalize:x,className:y,id:z,role:l=\"textbox\",spellCheck:A=!0,style:B,tabIndex:C,\"data-testid\":D,...E}){let [f]=c.useLexicalComposerContext(),[a,m]=h.useState(!1),F=h.useCallback(k=>{f.setRootElement(k)},[f]);p(()=>{m(f.isEditable());return f.registerEditableListener(k=>{m(k)})},[f]);return h.createElement(\"div\",\nn({},E,{\"aria-activedescendant\":a?g:void 0,\"aria-autocomplete\":a?d:\"none\",\"aria-controls\":a?e:void 0,\"aria-describedby\":b,\"aria-expanded\":a?\"combobox\"===l?!!q:void 0:void 0,\"aria-label\":r,\"aria-labelledby\":t,\"aria-multiline\":u,\"aria-owns\":a?v:void 0,\"aria-readonly\":a?void 0:!0,\"aria-required\":w,autoCapitalize:x,className:y,contentEditable:a,\"data-testid\":D,id:z,ref:F,role:l,spellCheck:A,style:B,tabIndex:C}))}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalEditorRefPlugin = process.env.NODE_ENV === 'development' ? require('./LexicalEditorRefPlugin.dev.js') : require('./LexicalEditorRefPlugin.prod.js')\nmodule.exports = LexicalEditorRefPlugin;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var c=require(\"@lexical/react/LexicalComposerContext\");exports.EditorRefPlugin=function({editorRef:a}){let [b]=c.useLexicalComposerContext();\"function\"===typeof a?a(b):\"object\"===typeof a&&(a.current=b);return null}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalErrorBoundary = process.env.NODE_ENV === 'development' ? require('./LexicalErrorBoundary.dev.js') : require('./LexicalErrorBoundary.prod.js')\nmodule.exports = LexicalErrorBoundary;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\");function m(b,c){m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(g,a){g.__proto__=a;return g};return m(b,c)}function n(b,c){b.prototype=Object.create(c.prototype);b.prototype.constructor=b;m(b,c)}function r(b,c){void 0===b&&(b=[]);void 0===c&&(c=[]);return b.length!==c.length||b.some(function(g,a){return!Object.is(g,c[a])})}\nvar t={error:null},u=function(b){function c(){for(var a,d=arguments.length,f=Array(d),e=0;e<d;e++)f[e]=arguments[e];a=b.call.apply(b,[this].concat(f))||this;a.state=t;a.resetErrorBoundary=function(){for(var k,p=arguments.length,q=Array(p),l=0;l<p;l++)q[l]=arguments[l];null==a.props.onReset?void 0:(k=a.props).onReset.apply(k,q);a.reset()};return a}n(c,b);c.getDerivedStateFromError=function(a){return{error:a}};var g=c.prototype;g.reset=function(){this.setState(t)};g.componentDidCatch=function(a,d){var f,\ne;null==(f=(e=this.props).onError)?void 0:f.call(e,a,d)};g.componentDidUpdate=function(a,d){var f=this.props.resetKeys;if(null!==this.state.error&&null!==d.error&&r(a.resetKeys,f)){var e,k;null==(e=(k=this.props).onResetKeysChange)?void 0:e.call(k,a.resetKeys,f);this.reset()}};g.render=function(){var a=this.state.error,d=this.props,f=d.fallbackRender,e=d.FallbackComponent;d=d.fallback;if(null!==a){a={error:a,resetErrorBoundary:this.resetErrorBoundary};if(h.isValidElement(d))return d;if(\"function\"===\ntypeof f)return f(a);if(e)return h.createElement(e,a);throw Error(\"react-error-boundary requires either a fallback, fallbackRender, or FallbackComponent prop\");}return this.props.children};return c}(h.Component);module.exports=function({children:b,onError:c}){return h.createElement(u,{fallback:h.createElement(\"div\",{style:{border:\"1px solid #f00\",color:\"#f00\",padding:\"8px\"}},\"An error was thrown.\"),onError:c},b)}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalHistoryPlugin = process.env.NODE_ENV === 'development' ? require('./LexicalHistoryPlugin.dev.js') : require('./LexicalHistoryPlugin.prod.js')\nmodule.exports = LexicalHistoryPlugin;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var c=require(\"@lexical/react/LexicalComposerContext\"),history=require(\"@lexical/history\"),f=require(\"react\");function g(a,b,d=1E3){let e=f.useMemo(()=>b||history.createEmptyHistoryState(),[b]);f.useEffect(()=>history.registerHistory(a,e,d),[d,a,e])}exports.createEmptyHistoryState=history.createEmptyHistoryState;exports.HistoryPlugin=function({externalHistoryState:a}){let [b]=c.useLexicalComposerContext();g(b,a);return null}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalLinkPlugin = process.env.NODE_ENV === 'development' ? require('./LexicalLinkPlugin.dev.js') : require('./LexicalLinkPlugin.prod.js')\nmodule.exports = LexicalLinkPlugin;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=require(\"@lexical/link\"),c=require(\"@lexical/react/LexicalComposerContext\"),k=require(\"@lexical/utils\"),l=require(\"lexical\"),m=require(\"react\");\nexports.LinkPlugin=function({validateUrl:d}){let [e]=c.useLexicalComposerContext();m.useEffect(()=>{if(!e.hasNodes([b.LinkNode]))throw Error(\"LinkPlugin: LinkNode not registered on editor\");return k.mergeRegister(e.registerCommand(b.TOGGLE_LINK_COMMAND,a=>{if(null===a)return b.toggleLink(a),!0;if(\"string\"===typeof a)return void 0===d||d(a)?(b.toggleLink(a),!0):!1;let {url:f,target:g,rel:h,title:n}=a;b.toggleLink(f,{rel:h,target:g,title:n});return!0},l.COMMAND_PRIORITY_LOW),void 0!==d?e.registerCommand(l.PASTE_COMMAND,\na=>{let f=l.$getSelection();if(!l.$isRangeSelection(f)||f.isCollapsed()||!(a instanceof ClipboardEvent)||null==a.clipboardData)return!1;let g=a.clipboardData.getData(\"text\");return d(g)?f.getNodes().some(h=>l.$isElementNode(h))?!1:(e.dispatchCommand(b.TOGGLE_LINK_COMMAND,g),a.preventDefault(),!0):!1},l.COMMAND_PRIORITY_LOW):()=>{})},[e,d]);return null}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalListPlugin = process.env.NODE_ENV === 'development' ? require('./LexicalListPlugin.dev.js') : require('./LexicalListPlugin.prod.js')\nmodule.exports = LexicalListPlugin;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=require(\"@lexical/list\"),c=require(\"@lexical/react/LexicalComposerContext\"),d=require(\"react\"),e=require(\"@lexical/utils\"),f=require(\"lexical\");\nfunction g(a){d.useEffect(()=>e.mergeRegister(a.registerCommand(b.INSERT_ORDERED_LIST_COMMAND,()=>{b.insertList(a,\"number\");return!0},f.COMMAND_PRIORITY_LOW),a.registerCommand(b.INSERT_UNORDERED_LIST_COMMAND,()=>{b.insertList(a,\"bullet\");return!0},f.COMMAND_PRIORITY_LOW),a.registerCommand(b.REMOVE_LIST_COMMAND,()=>{b.removeList(a);return!0},f.COMMAND_PRIORITY_LOW),a.registerCommand(f.INSERT_PARAGRAPH_COMMAND,()=>b.$handleListInsertParagraph()?!0:!1,f.COMMAND_PRIORITY_LOW)),[a])}\nexports.ListPlugin=function(){let [a]=c.useLexicalComposerContext();d.useEffect(()=>{if(!a.hasNodes([b.ListNode,b.ListItemNode]))throw Error(\"ListPlugin: ListNode and/or ListItemNode not registered on editor\");},[a]);g(a);return null}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalOnChangePlugin = process.env.NODE_ENV === 'development' ? require('./LexicalOnChangePlugin.dev.js') : require('./LexicalOnChangePlugin.prod.js')\nmodule.exports = LexicalOnChangePlugin;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var c=require(\"@lexical/react/LexicalComposerContext\"),g=require(\"react\"),h=\"undefined\"!==typeof window&&\"undefined\"!==typeof window.document&&\"undefined\"!==typeof window.document.createElement?g.useLayoutEffect:g.useEffect;\nexports.OnChangePlugin=function({ignoreHistoryMergeTagChange:d=!0,ignoreSelectionChange:e=!1,onChange:a}){let [b]=c.useLexicalComposerContext();h(()=>{if(a)return b.registerUpdateListener(({editorState:k,dirtyElements:l,dirtyLeaves:m,prevEditorState:n,tags:f})=>{e&&0===l.size&&0===m.size||d&&f.has(\"history-merge\")||n.isEmpty()||a(k,b,f)})},[b,d,e,a]);return null}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalRichTextPlugin = process.env.NODE_ENV === 'development' ? require('./LexicalRichTextPlugin.dev.js') : require('./LexicalRichTextPlugin.prod.js')\nmodule.exports = LexicalRichTextPlugin;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=require(\"@lexical/react/LexicalComposerContext\"),g=require(\"@lexical/react/useLexicalEditable\"),l=require(\"react\"),m=require(\"@lexical/text\"),n=require(\"@lexical/utils\"),p=require(\"react-dom\"),t=require(\"@lexical/dragon\"),u=require(\"@lexical/rich-text\"),v=\"undefined\"!==typeof window&&\"undefined\"!==typeof window.document&&\"undefined\"!==typeof window.document.createElement?l.useLayoutEffect:l.useEffect;\nfunction w(a){return a.getEditorState().read(m.$canShowPlaceholderCurry(a.isComposing()))}function x(a){let [d,c]=l.useState(()=>w(a));v(()=>{function e(){let f=w(a);c(f)}e();return n.mergeRegister(a.registerUpdateListener(()=>{e()}),a.registerEditableListener(()=>{e()}))},[a]);return d}\nfunction y(a,d){let [c,e]=l.useState(()=>a.getDecorators());v(()=>a.registerDecoratorListener(f=>{p.flushSync(()=>{e(f)})}),[a]);l.useEffect(()=>{e(a.getDecorators())},[a]);return l.useMemo(()=>{let f=[],q=Object.keys(c);for(let h=0;h<q.length;h++){let k=q[h],A=l.createElement(d,{onError:z=>a._onError(z)},l.createElement(l.Suspense,{fallback:null},c[k])),r=a.getElementByKey(k);null!==r&&f.push(p.createPortal(A,r,k))}return f},[d,c,a])}\nfunction B(a){v(()=>n.mergeRegister(u.registerRichText(a),t.registerDragonSupport(a)),[a])}function C({content:a}){var [d]=b.useLexicalComposerContext();d=x(d);let c=g();return d?\"function\"===typeof a?a(c):a:null}exports.RichTextPlugin=function({contentEditable:a,placeholder:d,ErrorBoundary:c}){let [e]=b.useLexicalComposerContext();c=y(e,c);B(e);return l.createElement(l.Fragment,null,a,l.createElement(C,{content:d}),c)}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst useLexicalEditable = process.env.NODE_ENV === 'development' ? require('./useLexicalEditable.dev.js') : require('./useLexicalEditable.prod.js')\nmodule.exports = useLexicalEditable;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=require(\"@lexical/react/LexicalComposerContext\"),k=require(\"react\"),l=\"undefined\"!==typeof window&&\"undefined\"!==typeof window.document&&\"undefined\"!==typeof window.document.createElement?k.useLayoutEffect:k.useEffect;\nfunction m(a){let [c]=b.useLexicalComposerContext(),e=k.useMemo(()=>a(c),[c,a]),d=k.useRef(e.initialValueFn()),[n,g]=k.useState(d.current);l(()=>{let {initialValueFn:p,subscribe:q}=e,f=p();d.current!==f&&(d.current=f,g(f));return q(h=>{d.current=h;g(h)})},[e,a]);return n}function r(a){return{initialValueFn:()=>a.isEditable(),subscribe:c=>a.registerEditableListener(c)}}module.exports=function(){return m(r)}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalRichText = process.env.NODE_ENV === 'development' ? require('./LexicalRichText.dev.js') : require('./LexicalRichText.prod.js')\nmodule.exports = LexicalRichText;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var c=require(\"@lexical/clipboard\"),g=require(\"@lexical/selection\"),h=require(\"@lexical/utils\"),k=require(\"lexical\");function l(b,a){return\"undefined\"!==typeof document.caretRangeFromPoint?(b=document.caretRangeFromPoint(b,a),null===b?null:{node:b.startContainer,offset:b.startOffset}):\"undefined\"!==document.caretPositionFromPoint?(b=document.caretPositionFromPoint(b,a),null===b?null:{node:b.offsetNode,offset:b.offset}):null}\nlet n=\"undefined\"!==typeof window&&\"undefined\"!==typeof window.document&&\"undefined\"!==typeof window.document.createElement,p=n&&\"documentMode\"in document?document.documentMode:null;n&&/Mac|iPod|iPhone|iPad/.test(navigator.platform);n&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent);let q=n&&\"InputEvent\"in window&&!p?\"getTargetRanges\"in new window.InputEvent(\"input\"):!1,r=n&&/Version\\/[\\d.]+.*Safari/.test(navigator.userAgent),t=n&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream;\nn&&/Android/.test(navigator.userAgent);let u=n&&/^(?=.*Chrome).*/i.test(navigator.userAgent),v=n&&/AppleWebKit\\/[\\d.]+/.test(navigator.userAgent)&&!u,w=k.createCommand(\"DRAG_DROP_PASTE_FILE\");\nclass x extends k.ElementNode{static getType(){return\"quote\"}static clone(b){return new x(b.__key)}constructor(b){super(b)}createDOM(b){let a=document.createElement(\"blockquote\");h.addClassNamesToElement(a,b.theme.quote);return a}updateDOM(){return!1}static importDOM(){return{blockquote:()=>({conversion:y,priority:0})}}exportDOM(b){({element:b}=super.exportDOM(b));if(b&&h.isHTMLElement(b)){this.isEmpty()&&b.append(document.createElement(\"br\"));var a=this.getFormatType();b.style.textAlign=a;if(a=this.getDirection())b.dir=\na}return{element:b}}static importJSON(b){let a=z();a.setFormat(b.format);a.setIndent(b.indent);a.setDirection(b.direction);return a}exportJSON(){return{...super.exportJSON(),type:\"quote\"}}insertNewAfter(b,a){b=k.$createParagraphNode();let d=this.getDirection();b.setDirection(d);this.insertAfter(b,a);return b}collapseAtStart(){let b=k.$createParagraphNode();this.getChildren().forEach(a=>b.append(a));this.replace(b);return!0}}function z(){return k.$applyNodeReplacement(new x)}\nclass B extends k.ElementNode{static getType(){return\"heading\"}static clone(b){return new B(b.__tag,b.__key)}constructor(b,a){super(a);this.__tag=b}getTag(){return this.__tag}createDOM(b){let a=this.__tag,d=document.createElement(a);b=b.theme.heading;void 0!==b&&h.addClassNamesToElement(d,b[a]);return d}updateDOM(){return!1}static importDOM(){return{h1:()=>({conversion:C,priority:0}),h2:()=>({conversion:C,priority:0}),h3:()=>({conversion:C,priority:0}),h4:()=>({conversion:C,priority:0}),h5:()=>({conversion:C,\npriority:0}),h6:()=>({conversion:C,priority:0}),p:b=>{b=b.firstChild;return null!==b&&D(b)?{conversion:()=>({node:null}),priority:3}:null},span:b=>D(b)?{conversion:()=>({node:E(\"h1\")}),priority:3}:null}}exportDOM(b){({element:b}=super.exportDOM(b));if(b&&h.isHTMLElement(b)){this.isEmpty()&&b.append(document.createElement(\"br\"));var a=this.getFormatType();b.style.textAlign=a;if(a=this.getDirection())b.dir=a}return{element:b}}static importJSON(b){let a=E(b.tag);a.setFormat(b.format);a.setIndent(b.indent);\na.setDirection(b.direction);return a}exportJSON(){return{...super.exportJSON(),tag:this.getTag(),type:\"heading\",version:1}}insertNewAfter(b,a=!0){let d=b?b.anchor.offset:0,e=d!==this.getTextContentSize()&&b?E(this.getTag()):k.$createParagraphNode(),f=this.getDirection();e.setDirection(f);this.insertAfter(e,a);0===d&&!this.isEmpty()&&b&&(b=k.$createParagraphNode(),b.select(),this.replace(b,!0));return e}collapseAtStart(){let b=this.isEmpty()?k.$createParagraphNode():E(this.getTag());this.getChildren().forEach(a=>\nb.append(a));this.replace(b);return!0}extractWithChild(){return!0}}function D(b){return\"span\"===b.nodeName.toLowerCase()?\"26pt\"===b.style.fontSize:!1}function C(b){let a=b.nodeName.toLowerCase(),d=null;if(\"h1\"===a||\"h2\"===a||\"h3\"===a||\"h4\"===a||\"h5\"===a||\"h6\"===a)d=E(a),null!==b.style&&d.setFormat(b.style.textAlign);return{node:d}}function y(b){let a=z();null!==b.style&&a.setFormat(b.style.textAlign);return{node:a}}function E(b){return k.$applyNodeReplacement(new B(b))}\nfunction F(b,a){b.preventDefault();a.update(()=>{let d=k.$getSelection(),e=b instanceof InputEvent||b instanceof KeyboardEvent?null:b.clipboardData;null!=e&&null!==d&&c.$insertDataTransferForRichText(e,d,a)},{tag:\"paste\"})}async function G(b,a){await c.copyToClipboard(a,h.objectKlassEquals(b,ClipboardEvent)?b:null);a.update(()=>{let d=k.$getSelection();k.$isRangeSelection(d)?d.removeText():k.$isNodeSelection(d)&&d.getNodes().forEach(e=>e.remove())})}\nfunction H(b){let a=null;b instanceof DragEvent?a=b.dataTransfer:b instanceof ClipboardEvent&&(a=b.clipboardData);if(null===a)return[!1,[],!1];var d=a.types;b=d.includes(\"Files\");d=d.includes(\"text/html\")||d.includes(\"text/plain\");return[b,Array.from(a.files),d]}\nfunction I(b){var a=k.$getSelection();if(!k.$isRangeSelection(a))return!1;let d=new Set;a=a.getNodes();for(let m=0;m<a.length;m++){var e=a[m],f=e.getKey();d.has(f)||(e=h.$getNearestBlockElementAncestorOrThrow(e),f=e.getKey(),e.canIndent()&&!d.has(f)&&(d.add(f),b(e)))}return 0<d.size}function J(b){b=k.$getNearestNodeFromDOMNode(b);return k.$isDecoratorNode(b)}exports.$createHeadingNode=E;exports.$createQuoteNode=z;exports.$isHeadingNode=function(b){return b instanceof B};\nexports.$isQuoteNode=function(b){return b instanceof x};exports.DRAG_DROP_PASTE=w;exports.HeadingNode=B;exports.QuoteNode=x;exports.eventFiles=H;\nexports.registerRichText=function(b){return h.mergeRegister(b.registerCommand(k.CLICK_COMMAND,()=>{const a=k.$getSelection();return k.$isNodeSelection(a)?(a.clear(),!0):!1},0),b.registerCommand(k.DELETE_CHARACTER_COMMAND,a=>{const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;d.deleteCharacter(a);return!0},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.DELETE_WORD_COMMAND,a=>{const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;d.deleteWord(a);return!0},k.COMMAND_PRIORITY_EDITOR),\nb.registerCommand(k.DELETE_LINE_COMMAND,a=>{const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;d.deleteLine(a);return!0},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.CONTROLLED_TEXT_INSERTION_COMMAND,a=>{const d=k.$getSelection();if(\"string\"===typeof a)null!==d&&d.insertText(a);else{if(null===d)return!1;const e=a.dataTransfer;null!=e?c.$insertDataTransferForRichText(e,d,b):k.$isRangeSelection(d)&&(a=a.data)&&d.insertText(a)}return!0},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.REMOVE_TEXT_COMMAND,\n()=>{const a=k.$getSelection();if(!k.$isRangeSelection(a))return!1;a.removeText();return!0},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.FORMAT_TEXT_COMMAND,a=>{const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;d.formatText(a);return!0},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.FORMAT_ELEMENT_COMMAND,a=>{var d=k.$getSelection();if(!k.$isRangeSelection(d)&&!k.$isNodeSelection(d))return!1;d=d.getNodes();for(const e of d)d=h.$findMatchingParent(e,f=>k.$isElementNode(f)&&!f.isInline()),\nnull!==d&&d.setFormat(a);return!0},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.INSERT_LINE_BREAK_COMMAND,a=>{const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;d.insertLineBreak(a);return!0},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.INSERT_PARAGRAPH_COMMAND,()=>{const a=k.$getSelection();if(!k.$isRangeSelection(a))return!1;a.insertParagraph();return!0},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.INSERT_TAB_COMMAND,()=>{k.$insertNodes([k.$createTabNode()]);return!0},k.COMMAND_PRIORITY_EDITOR),\nb.registerCommand(k.INDENT_CONTENT_COMMAND,()=>I(a=>{const d=a.getIndent();a.setIndent(d+1)}),k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.OUTDENT_CONTENT_COMMAND,()=>I(a=>{const d=a.getIndent();0<d&&a.setIndent(d-1)}),k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.KEY_ARROW_UP_COMMAND,a=>{var d=k.$getSelection();if(k.$isNodeSelection(d)&&!J(a.target)){if(a=d.getNodes(),0<a.length)return a[0].selectPrevious(),!0}else if(k.$isRangeSelection(d)&&(d=k.$getAdjacentNode(d.focus,!0),!a.shiftKey&&k.$isDecoratorNode(d)&&\n!d.isIsolated()&&!d.isInline()))return d.selectPrevious(),a.preventDefault(),!0;return!1},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.KEY_ARROW_DOWN_COMMAND,a=>{var d=k.$getSelection();if(k.$isNodeSelection(d)){if(a=d.getNodes(),0<a.length)return a[0].selectNext(0,0),!0}else if(k.$isRangeSelection(d)){let e=d.focus;if(\"root\"===e.key&&e.offset===k.$getRoot().getChildrenSize())return a.preventDefault(),!0;d=k.$getAdjacentNode(d.focus,!1);if(!a.shiftKey&&k.$isDecoratorNode(d)&&!d.isIsolated()&&!d.isInline())return d.selectNext(),\na.preventDefault(),!0}return!1},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.KEY_ARROW_LEFT_COMMAND,a=>{const d=k.$getSelection();if(k.$isNodeSelection(d)){var e=d.getNodes();if(0<e.length)return a.preventDefault(),e[0].selectPrevious(),!0}return k.$isRangeSelection(d)?g.$shouldOverrideDefaultCharacterSelection(d,!0)?(e=a.shiftKey,a.preventDefault(),g.$moveCharacter(d,e,!0),!0):!1:!1},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.KEY_ARROW_RIGHT_COMMAND,a=>{const d=k.$getSelection();if(k.$isNodeSelection(d)&&\n!J(a.target)){var e=d.getNodes();if(0<e.length)return a.preventDefault(),e[0].selectNext(0,0),!0}if(!k.$isRangeSelection(d))return!1;e=a.shiftKey;return g.$shouldOverrideDefaultCharacterSelection(d,!1)?(a.preventDefault(),g.$moveCharacter(d,e,!1),!0):!1},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.KEY_BACKSPACE_COMMAND,a=>{if(J(a.target))return!1;const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;a.preventDefault();({anchor:a}=d);const e=a.getNode();return d.isCollapsed()&&0===a.offset&&\n!k.$isRootNode(e)&&0<h.$getNearestBlockElementAncestorOrThrow(e).getIndent()?b.dispatchCommand(k.OUTDENT_CONTENT_COMMAND,void 0):b.dispatchCommand(k.DELETE_CHARACTER_COMMAND,!0)},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.KEY_DELETE_COMMAND,a=>{if(J(a.target))return!1;const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;a.preventDefault();return b.dispatchCommand(k.DELETE_CHARACTER_COMMAND,!1)},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.KEY_ENTER_COMMAND,a=>{const d=k.$getSelection();\nif(!k.$isRangeSelection(d))return!1;if(null!==a){if((t||r||v)&&q)return!1;a.preventDefault();if(a.shiftKey)return b.dispatchCommand(k.INSERT_LINE_BREAK_COMMAND,!1)}return b.dispatchCommand(k.INSERT_PARAGRAPH_COMMAND,void 0)},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.KEY_ESCAPE_COMMAND,()=>{const a=k.$getSelection();if(!k.$isRangeSelection(a))return!1;b.blur();return!0},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.DROP_COMMAND,a=>{const [,d]=H(a);if(0<d.length){var e=l(a.clientX,a.clientY);\nif(null!==e){const {offset:m,node:K}=e;var f=k.$getNearestNodeFromDOMNode(K);if(null!==f){e=k.$createRangeSelection();if(k.$isTextNode(f))e.anchor.set(f.getKey(),m,\"text\"),e.focus.set(f.getKey(),m,\"text\");else{const A=f.getParentOrThrow().getKey();f=f.getIndexWithinParent()+1;e.anchor.set(A,f,\"element\");e.focus.set(A,f,\"element\")}e=k.$normalizeSelection__EXPERIMENTAL(e);k.$setSelection(e)}b.dispatchCommand(w,d)}a.preventDefault();return!0}a=k.$getSelection();return k.$isRangeSelection(a)?!0:!1},k.COMMAND_PRIORITY_EDITOR),\nb.registerCommand(k.DRAGSTART_COMMAND,a=>{[a]=H(a);const d=k.$getSelection();return a&&!k.$isRangeSelection(d)?!1:!0},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.DRAGOVER_COMMAND,a=>{var [d]=H(a);const e=k.$getSelection();if(d&&!k.$isRangeSelection(e))return!1;d=l(a.clientX,a.clientY);null!==d&&(d=k.$getNearestNodeFromDOMNode(d.node),k.$isDecoratorNode(d)&&a.preventDefault());return!0},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.SELECT_ALL_COMMAND,()=>{k.$selectAll();return!0},k.COMMAND_PRIORITY_EDITOR),\nb.registerCommand(k.COPY_COMMAND,a=>{c.copyToClipboard(b,h.objectKlassEquals(a,ClipboardEvent)?a:null);return!0},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.CUT_COMMAND,a=>{G(a,b);return!0},k.COMMAND_PRIORITY_EDITOR),b.registerCommand(k.PASTE_COMMAND,a=>{const [,d,e]=H(a);return 0<d.length&&!e?(b.dispatchCommand(w,d),!0):k.isSelectionCapturedInDecoratorInput(a.target)?!1:null!==k.$getSelection()?(F(a,b),!0):!1},k.COMMAND_PRIORITY_EDITOR))}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\nconst LexicalText = process.env.NODE_ENV === 'development' ? require('./LexicalText.dev.js') : require('./LexicalText.prod.js')\nmodule.exports = LexicalText;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var g=require(\"lexical\");function r(c,h=!0){if(c)return!1;c=t();h&&(c=c.trim());return\"\"===c}function t(){return g.$getRoot().getTextContent()}function u(c){if(!r(c,!1))return!1;c=g.$getRoot().getChildren();let h=c.length;if(1<h)return!1;for(let e=0;e<h;e++){var b=c[e];if(g.$isDecoratorNode(b))return!1;if(g.$isElementNode(b)){if(!g.$isParagraphNode(b)||0!==b.__indent)return!1;b=b.getChildren();let n=b.length;for(let q=0;q<n;q++)if(!g.$isTextNode(b[e]))return!1}}return!0}\nexports.$canShowPlaceholder=u;exports.$canShowPlaceholderCurry=function(c){return()=>u(c)};exports.$findTextIntersectionFromCharacters=function(c,h){var b=c.getFirstChild();c=0;a:for(;null!==b;){if(g.$isElementNode(b)){var e=b.getFirstChild();if(null!==e){b=e;continue}}else if(g.$isTextNode(b)){e=b.getTextContentSize();if(c+e>h)return{node:b,offset:h-c};c+=e}e=b.getNextSibling();if(null!==e)b=e;else{for(b=b.getParent();null!==b;){e=b.getNextSibling();if(null!==e){b=e;continue a}b=b.getParent()}break}}return null};\nexports.$isRootTextContentEmpty=r;exports.$isRootTextContentEmptyCurry=function(c,h){return()=>r(c,h)};exports.$rootTextContent=t;\nexports.registerLexicalTextEntity=function(c,h,b,e){let n=a=>{const d=g.$createTextNode(a.getTextContent());d.setFormat(a.getFormat());a.replace(d)},q=c.registerNodeTransform(g.TextNode,a=>{if(a.isSimpleText()){var d=a.getPreviousSibling(),l=a.getTextContent(),m=a;if(g.$isTextNode(d)){var k=d.getTextContent(),f=h(k+l);if(d instanceof b){if(null===f||0!==d.getLatest().__mode){n(d);return}f=f.end-k.length;if(0<f){m=l.slice(0,f);m=k+m;d.select();d.setTextContent(m);f===l.length?a.remove():(d=l.slice(f),\na.setTextContent(d));return}}else if(null===f||f.start<k.length)return}for(;;){a=h(l);l=f=null===a?\"\":l.slice(a.end);if(\"\"===f){if(k=m.getNextSibling(),g.$isTextNode(k))if(f=m.getTextContent()+k.getTextContent(),f=h(f),null===f){k instanceof b?n(k):k.markDirty();break}else if(0!==f.start)break}else if(k=h(f),null!==k&&0===k.start)break;if(null===a)break;if(0===a.start&&g.$isTextNode(d)&&d.isTextEntity())continue;let p;0===a.start?[p,m]=m.splitText(a.end):[,p,m]=m.splitText(a.start,a.end);a=e(p);a.setFormat(p.getFormat());\np.replace(a);if(null==m)break}}});c=c.registerNodeTransform(b,a=>{var d=a.getTextContent();const l=h(d);null===l||0!==l.start?n(a):d.length>l.end?a.splitText(l.end):(d=a.getPreviousSibling(),g.$isTextNode(d)&&d.isTextEntity()&&(n(d),n(a)),d=a.getNextSibling(),g.$isTextNode(d)&&d.isTextEntity()&&(n(d),a instanceof b&&n(a)))});return[q,c]}\n","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8\"\n}, \"0\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n}, \"1\")], 'AccessTime');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z\"\n}), 'Add');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z\"\n}), 'AddOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 6c3.87 0 7 3.13 7 7 0 .84-.16 1.65-.43 2.4l1.52 1.52c.58-1.19.91-2.51.91-3.92 0-4.97-4.03-9-9-9-1.41 0-2.73.33-3.92.91L9.6 6.43C10.35 6.16 11.16 6 12 6m10-.28-4.6-3.86-1.29 1.53 4.6 3.86zM2.92 2.29 1.65 3.57 2.98 4.9l-1.11.93 1.42 1.42 1.11-.94.8.8C3.83 8.69 3 10.75 3 13c0 4.97 4.02 9 9 9 2.25 0 4.31-.83 5.89-2.2l2.2 2.2 1.27-1.27L3.89 3.27zm13.55 16.1C15.26 19.39 13.7 20 12 20c-3.87 0-7-3.13-7-7 0-1.7.61-3.26 1.61-4.47zM8.02 3.28 6.6 1.86l-.86.71 1.42 1.42z\"\n}), 'AlarmOff');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m22 5.72-4.6-3.86-1.29 1.53 4.6 3.86zM7.88 3.39 6.6 1.86 2 5.71l1.29 1.53zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9m0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7m-1.46-5.47L8.41 12.4l-1.06 1.06 3.18 3.18 6-6-1.06-1.06z\"\n}), 'AlarmOn');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M17 11V3H7v4H3v14h8v-4h2v4h8V11zM7 19H5v-2h2zm0-4H5v-2h2zm0-4H5V9h2zm4 4H9v-2h2zm0-4H9V9h2zm0-4H9V5h2zm4 8h-2v-2h2zm0-4h-2V9h2zm0-4h-2V5h2zm4 12h-2v-2h2zm0-4h-2v-2h2z\"\n}), 'Apartment');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z\"\n}), 'ArrowBack');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 10V8h-2v4H8l4 4 4-4z\"\n}), 'ArrowCircleDown');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M2 12c0 5.52 4.48 10 10 10s10-4.48 10-10S17.52 2 12 2 2 6.48 2 12m10-1h4v2h-4v3l-4-4 4-4z\"\n}), 'ArrowCircleLeft');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12s4.48 10 10 10 10-4.48 10-10m-10 1H8v-2h4V8l4 4-4 4z\"\n}), 'ArrowCircleRight');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0 2c5.52 0 10-4.48 10-10S17.52 2 12 2 2 6.48 2 12s4.48 10 10 10m-1-10v4h2v-4h3l-4-4-4 4z\"\n}), 'ArrowCircleUp');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8z\"\n}), 'ArrowDownward');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z\"\n}), 'ArrowUpward');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-5 14H7v-2h7zm3-4H7v-2h10zm0-4H7V7h10z\"\n}), 'Article');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M14 13v4h-4v-4H7l5-5 5 5z\"\n}), 'Backup');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M4 9h4v11H4zm12 4h4v7h-4zm-6-9h4v16h-4z\"\n}), 'BarChart');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2\"\n}), 'Bookmark');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2m0 15-5-2.18L7 18V5h10z\"\n}), 'BookmarkBorder');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m19 8-4 4h3c0 3.31-2.69 6-6 6-1.01 0-1.97-.25-2.8-.7l-1.46 1.46C8.97 19.54 10.43 20 12 20c4.42 0 8-3.58 8-8h3zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46C15.03 4.46 13.57 4 12 4c-4.42 0-8 3.58-8 8H1l4 4 4-4z\"\n}), 'Cached');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2m0 16H5V10h14zM9 14H7v-2h2zm4 0h-2v-2h2zm4 0h-2v-2h2zm-8 4H7v-2h2zm4 0h-2v-2h2zm4 0h-2v-2h2z\"\n}), 'CalendarMonth');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"3.2\"\n}, \"0\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"M9 2 7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5\"\n}, \"1\")], 'CameraAlt');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M18 11v2h4v-2zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61M20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4M4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34\"\n}), 'Campaign');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m3.59-13L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41z\"\n}), 'CancelOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m.06 17v-2.01H12c-1.28 0-2.56-.49-3.54-1.46-1.71-1.71-1.92-4.35-.64-6.29l1.1 1.1c-.71 1.33-.53 3.01.59 4.13.7.7 1.62 1.03 2.54 1.01v-2.14l2.83 2.83zm4.11-4.24-1.1-1.1c.71-1.33.53-3.01-.59-4.13C13.79 8.84 12.9 8.5 12 8.5h-.06v2.15L9.11 7.83 11.94 5v2.02c1.3-.02 2.61.45 3.6 1.45 1.7 1.7 1.91 4.35.63 6.29\"\n}), 'ChangeCircle');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m0 14H6l-2 2V4h16z\"\n}), 'ChatBubbleOutline');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2M9.29 16.29 5.7 12.7a.996.996 0 0 1 0-1.41c.39-.39 1.02-.39 1.41 0L10 14.17l6.88-6.88c.39-.39 1.02-.39 1.41 0s.39 1.02 0 1.41l-7.59 7.59c-.38.39-1.02.39-1.41 0\"\n}), 'CheckCircleRounded');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Clear');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M5 13h14v-2H5zm-2 4h14v-2H3zM7 7v2h14V7z\"\n}), 'ClearAll');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M18.3 5.71a.996.996 0 0 0-1.41 0L12 10.59 7.11 5.7a.996.996 0 0 0-1.41 0c-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41s1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0s.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4\"\n}), 'CloseRounded');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M17 13l-5 5-5-5h3V9h4v4z\"\n}), 'CloudDownload');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M14 13v4h-4v-4H7l5-5 5 5z\"\n}), 'CloudUpload');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6z\"\n}), 'Code');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"path\", {\n d: \"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4z\"\n}, \"0\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m0 10-2.5-1.5L15 12V4h5z\"\n}, \"1\")], 'CollectionsBookmark');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M22 3H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2M9 8c1.65 0 3 1.35 3 3s-1.35 3-3 3-3-1.35-3-3 1.35-3 3-3M2.08 19c1.38-2.39 3.96-4 6.92-4s5.54 1.61 6.92 4zm18.52-8.5c-.21.36-.67.48-1.02.27l-.82-.48v.95c0 .41-.34.75-.75.75s-.75-.34-.75-.75v-.94l-.82.48c-.36.21-.82.08-1.02-.27-.21-.36-.08-.82.27-1.02L16.5 9l-.82-.48c-.36-.21-.48-.67-.27-1.02.21-.36.67-.48 1.02-.27l.82.48v-.96c0-.41.34-.75.75-.75s.75.34.75.75v.95l.82-.48c.36-.21.82-.08 1.02.27.21.36.08.82-.27 1.02L19.5 9l.82.48c.36.2.49.66.28 1.02\"\n}), 'ContactEmergencyRounded');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20 0H4v2h16zM4 24h16v-2H4zM20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2m-8 2.75c1.24 0 2.25 1.01 2.25 2.25s-1.01 2.25-2.25 2.25S9.75 10.24 9.75 9 10.76 6.75 12 6.75M17 17H7v-1.5c0-1.67 3.33-2.5 5-2.5s5 .83 5 2.5z\"\n}), 'Contacts');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zm2.46-7.12 1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14zM15.5 4l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'DeleteForever');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8zm7.5-5-1-1h-5l-1 1H5v2h14V4z\"\n}), 'DeleteOutline');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M16 9v10H8V9zm-1.5-6h-5l-1 1H5v2h14V4h-3.5zM18 7H6v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2z\"\n}), 'DeleteOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.5 5H11l5 7-5 7h4.5l5-7z\"\n}, \"0\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"M8.5 5H4l5 7-5 7h4.5l5-7z\"\n}, \"1\")], 'DoubleArrow');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M5 20h14v-2H5zM19 9h-4V3H9v6H5l7 7z\"\n}), 'Download');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 9h-4V3H9v6H5l7 7zm-8 2V5h2v6h1.17L12 13.17 9.83 11zm-6 7h14v2H5z\"\n}), 'DownloadOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M18.41 5.8 17.2 4.59c-.78-.78-2.05-.78-2.83 0l-2.68 2.68L3 15.96V20h4.04l8.74-8.74 2.63-2.63c.79-.78.79-2.05 0-2.83M6.21 18H5v-1.21l8.66-8.66 1.21 1.21zM11 20l4-4h6v4z\"\n}), 'DriveFileRenameOutline');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z\"\n}), 'Edit');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m14.06 9.02.92.92L5.92 19H5v-.92zM17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29m-3.6 3.19L3 17.25V21h3.75L17.81 9.94z\"\n}), 'EditOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8\"\n}), 'ErrorOutline');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"\n}), 'ExpandLess');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2m13 2h-2.5A3.5 3.5 0 0 0 12 8.5V11h-2v3h2v7h3v-7h3v-3h-3V9a1 1 0 0 1 1-1h2V5z\"\n}), 'Facebook');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M16 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8zM7 7h5v2H7zm10 10H7v-2h10zm0-4H7v-2h10zm-2-4V5l4 4z\"\n}), 'Feed');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 9h-4V3H9v6H5l7 7zM5 18v2h14v-2z\"\n}), 'FileDownload');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39c.51-.66.04-1.61-.79-1.61H5.04c-.83 0-1.3.95-.79 1.61\"\n}), 'FilterAlt');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19.79 5.61C20.3 4.95 19.83 4 19 4H6.83l7.97 7.97zM2.81 2.81 1.39 4.22 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.17l5.78 5.78 1.41-1.41z\"\n}), 'FilterAltOff');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M10 18h4v-2h-4zM3 6v2h18V6zm3 7h12v-2H6z\"\n}), 'FilterList');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M14.4 6 14 4H5v17h2v-7h5.6l.4 2h7V6z\"\n}), 'Flag');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5s-3 1.34-3 3 1.34 3 3 3m-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5 5 6.34 5 8s1.34 3 3 3m0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5m8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5\"\n}), 'Group');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M10.5 13h-1c-.83 0-1.5-.67-1.5-1.5S8.67 10 9.5 10h1V9c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v1h1c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-1v1c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5zm.8-10.74-6 2.25C4.52 4.81 4 5.55 4 6.39v4.7c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91v-4.7c0-.83-.52-1.58-1.3-1.87l-6-2.25c-.45-.18-.95-.18-1.4-.01\"\n}), 'HealthAndSafetyRounded');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 17h-2v-2h2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25\"\n}), 'Help');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M11 18h2v-2h-2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4\"\n}), 'HelpOutlineOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M14.59 8 12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8\"\n}), 'HighlightOff');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m15.1 19.37 1 1.74c-.96.44-2.01.73-3.1.84v-2.02c.74-.09 1.44-.28 2.1-.56M4.07 13H2.05c.11 1.1.4 2.14.84 3.1l1.74-1c-.28-.66-.47-1.36-.56-2.1M15.1 4.63l1-1.74c-.96-.44-2-.73-3.1-.84v2.02c.74.09 1.44.28 2.1.56M19.93 11h2.02c-.11-1.1-.4-2.14-.84-3.1l-1.74 1c.28.66.47 1.36.56 2.1M8.9 19.37l-1 1.74c.96.44 2.01.73 3.1.84v-2.02c-.74-.09-1.44-.28-2.1-.56M11 4.07V2.05c-1.1.11-2.14.4-3.1.84l1 1.74c.66-.28 1.36-.47 2.1-.56m7.36 3.1 1.74-1.01c-.63-.87-1.4-1.64-2.27-2.27l-1.01 1.74c.59.45 1.1.96 1.54 1.54M4.63 8.9l-1.74-1c-.44.96-.73 2-.84 3.1h2.02c.09-.74.28-1.44.56-2.1m15.3 4.1c-.09.74-.28 1.44-.56 2.1l1.74 1c.44-.96.73-2.01.84-3.1zm-3.1 5.36 1.01 1.74c.87-.63 1.64-1.4 2.27-2.27l-1.74-1.01c-.45.59-.96 1.1-1.54 1.54M7.17 5.64l-1-1.75c-.88.64-1.64 1.4-2.27 2.28l1.74 1.01c.44-.59.95-1.1 1.53-1.54M5.64 16.83l-1.74 1c.63.87 1.4 1.64 2.27 2.27l1.01-1.74c-.59-.44-1.1-.95-1.54-1.53M13 7h-2v5.41l4.29 4.29 1.41-1.41-3.7-3.7z\"\n}), 'HistoryToggleOff');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-4.86 8.86-3 3.87L9 13.14 6 17h12z\"\n}), 'ImageOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2M8.9 13.98l2.1 2.53 3.1-3.99c.2-.26.6-.26.8.01l3.51 4.68c.25.33.01.8-.4.8H6.02c-.42 0-.65-.48-.39-.81L8.12 14c.19-.26.57-.27.78-.02\"\n}), 'ImageRounded');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M18 13v7H4V6h5.02c.05-.71.22-1.38.48-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5zm-1.5 5h-11l2.75-3.53 1.96 2.36 2.75-3.54zm2.8-9.11c.44-.7.7-1.51.7-2.39C20 4.01 17.99 2 15.5 2S11 4.01 11 6.5s2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21 13.42 22.42 12zM15.5 9C14.12 9 13 7.88 13 6.5S14.12 4 15.5 4 18 5.12 18 6.5 16.88 9 15.5 9\"\n}), 'ImageSearch');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8m3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5m-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11m3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5\"\n}), 'InsertEmoticon');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"path\", {\n d: \"M21 8c-1.45 0-2.26 1.44-1.93 2.51l-3.55 3.56c-.3-.09-.74-.09-1.04 0l-2.55-2.55C12.27 10.45 11.46 9 10 9c-1.45 0-2.27 1.44-1.93 2.52l-4.56 4.55C2.44 15.74 1 16.55 1 18c0 1.1.9 2 2 2 1.45 0 2.26-1.44 1.93-2.51l4.55-4.56c.3.09.74.09 1.04 0l2.55 2.55C12.73 16.55 13.54 18 15 18c1.45 0 2.27-1.44 1.93-2.52l3.56-3.55c1.07.33 2.51-.48 2.51-1.93 0-1.1-.9-2-2-2\"\n}, \"0\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"m15 9 .94-2.07L18 6l-2.06-.93L15 3l-.92 2.07L12 6l2.08.93zM3.5 11 4 9l2-.5L4 8l-.5-2L3 8l-2 .5L3 9z\"\n}, \"1\")], 'Insights');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z\"\n}), 'KeyboardArrowDown');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M21 11H6.83l3.58-3.59L9 6l-6 6 6 6 1.41-1.41L6.83 13H21z\"\n}), 'KeyboardBackspace');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2m6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56M12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96M4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56m2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8M12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96M14.34 14H9.66c-.09-.66-.16-1.32-.16-2s.07-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2m.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2z\"\n}), 'Language');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2m-3-3h6c.55 0 1-.45 1-1s-.45-1-1-1H9c-.55 0-1 .45-1 1s.45 1 1 1m3-17C7.86 2 4.5 5.36 4.5 9.5c0 3.82 2.66 5.86 3.77 6.5h7.46c1.11-.64 3.77-2.68 3.77-6.5C19.5 5.36 16.14 2 12 2\"\n}), 'LightbulbRounded');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5\"\n}), 'Link');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93h2.79M6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z\"\n}), 'LinkedIn');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m21.41 11.58-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58s1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41s-.23-1.06-.59-1.42M5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7\"\n}), 'LocalOffer');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02z\"\n}), 'LocalPhone');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20 8h-3V4H3c-1.1 0-2 .9-2 2v11h2c0 1.66 1.34 3 3 3s3-1.34 3-3h6c0 1.66 1.34 3 3 3s3-1.34 3-3h2v-5zM6 18.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5m13.5-9 1.96 2.5H17V9.5zm-1.5 9c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5\"\n}), 'LocalShipping');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7m0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5\"\n}), 'LocationOn');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1z\"\n}), 'Lock');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m0 12H6V10h12z\"\n}), 'LockOpen');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m21.41 11.58-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58s1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41s-.23-1.06-.59-1.42M5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7m11.77 8.27L13 19.54l-4.27-4.27C8.28 14.81 8 14.19 8 13.5c0-1.38 1.12-2.5 2.5-2.5.69 0 1.32.28 1.77.74l.73.72.73-.73c.45-.45 1.08-.73 1.77-.73 1.38 0 2.5 1.12 2.5 2.5 0 .69-.28 1.32-.73 1.77\"\n}), 'Loyalty');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2m0 4-8 5-8-5V6l8 5 8-5z\"\n}), 'Mail');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2m0 14H4V8l8 5 8-5zm-8-7L4 6h16z\"\n}), 'MailOutline');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M7 9H2V7h5zm0 3H2v2h5zm13.59 7-3.83-3.83c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75L22 17.59zM17 11c0-1.65-1.35-3-3-3s-3 1.35-3 3 1.35 3 3 3 3-1.35 3-3M2 19h10v-2H2z\"\n}), 'ManageSearch');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z\"\n}), 'Menu');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-2 12H6v-2h12zm0-3H6V9h12zm0-3H6V6h12z\"\n}), 'Message');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2\"\n}), 'MoreHoriz');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z\"\n}), 'NavigateBefore');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"\n}), 'NavigateNext');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m22 3-1.67 1.67L18.67 3 17 4.67 15.33 3l-1.66 1.67L12 3l-1.67 1.67L8.67 3 7 4.67 5.33 3 3.67 4.67 2 3v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2zM11 19H4v-6h7zm9 0h-7v-2h7zm0-4h-7v-2h7zm0-4H4V8h16z\"\n}), 'NewspaperOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M3 18h12v-2H3zM3 6v2h18V6zm0 7h18v-2H3z\"\n}), 'Notes');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m20.5 10 .5-2h-4l1-4h-2l-1 4h-4l1-4h-2L9 8H5l-.5 2h4l-1 4h-4L3 16h4l-1 4h2l1-4h4l-1 4h2l1-4h4l.5-2h-4l1-4zm-7 4h-4l1-4h4z\"\n}), 'Numbers');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1.88 9.54L8.92 16.5l-1.41-1.41 4.96-4.96L10.34 8l5.65.01.01 5.65z\"\n}), 'Outbound');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m14 6-1-2H5v17h2v-7h5l1 2h7V6zm4 8h-4l-1-2H7V6h5l1 2h5z\"\n}), 'OutlinedFlag');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.5 9C10.12 9 9 10.12 9 11.5s1.12 2.5 2.5 2.5 2.5-1.12 2.5-2.5S12.88 9 11.5 9M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2m-3.21 14.21-2.91-2.91c-.69.44-1.51.7-2.39.7C9.01 16 7 13.99 7 11.5S9.01 7 11.5 7 16 9.01 16 11.5c0 .88-.26 1.69-.7 2.39l2.91 2.9z\"\n}), 'Pageview');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8\"\n}, \"0\"), /*#__PURE__*/_jsx(\"circle\", {\n cx: \"7\",\n cy: \"12\",\n r: \"1.5\"\n}, \"1\"), /*#__PURE__*/_jsx(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"1.5\"\n}, \"2\"), /*#__PURE__*/_jsx(\"circle\", {\n cx: \"17\",\n cy: \"12\",\n r: \"1.5\"\n}, \"3\")], 'PendingOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5s-3 1.34-3 3 1.34 3 3 3m-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5 5 6.34 5 8s1.34 3 3 3m0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5m8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5\"\n}), 'People');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M16.67 13.13C18.04 14.06 19 15.32 19 17v3h4v-3c0-2.18-3.57-3.47-6.33-3.87M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4c-.47 0-.91.1-1.33.24C14.5 5.27 15 6.58 15 8s-.5 2.73-1.33 3.76c.42.14.86.24 1.33.24m-6 0c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m0-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 7c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4m6 5H3v-.99C3.2 16.29 6.3 15 9 15s5.8 1.29 6 2z\"\n}), 'PeopleAltOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 5.9c1.16 0 2.1.94 2.1 2.1s-.94 2.1-2.1 2.1S9.9 9.16 9.9 8s.94-2.1 2.1-2.1m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4m0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4\"\n}), 'PersonOutlineOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2m-11-4 2.03 2.71L16 11l4 5H8zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6z\"\n}), 'PhotoLibrary');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-8.5 7.5c0 .83-.67 1.5-1.5 1.5H9v2H7.5V7H10c.83 0 1.5.67 1.5 1.5zm5 2c0 .83-.67 1.5-1.5 1.5h-2.5V7H15c.83 0 1.5.67 1.5 1.5zm4-3H19v1h1.5V11H19v2h-1.5V7h3zM9 9.5h1v-1H9zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4zm10 5.5h1v-3h-1z\"\n}), 'PictureAsPdf');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7m0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5\"\n}), 'Place');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M8 5v14l11-7z\"\n}), 'PlayArrow');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2M9.5 16.5v-9l7 4.5z\"\n}), 'PlayCircle');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M14 10H3v2h11zm0-4H3v2h11zm4 8v-4h-2v4h-4v2h4v4h2v-4h4v-2zM3 16h7v-2H3z\"\n}), 'PlaylistAdd');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"path\", {\n d: \"M22 21c-1.11 0-1.73-.37-2.18-.64-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.46.27-1.07.64-2.18.64s-1.73-.37-2.18-.64c-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.46.27-1.08.64-2.19.64s-1.73-.37-2.18-.64c-.37-.23-.6-.36-1.15-.36s-.78.13-1.15.36c-.46.27-1.08.64-2.19.64v-2c.56 0 .78-.13 1.15-.36.46-.27 1.08-.64 2.19-.64s1.73.37 2.18.64c.37.23.59.36 1.15.36s.78-.13 1.15-.36c.46-.27 1.08-.64 2.19-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36s.78-.13 1.15-.36c.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.23.59.36 1.15.36zm0-4.5c-1.11 0-1.73-.37-2.18-.64-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.45.27-1.07.64-2.18.64s-1.73-.37-2.18-.64c-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.45.27-1.07.64-2.18.64s-1.73-.37-2.18-.64c-.37-.22-.6-.36-1.15-.36s-.78.13-1.15.36c-.47.27-1.09.64-2.2.64v-2c.56 0 .78-.13 1.15-.36.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36.56 0 .78-.13 1.15-.36.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36s.78-.13 1.15-.36c.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36v2zM8.67 12c.56 0 .78-.13 1.15-.36.46-.27 1.08-.64 2.19-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36s.78-.13 1.15-.36c.12-.07.26-.15.41-.23L10.48 5C8.93 3.45 7.5 2.99 5 3v2.5c1.82-.01 2.89.39 4 1.5l1 1-3.25 3.25c.31.12.56.27.77.39.37.23.59.36 1.15.36\"\n}, \"0\"), /*#__PURE__*/_jsx(\"circle\", {\n cx: \"16.5\",\n cy: \"5.5\",\n r: \"2.5\"\n}, \"1\")], 'Pool');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M13 7h9v2h-9zm0 8h9v2h-9zm3-4h6v2h-6zm-3 1L8 7v4H2v2h6v4z\"\n}), 'ReadMore');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z\"\n}), 'Refresh');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 13H5v-2h14z\"\n}), 'Remove');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m5 11H7v-2h10z\"\n}), 'RemoveCircle');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 13H5v-2h14z\"\n}), 'RemoveOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3\"\n}), 'RemoveRedEye');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27zM12 17.3c-.72 0-1.3-.58-1.3-1.3s.58-1.3 1.3-1.3 1.3.58 1.3 1.3-.58 1.3-1.3 1.3m1-4.3h-2V7h2z\"\n}), 'Report');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27zM19 14.9 14.9 19H9.1L5 14.9V9.1L9.1 5h5.8L19 9.1z\"\n}, \"0\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"M11 7h2v6h-2zm0 8h2v2h-2z\"\n}, \"1\")], 'ReportGmailerrorred');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 7c.55 0 1 .45 1 1v1.33l7.2 7.2.51-.51c.19-.19.29-.44.29-.71V8.68c0-.27-.11-.52-.29-.71l-4.68-4.68c-.19-.18-.45-.29-.71-.29H8.68c-.26 0-.52.11-.7.29l-.51.51 3.69 3.69c.17-.29.48-.49.84-.49M2.41 1.58 1 2.99l3.64 3.64-1.35 1.35c-.18.18-.29.44-.29.7v6.63c0 .27.11.52.29.71l4.68 4.68c.19.19.45.3.71.3h6.63c.27 0 .52-.11.71-.29l1.35-1.35L21.01 23l1.41-1.41zM12 17.3c-.72 0-1.3-.58-1.3-1.3s.58-1.3 1.3-1.3 1.3.58 1.3 1.3-.58 1.3-1.3 1.3\"\n}), 'ReportOffRounded');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M2.73 21h18.53c.77 0 1.25-.83.87-1.5l-9.27-16c-.39-.67-1.35-.67-1.73 0l-9.27 16c-.38.67.1 1.5.87 1.5M13 18h-2v-2h2zm-1-4c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1\"\n}), 'ReportProblemRounded');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"circle\", {\n cx: \"6.18\",\n cy: \"17.82\",\n r: \"2.18\"\n}, \"0\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56m0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9\"\n}, \"1\")], 'RssFeed');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3m3-10H5V5h10z\"\n}), 'Save');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7zm-6 .67 2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z\"\n}), 'SaveAlt');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8\"\n}, \"0\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n}, \"1\")], 'Schedule');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14\"\n}), 'Search');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M2.01 21 23 12 2.01 3 2 10l15 2-15 2z\"\n}), 'Send');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6\"\n}), 'Settings');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M14 12c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2m-2-9c-4.97 0-9 4.03-9 9H0l4 4 4-4H5c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.51 0-2.91-.49-4.06-1.3l-1.42 1.44C8.04 20.3 9.94 21 12 21c4.97 0 9-4.03 9-9s-4.03-9-9-9\"\n}), 'SettingsBackupRestore');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M4 9h16v2H4zm0 4h10v2H4z\"\n}), 'ShortText');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H4.99C3.89 3 3 3.9 3 5l.01 14c0 1.1.89 2 1.99 2h10l6-6V5c0-1.1-.9-2-2-2M7 8h10v2H7zm5 6H7v-2h5zm2 5.5V14h5.5z\"\n}), 'StickyNote2');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.89 2 1.99 2H19c1.1 0 2-.9 2-2V9zM8 17c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m0-4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m0-4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m6 1V4.5l5.5 5.5z\"\n}), 'Summarize');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M6.99 11 3 15l3.99 4v-3H14v-2H6.99zM21 9l-3.99-4v3H10v2h7.01v3z\"\n}), 'SwapHoriz');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M16 17.01V10h-2v7.01h-3L15 21l4-3.99zM9 3 5 6.99h3V14h2V6.99h3z\"\n}), 'SwapVert');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2M6.5 9 10 5.5 13.5 9H11v4H9V9zm11 6L14 18.5 10.5 15H13v-4h2v4z\"\n}), 'SwapVerticalCircle');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-6 2c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3m6 12H8v-1.5c0-1.99 4-3 6-3s6 1.01 6 3z\"\n}), 'SwitchAccount');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 7H9c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2m0 2v2H9V9zm-6 6v-2h2v2zm2 2v2h-2v-2zm-4-2H9v-2h2zm6-2h2v2h-2zm-8 4h2v2H9zm8 2v-2h2v2zM6 17H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2v1h-2V5H5v10h1z\"\n}), 'TableView');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20 10V8h-4V4h-2v4h-4V4H8v4H4v2h4v4H4v2h4v4h2v-4h4v4h2v-4h4v-2h-4v-4zm-6 4h-4v-4h4z\"\n}), 'Tag');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3zM8 17H6v-2h2zm0-4H6v-2h2zm0-4H6V7h2zm10 8h-2v-2h2zm0-4h-2v-2h2zm0-4h-2V7h2z\"\n}), 'Theaters');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15 1H9v2h6zm-4 13h2V8h-2zm8.03-6.61 1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42C16.07 4.74 14.12 4 12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9 9-4.03 9-9c0-2.12-.74-4.07-1.97-5.61M12 20c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7\"\n}), 'TimerOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M5 4v3h5.5v12h3V7H19V4z\"\n}), 'Title');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m16 18 2.29-2.29-4.88-4.88-4 4L2 7.41 3.41 6l6 6 4-4 6.3 6.29L22 12v6z\"\n}), 'TrendingDown');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m22 12-4-4v3H3v2h15v3z\"\n}), 'TrendingFlat');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m16 6 2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6z\"\n}), 'TrendingUp');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M2 12C2 6.48 6.48 2 12 2s10 4.48 10 10-4.48 10-10 10S2 17.52 2 12m10 6c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6\"\n}), 'TripOriginRounded');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20.99 14.04V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h10.05c.28 1.92 2.1 3.35 4.18 2.93 1.34-.27 2.43-1.37 2.7-2.71.25-1.24-.16-2.39-.94-3.18m-2-9.04L12 8.5 5 5zm-3.64 10H5V7l7 3.5L19 7v6.05c-.16-.02-.33-.05-.5-.05-1.39 0-2.59.82-3.15 2m5.15 2h-4v-1h4z\"\n}), 'UnsubscribeOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3\"\n}), 'Visibility');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7M2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2m4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3z\"\n}), 'VisibilityOff');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon([/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 5.99 19.53 19H4.47zM12 2 1 21h22z\"\n}, \"0\"), /*#__PURE__*/_jsx(\"path\", {\n d: \"M13 16h-2v2h2zm0-6h-2v5h2z\"\n}, \"1\")], 'WarningAmber');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 5.99 19.53 19H4.47zM12 2 1 21h22zm1 14h-2v2h2zm0-6h-2v4h2z\"\n}), 'WarningAmberOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2m3.55 13.8-4.08-2.51c-.3-.18-.48-.5-.48-.85V7.75c.01-.41.35-.75.76-.75s.75.34.75.75v4.45l3.84 2.31c.36.22.48.69.26 1.05-.22.35-.69.46-1.05.24\"\n}), 'WatchLaterRounded');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2m-5 14H4v-4h11zm0-5H4V9h11zm5 5h-4V9h4z\"\n}), 'Web');","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * The value of the currently selected `Tab`.\n */\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired\n} : void 0;\n\n/**\n * @returns {unknown}\n */\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n if (idPrefix === null) {\n return null;\n }\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n if (idPrefix === null) {\n return null;\n }\n return `${context.idPrefix}-T-${value}`;\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from \"../TabContext/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp,\n ...other\n } = props;\n const context = useTabContext();\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, {\n ...other,\n ref: ref,\n value: context.value,\n children: children\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A list of `<Tab />` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root', 'hidden']);\nexport default tabPanelClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from \"./tabPanelClasses.js\";\nimport { getPanelId, getTabId, useTabContext } from \"../TabContext/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n hidden\n } = ownerState;\n const slots = {\n root: ['root', hidden && 'hidden']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n const {\n children,\n className,\n value,\n keepMounted = false,\n ...other\n } = props;\n const ownerState = {\n ...props\n };\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, {\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState,\n ...other,\n children: (keepMounted || value === context.value) && children\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Always keep the children in the DOM.\n * @default false\n */\n keepMounted: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired\n} : void 0;\nexport default TabPanel;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAccordionActionsUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionActions', slot);\n}\nconst accordionActionsClasses = generateUtilityClasses('MuiAccordionActions', ['root', 'spacing']);\nexport default accordionActionsClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getAccordionActionsUtilityClass } from \"./accordionActionsClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableSpacing\n } = ownerState;\n const slots = {\n root: ['root', !disableSpacing && 'spacing']\n };\n return composeClasses(slots, getAccordionActionsUtilityClass, classes);\n};\nconst AccordionActionsRoot = styled('div', {\n name: 'MuiAccordionActions',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableSpacing && styles.spacing];\n }\n})({\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n justifyContent: 'flex-end',\n variants: [{\n props: props => !props.disableSpacing,\n style: {\n '& > :not(style) ~ :not(style)': {\n marginLeft: 8\n }\n }\n }]\n});\nconst AccordionActions = /*#__PURE__*/React.forwardRef(function AccordionActions(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAccordionActions'\n });\n const {\n className,\n disableSpacing = false,\n ...other\n } = props;\n const ownerState = {\n ...props,\n disableSpacing\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(AccordionActionsRoot, {\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionActions.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the actions do not have additional margin.\n * @default false\n */\n disableSpacing: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default AccordionActions;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAlertUtilityClass(slot) {\n return generateUtilityClass('MuiAlert', slot);\n}\nconst alertClasses = generateUtilityClasses('MuiAlert', ['root', 'action', 'icon', 'message', 'filled', 'colorSuccess', 'colorInfo', 'colorWarning', 'colorError', 'filledSuccess', 'filledInfo', 'filledWarning', 'filledError', 'outlined', 'outlinedSuccess', 'outlinedInfo', 'outlinedWarning', 'outlinedError', 'standard', 'standardSuccess', 'standardInfo', 'standardWarning', 'standardError']);\nexport default alertClasses;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z\"\n}), 'SuccessOutlined');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z\"\n}), 'ReportProblemOutlined');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'ErrorOutline');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z\"\n}), 'InfoOutlined');","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { darken, lighten } from '@mui/system/colorManipulator';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport Paper from \"../Paper/index.js\";\nimport alertClasses, { getAlertUtilityClass } from \"./alertClasses.js\";\nimport IconButton from \"../IconButton/index.js\";\nimport SuccessOutlinedIcon from \"../internal/svg-icons/SuccessOutlined.js\";\nimport ReportProblemOutlinedIcon from \"../internal/svg-icons/ReportProblemOutlined.js\";\nimport ErrorOutlineIcon from \"../internal/svg-icons/ErrorOutline.js\";\nimport InfoOutlinedIcon from \"../internal/svg-icons/InfoOutlined.js\";\nimport CloseIcon from \"../internal/svg-icons/Close.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n variant,\n color,\n severity,\n classes\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color || severity)}`, `${variant}${capitalize(color || severity)}`, `${variant}`],\n icon: ['icon'],\n message: ['message'],\n action: ['action']\n };\n return composeClasses(slots, getAlertUtilityClass, classes);\n};\nconst AlertRoot = styled(Paper, {\n name: 'MuiAlert',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`${ownerState.variant}${capitalize(ownerState.color || ownerState.severity)}`]];\n }\n})(memoTheme(({\n theme\n}) => {\n const getColor = theme.palette.mode === 'light' ? darken : lighten;\n const getBackgroundColor = theme.palette.mode === 'light' ? lighten : darken;\n return {\n ...theme.typography.body2,\n backgroundColor: 'transparent',\n display: 'flex',\n padding: '6px 16px',\n variants: [...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['light'])).map(([color]) => ({\n props: {\n colorSeverity: color,\n variant: 'standard'\n },\n style: {\n color: theme.vars ? theme.vars.palette.Alert[`${color}Color`] : getColor(theme.palette[color].light, 0.6),\n backgroundColor: theme.vars ? theme.vars.palette.Alert[`${color}StandardBg`] : getBackgroundColor(theme.palette[color].light, 0.9),\n [`& .${alertClasses.icon}`]: theme.vars ? {\n color: theme.vars.palette.Alert[`${color}IconColor`]\n } : {\n color: theme.palette[color].main\n }\n }\n })), ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['light'])).map(([color]) => ({\n props: {\n colorSeverity: color,\n variant: 'outlined'\n },\n style: {\n color: theme.vars ? theme.vars.palette.Alert[`${color}Color`] : getColor(theme.palette[color].light, 0.6),\n border: `1px solid ${(theme.vars || theme).palette[color].light}`,\n [`& .${alertClasses.icon}`]: theme.vars ? {\n color: theme.vars.palette.Alert[`${color}IconColor`]\n } : {\n color: theme.palette[color].main\n }\n }\n })), ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['dark'])).map(([color]) => ({\n props: {\n colorSeverity: color,\n variant: 'filled'\n },\n style: {\n fontWeight: theme.typography.fontWeightMedium,\n ...(theme.vars ? {\n color: theme.vars.palette.Alert[`${color}FilledColor`],\n backgroundColor: theme.vars.palette.Alert[`${color}FilledBg`]\n } : {\n backgroundColor: theme.palette.mode === 'dark' ? theme.palette[color].dark : theme.palette[color].main,\n color: theme.palette.getContrastText(theme.palette[color].main)\n })\n }\n }))]\n };\n}));\nconst AlertIcon = styled('div', {\n name: 'MuiAlert',\n slot: 'Icon',\n overridesResolver: (props, styles) => styles.icon\n})({\n marginRight: 12,\n padding: '7px 0',\n display: 'flex',\n fontSize: 22,\n opacity: 0.9\n});\nconst AlertMessage = styled('div', {\n name: 'MuiAlert',\n slot: 'Message',\n overridesResolver: (props, styles) => styles.message\n})({\n padding: '8px 0',\n minWidth: 0,\n overflow: 'auto'\n});\nconst AlertAction = styled('div', {\n name: 'MuiAlert',\n slot: 'Action',\n overridesResolver: (props, styles) => styles.action\n})({\n display: 'flex',\n alignItems: 'flex-start',\n padding: '4px 0 0 16px',\n marginLeft: 'auto',\n marginRight: -8\n});\nconst defaultIconMapping = {\n success: /*#__PURE__*/_jsx(SuccessOutlinedIcon, {\n fontSize: \"inherit\"\n }),\n warning: /*#__PURE__*/_jsx(ReportProblemOutlinedIcon, {\n fontSize: \"inherit\"\n }),\n error: /*#__PURE__*/_jsx(ErrorOutlineIcon, {\n fontSize: \"inherit\"\n }),\n info: /*#__PURE__*/_jsx(InfoOutlinedIcon, {\n fontSize: \"inherit\"\n })\n};\nconst Alert = /*#__PURE__*/React.forwardRef(function Alert(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAlert'\n });\n const {\n action,\n children,\n className,\n closeText = 'Close',\n color,\n components = {},\n componentsProps = {},\n icon,\n iconMapping = defaultIconMapping,\n onClose,\n role = 'alert',\n severity = 'success',\n slotProps = {},\n slots = {},\n variant = 'standard',\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n severity,\n variant,\n colorSeverity: color || severity\n };\n const classes = useUtilityClasses(ownerState);\n const externalForwardedProps = {\n slots: {\n closeButton: components.CloseButton,\n closeIcon: components.CloseIcon,\n ...slots\n },\n slotProps: {\n ...componentsProps,\n ...slotProps\n }\n };\n const [RootSlot, rootSlotProps] = useSlot('root', {\n ref,\n shouldForwardComponentProp: true,\n className: clsx(classes.root, className),\n elementType: AlertRoot,\n externalForwardedProps: {\n ...externalForwardedProps,\n ...other\n },\n ownerState,\n additionalProps: {\n role,\n elevation: 0\n }\n });\n const [IconSlot, iconSlotProps] = useSlot('icon', {\n className: classes.icon,\n elementType: AlertIcon,\n externalForwardedProps,\n ownerState\n });\n const [MessageSlot, messageSlotProps] = useSlot('message', {\n className: classes.message,\n elementType: AlertMessage,\n externalForwardedProps,\n ownerState\n });\n const [ActionSlot, actionSlotProps] = useSlot('action', {\n className: classes.action,\n elementType: AlertAction,\n externalForwardedProps,\n ownerState\n });\n const [CloseButtonSlot, closeButtonProps] = useSlot('closeButton', {\n elementType: IconButton,\n externalForwardedProps,\n ownerState\n });\n const [CloseIconSlot, closeIconProps] = useSlot('closeIcon', {\n elementType: CloseIcon,\n externalForwardedProps,\n ownerState\n });\n return /*#__PURE__*/_jsxs(RootSlot, {\n ...rootSlotProps,\n children: [icon !== false ? /*#__PURE__*/_jsx(IconSlot, {\n ...iconSlotProps,\n children: icon || iconMapping[severity] || defaultIconMapping[severity]\n }) : null, /*#__PURE__*/_jsx(MessageSlot, {\n ...messageSlotProps,\n children: children\n }), action != null ? /*#__PURE__*/_jsx(ActionSlot, {\n ...actionSlotProps,\n children: action\n }) : null, action == null && onClose ? /*#__PURE__*/_jsx(ActionSlot, {\n ...actionSlotProps,\n children: /*#__PURE__*/_jsx(CloseButtonSlot, {\n size: \"small\",\n \"aria-label\": closeText,\n title: closeText,\n color: \"inherit\",\n onClick: onClose,\n ...closeButtonProps,\n children: /*#__PURE__*/_jsx(CloseIconSlot, {\n fontSize: \"small\",\n ...closeIconProps\n })\n })\n }) : null]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Alert.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The action to display. It renders after the message, at the end of the alert.\n */\n action: PropTypes.node,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Override the default label for the *close popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](https://mui.com/material-ui/guides/localization/).\n * @default 'Close'\n */\n closeText: PropTypes.string,\n /**\n * The color of the component. Unless provided, the value is taken from the `severity` prop.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * @deprecated use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n components: PropTypes.shape({\n CloseButton: PropTypes.elementType,\n CloseIcon: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n closeButton: PropTypes.object,\n closeIcon: PropTypes.object\n }),\n /**\n * Override the icon displayed before the children.\n * Unless provided, the icon is mapped to the value of the `severity` prop.\n * Set to `false` to remove the `icon`.\n */\n icon: PropTypes.node,\n /**\n * The component maps the `severity` prop to a range of different icons,\n * for instance success to `<SuccessOutlined>`.\n * If you wish to change this mapping, you can provide your own.\n * Alternatively, you can use the `icon` prop to override the icon displayed.\n */\n iconMapping: PropTypes.shape({\n error: PropTypes.node,\n info: PropTypes.node,\n success: PropTypes.node,\n warning: PropTypes.node\n }),\n /**\n * Callback fired when the component requests to be closed.\n * When provided and no `action` prop is set, a close icon button is displayed that triggers the callback when clicked.\n * @param {React.SyntheticEvent} event The event source of the callback.\n */\n onClose: PropTypes.func,\n /**\n * The ARIA role attribute of the element.\n * @default 'alert'\n */\n role: PropTypes.string,\n /**\n * The severity of the alert. This defines the color and icon used.\n * @default 'success'\n */\n severity: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n action: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n closeButton: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n closeIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n icon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n message: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n action: PropTypes.elementType,\n closeButton: PropTypes.elementType,\n closeIcon: PropTypes.elementType,\n icon: PropTypes.elementType,\n message: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'standard'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['filled', 'outlined', 'standard']), PropTypes.string])\n} : void 0;\nexport default Alert;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAlertTitleUtilityClass(slot) {\n return generateUtilityClass('MuiAlertTitle', slot);\n}\nconst alertTitleClasses = generateUtilityClasses('MuiAlertTitle', ['root']);\nexport default alertTitleClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Typography from \"../Typography/index.js\";\nimport { getAlertTitleUtilityClass } from \"./alertTitleClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getAlertTitleUtilityClass, classes);\n};\nconst AlertTitleRoot = styled(Typography, {\n name: 'MuiAlertTitle',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(memoTheme(({\n theme\n}) => {\n return {\n fontWeight: theme.typography.fontWeightMedium,\n marginTop: -2\n };\n}));\nconst AlertTitle = /*#__PURE__*/React.forwardRef(function AlertTitle(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAlertTitle'\n });\n const {\n className,\n ...other\n } = props;\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(AlertTitleRoot, {\n gutterBottom: true,\n component: \"div\",\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className),\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? AlertTitle.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default AlertTitle;","'use client';\n\nimport { usePreviousProps } from '@mui/utils';\n/**\n *\n * Demos:\n *\n * - [Badge](https://mui.com/base-ui/react-badge/#hook)\n *\n * API:\n *\n * - [useBadge API](https://mui.com/base-ui/react-badge/hooks-api/#use-badge)\n */\nfunction useBadge(parameters) {\n const {\n badgeContent: badgeContentProp,\n invisible: invisibleProp = false,\n max: maxProp = 99,\n showZero = false\n } = parameters;\n const prevProps = usePreviousProps({\n badgeContent: badgeContentProp,\n max: maxProp\n });\n let invisible = invisibleProp;\n if (invisibleProp === false && badgeContentProp === 0 && !showZero) {\n invisible = true;\n }\n const {\n badgeContent,\n max = maxProp\n } = invisible ? prevProps : parameters;\n const displayValue = badgeContent && Number(badgeContent) > max ? `${max}+` : badgeContent;\n return {\n badgeContent,\n invisible,\n max,\n displayValue\n };\n}\nexport default useBadge;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getBadgeUtilityClass(slot) {\n return generateUtilityClass('MuiBadge', slot);\n}\nconst badgeClasses = generateUtilityClasses('MuiBadge', ['root', 'badge', 'dot', 'standard', 'anchorOriginTopRight', 'anchorOriginBottomRight', 'anchorOriginTopLeft', 'anchorOriginBottomLeft', 'invisible', 'colorError', 'colorInfo', 'colorPrimary', 'colorSecondary', 'colorSuccess', 'colorWarning', 'overlapRectangular', 'overlapCircular',\n// TODO: v6 remove the overlap value from these class keys\n'anchorOriginTopLeftCircular', 'anchorOriginTopLeftRectangular', 'anchorOriginTopRightCircular', 'anchorOriginTopRightRectangular', 'anchorOriginBottomLeftCircular', 'anchorOriginBottomLeftRectangular', 'anchorOriginBottomRightCircular', 'anchorOriginBottomRightRectangular']);\nexport default badgeClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport usePreviousProps from '@mui/utils/usePreviousProps';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport useBadge from \"./useBadge.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport badgeClasses, { getBadgeUtilityClass } from \"./badgeClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst RADIUS_STANDARD = 10;\nconst RADIUS_DOT = 4;\nconst useUtilityClasses = ownerState => {\n const {\n color,\n anchorOrigin,\n invisible,\n overlap,\n variant,\n classes = {}\n } = ownerState;\n const slots = {\n root: ['root'],\n badge: ['badge', variant, invisible && 'invisible', `anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}`, `anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}${capitalize(overlap)}`, `overlap${capitalize(overlap)}`, color !== 'default' && `color${capitalize(color)}`]\n };\n return composeClasses(slots, getBadgeUtilityClass, classes);\n};\nconst BadgeRoot = styled('span', {\n name: 'MuiBadge',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n position: 'relative',\n display: 'inline-flex',\n // For correct alignment with the text.\n verticalAlign: 'middle',\n flexShrink: 0\n});\nconst BadgeBadge = styled('span', {\n name: 'MuiBadge',\n slot: 'Badge',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.badge, styles[ownerState.variant], styles[`anchorOrigin${capitalize(ownerState.anchorOrigin.vertical)}${capitalize(ownerState.anchorOrigin.horizontal)}${capitalize(ownerState.overlap)}`], ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`], ownerState.invisible && styles.invisible];\n }\n})(memoTheme(({\n theme\n}) => ({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'center',\n alignContent: 'center',\n alignItems: 'center',\n position: 'absolute',\n boxSizing: 'border-box',\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.pxToRem(12),\n minWidth: RADIUS_STANDARD * 2,\n lineHeight: 1,\n padding: '0 6px',\n height: RADIUS_STANDARD * 2,\n borderRadius: RADIUS_STANDARD,\n zIndex: 1,\n // Render the badge on top of potential ripples.\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeInOut,\n duration: theme.transitions.duration.enteringScreen\n }),\n variants: [...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['contrastText'])).map(([color]) => ({\n props: {\n color\n },\n style: {\n backgroundColor: (theme.vars || theme).palette[color].main,\n color: (theme.vars || theme).palette[color].contrastText\n }\n })), {\n props: {\n variant: 'dot'\n },\n style: {\n borderRadius: RADIUS_DOT,\n height: RADIUS_DOT * 2,\n minWidth: RADIUS_DOT * 2,\n padding: 0\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'rectangular',\n style: {\n top: 0,\n right: 0,\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, -50%)'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'rectangular',\n style: {\n bottom: 0,\n right: 0,\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, 50%)'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'rectangular',\n style: {\n top: 0,\n left: 0,\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, -50%)'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'rectangular',\n style: {\n bottom: 0,\n left: 0,\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, 50%)'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'circular',\n style: {\n top: '14%',\n right: '14%',\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, -50%)'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'circular',\n style: {\n bottom: '14%',\n right: '14%',\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, 50%)'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'circular',\n style: {\n top: '14%',\n left: '14%',\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, -50%)'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'circular',\n style: {\n bottom: '14%',\n left: '14%',\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, 50%)'\n }\n }\n }, {\n props: {\n invisible: true\n },\n style: {\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeInOut,\n duration: theme.transitions.duration.leavingScreen\n })\n }\n }]\n})));\nfunction getAnchorOrigin(anchorOrigin) {\n return {\n vertical: anchorOrigin?.vertical ?? 'top',\n horizontal: anchorOrigin?.horizontal ?? 'right'\n };\n}\nconst Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiBadge'\n });\n const {\n anchorOrigin: anchorOriginProp,\n className,\n classes: classesProp,\n component,\n components = {},\n componentsProps = {},\n children,\n overlap: overlapProp = 'rectangular',\n color: colorProp = 'default',\n invisible: invisibleProp = false,\n max: maxProp = 99,\n badgeContent: badgeContentProp,\n slots,\n slotProps,\n showZero = false,\n variant: variantProp = 'standard',\n ...other\n } = props;\n const {\n badgeContent,\n invisible: invisibleFromHook,\n max,\n displayValue: displayValueFromHook\n } = useBadge({\n max: maxProp,\n invisible: invisibleProp,\n badgeContent: badgeContentProp,\n showZero\n });\n const prevProps = usePreviousProps({\n anchorOrigin: getAnchorOrigin(anchorOriginProp),\n color: colorProp,\n overlap: overlapProp,\n variant: variantProp,\n badgeContent: badgeContentProp\n });\n const invisible = invisibleFromHook || badgeContent == null && variantProp !== 'dot';\n const {\n color = colorProp,\n overlap = overlapProp,\n anchorOrigin: anchorOriginPropProp,\n variant = variantProp\n } = invisible ? prevProps : props;\n const anchorOrigin = getAnchorOrigin(anchorOriginPropProp);\n const displayValue = variant !== 'dot' ? displayValueFromHook : undefined;\n const ownerState = {\n ...props,\n badgeContent,\n invisible,\n max,\n displayValue,\n showZero,\n anchorOrigin,\n color,\n overlap,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n\n // support both `slots` and `components` for backward compatibility\n const RootSlot = slots?.root ?? components.Root ?? BadgeRoot;\n const BadgeSlot = slots?.badge ?? components.Badge ?? BadgeBadge;\n const rootSlotProps = slotProps?.root ?? componentsProps.root;\n const badgeSlotProps = slotProps?.badge ?? componentsProps.badge;\n const rootProps = useSlotProps({\n elementType: RootSlot,\n externalSlotProps: rootSlotProps,\n externalForwardedProps: other,\n additionalProps: {\n ref,\n as: component\n },\n ownerState,\n className: clsx(rootSlotProps?.className, classes.root, className)\n });\n const badgeProps = useSlotProps({\n elementType: BadgeSlot,\n externalSlotProps: badgeSlotProps,\n ownerState,\n className: clsx(classes.badge, badgeSlotProps?.className)\n });\n return /*#__PURE__*/_jsxs(RootSlot, {\n ...rootProps,\n children: [children, /*#__PURE__*/_jsx(BadgeSlot, {\n ...badgeProps,\n children: displayValue\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Badge.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The anchor of the badge.\n * @default {\n * vertical: 'top',\n * horizontal: 'right',\n * }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'right']),\n vertical: PropTypes.oneOf(['bottom', 'top'])\n }),\n /**\n * The content rendered within the badge.\n */\n badgeContent: PropTypes.node,\n /**\n * The badge will be added relative to this node.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'default'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The components used for each slot inside.\n *\n * @deprecated use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Badge: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n badge: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * If `true`, the badge is invisible.\n * @default false\n */\n invisible: PropTypes.bool,\n /**\n * Max count to show.\n * @default 99\n */\n max: PropTypes.number,\n /**\n * Wrapped shape the badge should overlap.\n * @default 'rectangular'\n */\n overlap: PropTypes.oneOf(['circular', 'rectangular']),\n /**\n * Controls whether the badge is hidden when `badgeContent` is zero.\n * @default false\n */\n showZero: PropTypes.bool,\n /**\n * The props used for each slot inside the Badge.\n * @default {}\n */\n slotProps: PropTypes.shape({\n badge: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Badge.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n badge: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'standard'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['dot', 'standard']), PropTypes.string])\n} : void 0;\nexport default Badge;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'MoreHoriz');","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { emphasize } from '@mui/system/colorManipulator';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport MoreHorizIcon from \"../internal/svg-icons/MoreHoriz.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst BreadcrumbCollapsedButton = styled(ButtonBase)(memoTheme(({\n theme\n}) => ({\n display: 'flex',\n marginLeft: `calc(${theme.spacing(1)} * 0.5)`,\n marginRight: `calc(${theme.spacing(1)} * 0.5)`,\n ...(theme.palette.mode === 'light' ? {\n backgroundColor: theme.palette.grey[100],\n color: theme.palette.grey[700]\n } : {\n backgroundColor: theme.palette.grey[700],\n color: theme.palette.grey[100]\n }),\n borderRadius: 2,\n '&:hover, &:focus': {\n ...(theme.palette.mode === 'light' ? {\n backgroundColor: theme.palette.grey[200]\n } : {\n backgroundColor: theme.palette.grey[600]\n })\n },\n '&:active': {\n boxShadow: theme.shadows[0],\n ...(theme.palette.mode === 'light' ? {\n backgroundColor: emphasize(theme.palette.grey[200], 0.12)\n } : {\n backgroundColor: emphasize(theme.palette.grey[600], 0.12)\n })\n }\n})));\nconst BreadcrumbCollapsedIcon = styled(MoreHorizIcon)({\n width: 24,\n height: 16\n});\n\n/**\n * @ignore - internal component.\n */\nfunction BreadcrumbCollapsed(props) {\n const {\n slots = {},\n slotProps = {},\n ...otherProps\n } = props;\n const ownerState = props;\n return /*#__PURE__*/_jsx(\"li\", {\n children: /*#__PURE__*/_jsx(BreadcrumbCollapsedButton, {\n focusRipple: true,\n ...otherProps,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(BreadcrumbCollapsedIcon, {\n as: slots.CollapsedIcon,\n ownerState: ownerState,\n ...slotProps.collapsedIcon\n })\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? BreadcrumbCollapsed.propTypes = {\n /**\n * The props used for the CollapsedIcon slot.\n * @default {}\n */\n slotProps: PropTypes.shape({\n collapsedIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the BreadcumbCollapsed.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n CollapsedIcon: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.object\n} : void 0;\nexport default BreadcrumbCollapsed;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getBreadcrumbsUtilityClass(slot) {\n return generateUtilityClass('MuiBreadcrumbs', slot);\n}\nconst breadcrumbsClasses = generateUtilityClasses('MuiBreadcrumbs', ['root', 'ol', 'li', 'separator']);\nexport default breadcrumbsClasses;","'use client';\n\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport integerPropType from '@mui/utils/integerPropType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Typography from \"../Typography/index.js\";\nimport BreadcrumbCollapsed from \"./BreadcrumbCollapsed.js\";\nimport breadcrumbsClasses, { getBreadcrumbsUtilityClass } from \"./breadcrumbsClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n li: ['li'],\n ol: ['ol'],\n separator: ['separator']\n };\n return composeClasses(slots, getBreadcrumbsUtilityClass, classes);\n};\nconst BreadcrumbsRoot = styled(Typography, {\n name: 'MuiBreadcrumbs',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n return [{\n [`& .${breadcrumbsClasses.li}`]: styles.li\n }, styles.root];\n }\n})({});\nconst BreadcrumbsOl = styled('ol', {\n name: 'MuiBreadcrumbs',\n slot: 'Ol',\n overridesResolver: (props, styles) => styles.ol\n})({\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n padding: 0,\n margin: 0,\n listStyle: 'none'\n});\nconst BreadcrumbsSeparator = styled('li', {\n name: 'MuiBreadcrumbs',\n slot: 'Separator',\n overridesResolver: (props, styles) => styles.separator\n})({\n display: 'flex',\n userSelect: 'none',\n marginLeft: 8,\n marginRight: 8\n});\nfunction insertSeparators(items, className, separator, ownerState) {\n return items.reduce((acc, current, index) => {\n if (index < items.length - 1) {\n acc = acc.concat(current, /*#__PURE__*/_jsx(BreadcrumbsSeparator, {\n \"aria-hidden\": true,\n className: className,\n ownerState: ownerState,\n children: separator\n }, `separator-${index}`));\n } else {\n acc.push(current);\n }\n return acc;\n }, []);\n}\nconst Breadcrumbs = /*#__PURE__*/React.forwardRef(function Breadcrumbs(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiBreadcrumbs'\n });\n const {\n children,\n className,\n component = 'nav',\n slots = {},\n slotProps = {},\n expandText = 'Show path',\n itemsAfterCollapse = 1,\n itemsBeforeCollapse = 1,\n maxItems = 8,\n separator = '/',\n ...other\n } = props;\n const [expanded, setExpanded] = React.useState(false);\n const ownerState = {\n ...props,\n component,\n expanded,\n expandText,\n itemsAfterCollapse,\n itemsBeforeCollapse,\n maxItems,\n separator\n };\n const classes = useUtilityClasses(ownerState);\n const collapsedIconSlotProps = useSlotProps({\n elementType: slots.CollapsedIcon,\n externalSlotProps: slotProps.collapsedIcon,\n ownerState\n });\n const listRef = React.useRef(null);\n const renderItemsBeforeAndAfter = allItems => {\n const handleClickExpand = () => {\n setExpanded(true);\n\n // The clicked element received the focus but gets removed from the DOM.\n // Let's keep the focus in the component after expanding.\n // Moving it to the <ol> or <nav> does not cause any announcement in NVDA.\n // By moving it to some link/button at least we have some announcement.\n const focusable = listRef.current.querySelector('a[href],button,[tabindex]');\n if (focusable) {\n focusable.focus();\n }\n };\n\n // This defends against someone passing weird input, to ensure that if all\n // items would be shown anyway, we just show all items without the EllipsisItem\n if (itemsBeforeCollapse + itemsAfterCollapse >= allItems.length) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(['MUI: You have provided an invalid combination of props to the Breadcrumbs.', `itemsAfterCollapse={${itemsAfterCollapse}} + itemsBeforeCollapse={${itemsBeforeCollapse}} >= maxItems={${maxItems}}`].join('\\n'));\n }\n return allItems;\n }\n return [...allItems.slice(0, itemsBeforeCollapse), /*#__PURE__*/_jsx(BreadcrumbCollapsed, {\n \"aria-label\": expandText,\n slots: {\n CollapsedIcon: slots.CollapsedIcon\n },\n slotProps: {\n collapsedIcon: collapsedIconSlotProps\n },\n onClick: handleClickExpand\n }, \"ellipsis\"), ...allItems.slice(allItems.length - itemsAfterCollapse, allItems.length)];\n };\n const allItems = React.Children.toArray(children).filter(child => {\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Breadcrumbs component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n return /*#__PURE__*/React.isValidElement(child);\n }).map((child, index) => /*#__PURE__*/_jsx(\"li\", {\n className: classes.li,\n children: child\n }, `child-${index}`));\n return /*#__PURE__*/_jsx(BreadcrumbsRoot, {\n ref: ref,\n component: component,\n color: \"textSecondary\",\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ...other,\n children: /*#__PURE__*/_jsx(BreadcrumbsOl, {\n className: classes.ol,\n ref: listRef,\n ownerState: ownerState,\n children: insertSeparators(expanded || maxItems && allItems.length <= maxItems ? allItems : renderItemsBeforeAndAfter(allItems), classes.separator, separator, ownerState)\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Breadcrumbs.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Override the default label for the expand button.\n *\n * For localization purposes, you can use the provided [translations](https://mui.com/material-ui/guides/localization/).\n * @default 'Show path'\n */\n expandText: PropTypes.string,\n /**\n * If max items is exceeded, the number of items to show after the ellipsis.\n * @default 1\n */\n itemsAfterCollapse: integerPropType,\n /**\n * If max items is exceeded, the number of items to show before the ellipsis.\n * @default 1\n */\n itemsBeforeCollapse: integerPropType,\n /**\n * Specifies the maximum number of breadcrumbs to display. When there are more\n * than the maximum number, only the first `itemsBeforeCollapse` and last `itemsAfterCollapse`\n * will be shown, with an ellipsis in between.\n * @default 8\n */\n maxItems: integerPropType,\n /**\n * Custom separator node.\n * @default '/'\n */\n separator: PropTypes.node,\n /**\n * The props used for each slot inside the Breadcumb.\n * @default {}\n */\n slotProps: PropTypes.shape({\n collapsedIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Breadcumb.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n CollapsedIcon: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Breadcrumbs;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardActionAreaUtilityClass(slot) {\n return generateUtilityClass('MuiCardActionArea', slot);\n}\nconst cardActionAreaClasses = generateUtilityClasses('MuiCardActionArea', ['root', 'focusVisible', 'focusHighlight']);\nexport default cardActionAreaClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport cardActionAreaClasses, { getCardActionAreaUtilityClass } from \"./cardActionAreaClasses.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n focusHighlight: ['focusHighlight']\n };\n return composeClasses(slots, getCardActionAreaUtilityClass, classes);\n};\nconst CardActionAreaRoot = styled(ButtonBase, {\n name: 'MuiCardActionArea',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(memoTheme(({\n theme\n}) => ({\n display: 'block',\n textAlign: 'inherit',\n borderRadius: 'inherit',\n // for Safari to work https://github.com/mui/material-ui/issues/36285.\n width: '100%',\n [`&:hover .${cardActionAreaClasses.focusHighlight}`]: {\n opacity: (theme.vars || theme).palette.action.hoverOpacity,\n '@media (hover: none)': {\n opacity: 0\n }\n },\n [`&.${cardActionAreaClasses.focusVisible} .${cardActionAreaClasses.focusHighlight}`]: {\n opacity: (theme.vars || theme).palette.action.focusOpacity\n }\n})));\nconst CardActionAreaFocusHighlight = styled('span', {\n name: 'MuiCardActionArea',\n slot: 'FocusHighlight',\n overridesResolver: (props, styles) => styles.focusHighlight\n})(memoTheme(({\n theme\n}) => ({\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit',\n opacity: 0,\n backgroundColor: 'currentcolor',\n transition: theme.transitions.create('opacity', {\n duration: theme.transitions.duration.short\n })\n})));\nconst CardActionArea = /*#__PURE__*/React.forwardRef(function CardActionArea(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCardActionArea'\n });\n const {\n children,\n className,\n focusVisibleClassName,\n ...other\n } = props;\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(CardActionAreaRoot, {\n className: clsx(classes.root, className),\n focusVisibleClassName: clsx(focusVisibleClassName, classes.focusVisible),\n ref: ref,\n ownerState: ownerState,\n ...other,\n children: [children, /*#__PURE__*/_jsx(CardActionAreaFocusHighlight, {\n className: classes.focusHighlight,\n ownerState: ownerState\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CardActionArea.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n focusVisibleClassName: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default CardActionArea;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardActionsUtilityClass(slot) {\n return generateUtilityClass('MuiCardActions', slot);\n}\nconst cardActionsClasses = generateUtilityClasses('MuiCardActions', ['root', 'spacing']);\nexport default cardActionsClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getCardActionsUtilityClass } from \"./cardActionsClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableSpacing\n } = ownerState;\n const slots = {\n root: ['root', !disableSpacing && 'spacing']\n };\n return composeClasses(slots, getCardActionsUtilityClass, classes);\n};\nconst CardActionsRoot = styled('div', {\n name: 'MuiCardActions',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableSpacing && styles.spacing];\n }\n})({\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n variants: [{\n props: {\n disableSpacing: false\n },\n style: {\n '& > :not(style) ~ :not(style)': {\n marginLeft: 8\n }\n }\n }]\n});\nconst CardActions = /*#__PURE__*/React.forwardRef(function CardActions(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCardActions'\n });\n const {\n disableSpacing = false,\n className,\n ...other\n } = props;\n const ownerState = {\n ...props,\n disableSpacing\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardActionsRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CardActions.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the actions do not have additional margin.\n * @default false\n */\n disableSpacing: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default CardActions;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDialogContentTextUtilityClass(slot) {\n return generateUtilityClass('MuiDialogContentText', slot);\n}\nconst dialogContentTextClasses = generateUtilityClasses('MuiDialogContentText', ['root']);\nexport default dialogContentTextClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Typography from \"../Typography/index.js\";\nimport { getDialogContentTextUtilityClass } from \"./dialogContentTextClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n const composedClasses = composeClasses(slots, getDialogContentTextUtilityClass, classes);\n return {\n ...classes,\n // forward classes to the Typography\n ...composedClasses\n };\n};\nconst DialogContentTextRoot = styled(Typography, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiDialogContentText',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\nconst DialogContentText = /*#__PURE__*/React.forwardRef(function DialogContentText(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiDialogContentText'\n });\n const {\n children,\n className,\n ...ownerState\n } = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DialogContentTextRoot, {\n component: \"p\",\n variant: \"body1\",\n color: \"textSecondary\",\n ref: ref,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ...props,\n classes: classes\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContentText.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default DialogContentText;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport Typography from \"../Typography/index.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getDialogTitleUtilityClass } from \"./dialogTitleClasses.js\";\nimport DialogContext from \"../Dialog/DialogContext.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getDialogTitleUtilityClass, classes);\n};\nconst DialogTitleRoot = styled(Typography, {\n name: 'MuiDialogTitle',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n padding: '16px 24px',\n flex: '0 0 auto'\n});\nconst DialogTitle = /*#__PURE__*/React.forwardRef(function DialogTitle(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiDialogTitle'\n });\n const {\n className,\n id: idProp,\n ...other\n } = props;\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const {\n titleId = idProp\n } = React.useContext(DialogContext);\n return /*#__PURE__*/_jsx(DialogTitleRoot, {\n component: \"h2\",\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n variant: \"h6\",\n id: idProp ?? titleId,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogTitle.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n id: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default DialogTitle;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDrawerUtilityClass(slot) {\n return generateUtilityClass('MuiDrawer', slot);\n}\nconst drawerClasses = generateUtilityClasses('MuiDrawer', ['root', 'docked', 'paper', 'paperAnchorLeft', 'paperAnchorRight', 'paperAnchorTop', 'paperAnchorBottom', 'paperAnchorDockedLeft', 'paperAnchorDockedRight', 'paperAnchorDockedTop', 'paperAnchorDockedBottom', 'modal']);\nexport default drawerClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport integerPropType from '@mui/utils/integerPropType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport Modal from \"../Modal/index.js\";\nimport Slide from \"../Slide/index.js\";\nimport Paper from \"../Paper/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getDrawerUtilityClass } from \"./drawerClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, (ownerState.variant === 'permanent' || ownerState.variant === 'persistent') && styles.docked, styles.modal];\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n anchor,\n variant\n } = ownerState;\n const slots = {\n root: ['root'],\n docked: [(variant === 'permanent' || variant === 'persistent') && 'docked'],\n modal: ['modal'],\n paper: ['paper', `paperAnchor${capitalize(anchor)}`, variant !== 'temporary' && `paperAnchorDocked${capitalize(anchor)}`]\n };\n return composeClasses(slots, getDrawerUtilityClass, classes);\n};\nconst DrawerRoot = styled(Modal, {\n name: 'MuiDrawer',\n slot: 'Root',\n overridesResolver\n})(memoTheme(({\n theme\n}) => ({\n zIndex: (theme.vars || theme).zIndex.drawer\n})));\nconst DrawerDockedRoot = styled('div', {\n shouldForwardProp: rootShouldForwardProp,\n name: 'MuiDrawer',\n slot: 'Docked',\n skipVariantsResolver: false,\n overridesResolver\n})({\n flex: '0 0 auto'\n});\nconst DrawerPaper = styled(Paper, {\n name: 'MuiDrawer',\n slot: 'Paper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.paper, styles[`paperAnchor${capitalize(ownerState.anchor)}`], ownerState.variant !== 'temporary' && styles[`paperAnchorDocked${capitalize(ownerState.anchor)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n overflowY: 'auto',\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n flex: '1 0 auto',\n zIndex: (theme.vars || theme).zIndex.drawer,\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n // temporary style\n position: 'fixed',\n top: 0,\n // We disable the focus ring for mouse, touch and keyboard users.\n // At some point, it would be better to keep it for keyboard users.\n // :focus-ring CSS pseudo-class will help.\n outline: 0,\n variants: [{\n props: {\n anchor: 'left'\n },\n style: {\n left: 0\n }\n }, {\n props: {\n anchor: 'top'\n },\n style: {\n top: 0,\n left: 0,\n right: 0,\n height: 'auto',\n maxHeight: '100%'\n }\n }, {\n props: {\n anchor: 'right'\n },\n style: {\n right: 0\n }\n }, {\n props: {\n anchor: 'bottom'\n },\n style: {\n top: 'auto',\n left: 0,\n bottom: 0,\n right: 0,\n height: 'auto',\n maxHeight: '100%'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchor === 'left' && ownerState.variant !== 'temporary',\n style: {\n borderRight: `1px solid ${(theme.vars || theme).palette.divider}`\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchor === 'top' && ownerState.variant !== 'temporary',\n style: {\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchor === 'right' && ownerState.variant !== 'temporary',\n style: {\n borderLeft: `1px solid ${(theme.vars || theme).palette.divider}`\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchor === 'bottom' && ownerState.variant !== 'temporary',\n style: {\n borderTop: `1px solid ${(theme.vars || theme).palette.divider}`\n }\n }]\n})));\nconst oppositeDirection = {\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up'\n};\nexport function isHorizontal(anchor) {\n return ['left', 'right'].includes(anchor);\n}\nexport function getAnchor({\n direction\n}, anchor) {\n return direction === 'rtl' && isHorizontal(anchor) ? oppositeDirection[anchor] : anchor;\n}\n\n/**\n * The props of the [Modal](/material-ui/api/modal/) component are available\n * when `variant=\"temporary\"` is set.\n */\nconst Drawer = /*#__PURE__*/React.forwardRef(function Drawer(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiDrawer'\n });\n const theme = useTheme();\n const isRtl = useRtl();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n anchor: anchorProp = 'left',\n BackdropProps,\n children,\n className,\n elevation = 16,\n hideBackdrop = false,\n ModalProps: {\n BackdropProps: BackdropPropsProp,\n ...ModalProps\n } = {},\n onClose,\n open = false,\n PaperProps = {},\n SlideProps,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Slide,\n transitionDuration = defaultTransitionDuration,\n variant = 'temporary',\n ...other\n } = props;\n\n // Let's assume that the Drawer will always be rendered on user space.\n // We use this state is order to skip the appear transition during the\n // initial mount of the component.\n const mounted = React.useRef(false);\n React.useEffect(() => {\n mounted.current = true;\n }, []);\n const anchorInvariant = getAnchor({\n direction: isRtl ? 'rtl' : 'ltr'\n }, anchorProp);\n const anchor = anchorProp;\n const ownerState = {\n ...props,\n anchor,\n elevation,\n open,\n variant,\n ...other\n };\n const classes = useUtilityClasses(ownerState);\n const drawer = /*#__PURE__*/_jsx(DrawerPaper, {\n elevation: variant === 'temporary' ? elevation : 0,\n square: true,\n ...PaperProps,\n className: clsx(classes.paper, PaperProps.className),\n ownerState: ownerState,\n children: children\n });\n if (variant === 'permanent') {\n return /*#__PURE__*/_jsx(DrawerDockedRoot, {\n className: clsx(classes.root, classes.docked, className),\n ownerState: ownerState,\n ref: ref,\n ...other,\n children: drawer\n });\n }\n const slidingDrawer = /*#__PURE__*/_jsx(TransitionComponent, {\n in: open,\n direction: oppositeDirection[anchorInvariant],\n timeout: transitionDuration,\n appear: mounted.current,\n ...SlideProps,\n children: drawer\n });\n if (variant === 'persistent') {\n return /*#__PURE__*/_jsx(DrawerDockedRoot, {\n className: clsx(classes.root, classes.docked, className),\n ownerState: ownerState,\n ref: ref,\n ...other,\n children: slidingDrawer\n });\n }\n\n // variant === temporary\n return /*#__PURE__*/_jsx(DrawerRoot, {\n BackdropProps: {\n ...BackdropProps,\n ...BackdropPropsProp,\n transitionDuration\n },\n className: clsx(classes.root, classes.modal, className),\n open: open,\n ownerState: ownerState,\n onClose: onClose,\n hideBackdrop: hideBackdrop,\n ref: ref,\n ...other,\n ...ModalProps,\n children: slidingDrawer\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Drawer.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Side from which the drawer will appear.\n * @default 'left'\n */\n anchor: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The elevation of the drawer.\n * @default 16\n */\n elevation: integerPropType,\n /**\n * If `true`, the backdrop is not rendered.\n * @default false\n */\n hideBackdrop: PropTypes.bool,\n /**\n * Props applied to the [`Modal`](https://mui.com/material-ui/api/modal/) element.\n * @default {}\n */\n ModalProps: PropTypes.object,\n /**\n * Callback fired when the component requests to be closed.\n * The `reason` parameter can optionally be used to control the response to `onClose`.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * Props applied to the [`Paper`](https://mui.com/material-ui/api/paper/) element.\n * @default {}\n */\n PaperProps: PropTypes.object,\n /**\n * Props applied to the [`Slide`](https://mui.com/material-ui/api/slide/) element.\n */\n SlideProps: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * The variant to use.\n * @default 'temporary'\n */\n variant: PropTypes.oneOf(['permanent', 'persistent', 'temporary'])\n} : void 0;\nexport default Drawer;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getLinearProgressUtilityClass(slot) {\n return generateUtilityClass('MuiLinearProgress', slot);\n}\nconst linearProgressClasses = generateUtilityClasses('MuiLinearProgress', ['root', 'colorPrimary', 'colorSecondary', 'determinate', 'indeterminate', 'buffer', 'query', 'dashed', 'dashedColorPrimary', 'dashedColorSecondary', 'bar', 'bar1', 'bar2', 'barColorPrimary', 'barColorSecondary', 'bar1Indeterminate', 'bar1Determinate', 'bar1Buffer', 'bar2Indeterminate', 'bar2Buffer']);\nexport default linearProgressClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { darken, lighten } from '@mui/system/colorManipulator';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { keyframes, css, styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport { getLinearProgressUtilityClass } from \"./linearProgressClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst TRANSITION_DURATION = 4; // seconds\nconst indeterminate1Keyframe = keyframes`\n 0% {\n left: -35%;\n right: 100%;\n }\n\n 60% {\n left: 100%;\n right: -90%;\n }\n\n 100% {\n left: 100%;\n right: -90%;\n }\n`;\n\n// This implementation is for supporting both Styled-components v4+ and Pigment CSS.\n// A global animation has to be created here for Styled-components v4+ (https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#12).\n// which can be done by checking typeof indeterminate1Keyframe !== 'string' (at runtime, Pigment CSS transform keyframes`` to a string).\nconst indeterminate1Animation = typeof indeterminate1Keyframe !== 'string' ? css`\n animation: ${indeterminate1Keyframe} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n ` : null;\nconst indeterminate2Keyframe = keyframes`\n 0% {\n left: -200%;\n right: 100%;\n }\n\n 60% {\n left: 107%;\n right: -8%;\n }\n\n 100% {\n left: 107%;\n right: -8%;\n }\n`;\nconst indeterminate2Animation = typeof indeterminate2Keyframe !== 'string' ? css`\n animation: ${indeterminate2Keyframe} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;\n ` : null;\nconst bufferKeyframe = keyframes`\n 0% {\n opacity: 1;\n background-position: 0 -23px;\n }\n\n 60% {\n opacity: 0;\n background-position: 0 -23px;\n }\n\n 100% {\n opacity: 1;\n background-position: -200px -23px;\n }\n`;\nconst bufferAnimation = typeof bufferKeyframe !== 'string' ? css`\n animation: ${bufferKeyframe} 3s infinite linear;\n ` : null;\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n color\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, variant],\n dashed: ['dashed', `dashedColor${capitalize(color)}`],\n bar1: ['bar', 'bar1', `barColor${capitalize(color)}`, (variant === 'indeterminate' || variant === 'query') && 'bar1Indeterminate', variant === 'determinate' && 'bar1Determinate', variant === 'buffer' && 'bar1Buffer'],\n bar2: ['bar', 'bar2', variant !== 'buffer' && `barColor${capitalize(color)}`, variant === 'buffer' && `color${capitalize(color)}`, (variant === 'indeterminate' || variant === 'query') && 'bar2Indeterminate', variant === 'buffer' && 'bar2Buffer']\n };\n return composeClasses(slots, getLinearProgressUtilityClass, classes);\n};\nconst getColorShade = (theme, color) => {\n if (theme.vars) {\n return theme.vars.palette.LinearProgress[`${color}Bg`];\n }\n return theme.palette.mode === 'light' ? lighten(theme.palette[color].main, 0.62) : darken(theme.palette[color].main, 0.5);\n};\nconst LinearProgressRoot = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`color${capitalize(ownerState.color)}`], styles[ownerState.variant]];\n }\n})(memoTheme(({\n theme\n}) => ({\n position: 'relative',\n overflow: 'hidden',\n display: 'block',\n height: 4,\n // Fix Safari's bug during composition of different paint.\n zIndex: 0,\n '@media print': {\n colorAdjust: 'exact'\n },\n variants: [...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color\n },\n style: {\n backgroundColor: getColorShade(theme, color)\n }\n })), {\n props: ({\n ownerState\n }) => ownerState.color === 'inherit' && ownerState.variant !== 'buffer',\n style: {\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'currentColor',\n opacity: 0.3\n }\n }\n }, {\n props: {\n variant: 'buffer'\n },\n style: {\n backgroundColor: 'transparent'\n }\n }, {\n props: {\n variant: 'query'\n },\n style: {\n transform: 'rotate(180deg)'\n }\n }]\n})));\nconst LinearProgressDashed = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Dashed',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.dashed, styles[`dashedColor${capitalize(ownerState.color)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n position: 'absolute',\n marginTop: 0,\n height: '100%',\n width: '100%',\n backgroundSize: '10px 10px',\n backgroundPosition: '0 -23px',\n variants: [{\n props: {\n color: 'inherit'\n },\n style: {\n opacity: 0.3,\n backgroundImage: `radial-gradient(currentColor 0%, currentColor 16%, transparent 42%)`\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => {\n const backgroundColor = getColorShade(theme, color);\n return {\n props: {\n color\n },\n style: {\n backgroundImage: `radial-gradient(${backgroundColor} 0%, ${backgroundColor} 16%, transparent 42%)`\n }\n };\n })]\n})), bufferAnimation || {\n // At runtime for Pigment CSS, `bufferAnimation` will be null and the generated keyframe will be used.\n animation: `${bufferKeyframe} 3s infinite linear`\n});\nconst LinearProgressBar1 = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Bar1',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.bar, styles.bar1, styles[`barColor${capitalize(ownerState.color)}`], (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && styles.bar1Indeterminate, ownerState.variant === 'determinate' && styles.bar1Determinate, ownerState.variant === 'buffer' && styles.bar1Buffer];\n }\n})(memoTheme(({\n theme\n}) => ({\n width: '100%',\n position: 'absolute',\n left: 0,\n bottom: 0,\n top: 0,\n transition: 'transform 0.2s linear',\n transformOrigin: 'left',\n variants: [{\n props: {\n color: 'inherit'\n },\n style: {\n backgroundColor: 'currentColor'\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color\n },\n style: {\n backgroundColor: (theme.vars || theme).palette[color].main\n }\n })), {\n props: {\n variant: 'determinate'\n },\n style: {\n transition: `transform .${TRANSITION_DURATION}s linear`\n }\n }, {\n props: {\n variant: 'buffer'\n },\n style: {\n zIndex: 1,\n transition: `transform .${TRANSITION_DURATION}s linear`\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.variant === 'indeterminate' || ownerState.variant === 'query',\n style: {\n width: 'auto'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.variant === 'indeterminate' || ownerState.variant === 'query',\n style: indeterminate1Animation || {\n animation: `${indeterminate1Keyframe} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite`\n }\n }]\n})));\nconst LinearProgressBar2 = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Bar2',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.bar, styles.bar2, styles[`barColor${capitalize(ownerState.color)}`], (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && styles.bar2Indeterminate, ownerState.variant === 'buffer' && styles.bar2Buffer];\n }\n})(memoTheme(({\n theme\n}) => ({\n width: '100%',\n position: 'absolute',\n left: 0,\n bottom: 0,\n top: 0,\n transition: 'transform 0.2s linear',\n transformOrigin: 'left',\n variants: [...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color\n },\n style: {\n '--LinearProgressBar2-barColor': (theme.vars || theme).palette[color].main\n }\n })), {\n props: ({\n ownerState\n }) => ownerState.variant !== 'buffer' && ownerState.color !== 'inherit',\n style: {\n backgroundColor: 'var(--LinearProgressBar2-barColor, currentColor)'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.variant !== 'buffer' && ownerState.color === 'inherit',\n style: {\n backgroundColor: 'currentColor'\n }\n }, {\n props: {\n color: 'inherit'\n },\n style: {\n opacity: 0.3\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color,\n variant: 'buffer'\n },\n style: {\n backgroundColor: getColorShade(theme, color),\n transition: `transform .${TRANSITION_DURATION}s linear`\n }\n })), {\n props: ({\n ownerState\n }) => ownerState.variant === 'indeterminate' || ownerState.variant === 'query',\n style: {\n width: 'auto'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.variant === 'indeterminate' || ownerState.variant === 'query',\n style: indeterminate2Animation || {\n animation: `${indeterminate2Keyframe} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite`\n }\n }]\n})));\n\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\nconst LinearProgress = /*#__PURE__*/React.forwardRef(function LinearProgress(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiLinearProgress'\n });\n const {\n className,\n color = 'primary',\n value,\n valueBuffer,\n variant = 'indeterminate',\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n const isRtl = useRtl();\n const rootProps = {};\n const inlineStyles = {\n bar1: {},\n bar2: {}\n };\n if (variant === 'determinate' || variant === 'buffer') {\n if (value !== undefined) {\n rootProps['aria-valuenow'] = Math.round(value);\n rootProps['aria-valuemin'] = 0;\n rootProps['aria-valuemax'] = 100;\n let transform = value - 100;\n if (isRtl) {\n transform = -transform;\n }\n inlineStyles.bar1.transform = `translateX(${transform}%)`;\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: You need to provide a value prop ' + 'when using the determinate or buffer variant of LinearProgress .');\n }\n }\n if (variant === 'buffer') {\n if (valueBuffer !== undefined) {\n let transform = (valueBuffer || 0) - 100;\n if (isRtl) {\n transform = -transform;\n }\n inlineStyles.bar2.transform = `translateX(${transform}%)`;\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: You need to provide a valueBuffer prop ' + 'when using the buffer variant of LinearProgress.');\n }\n }\n return /*#__PURE__*/_jsxs(LinearProgressRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n role: \"progressbar\",\n ...rootProps,\n ref: ref,\n ...other,\n children: [variant === 'buffer' ? /*#__PURE__*/_jsx(LinearProgressDashed, {\n className: classes.dashed,\n ownerState: ownerState\n }) : null, /*#__PURE__*/_jsx(LinearProgressBar1, {\n className: classes.bar1,\n ownerState: ownerState,\n style: inlineStyles.bar1\n }), variant === 'determinate' ? null : /*#__PURE__*/_jsx(LinearProgressBar2, {\n className: classes.bar2,\n ownerState: ownerState,\n style: inlineStyles.bar2\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? LinearProgress.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'primary', 'secondary']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the progress indicator for the determinate and buffer variants.\n * Value between 0 and 100.\n */\n value: PropTypes.number,\n /**\n * The value for the buffer variant.\n * Value between 0 and 100.\n */\n valueBuffer: PropTypes.number,\n /**\n * The variant to use.\n * Use indeterminate or query when there is no progress value.\n * @default 'indeterminate'\n */\n variant: PropTypes.oneOf(['buffer', 'determinate', 'indeterminate', 'query'])\n} : void 0;\nexport default LinearProgress;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListItemAvatarUtilityClass(slot) {\n return generateUtilityClass('MuiListItemAvatar', slot);\n}\nconst listItemAvatarClasses = generateUtilityClasses('MuiListItemAvatar', ['root', 'alignItemsFlexStart']);\nexport default listItemAvatarClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport ListContext from \"../List/ListContext.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getListItemAvatarUtilityClass } from \"./listItemAvatarClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n classes\n } = ownerState;\n const slots = {\n root: ['root', alignItems === 'flex-start' && 'alignItemsFlexStart']\n };\n return composeClasses(slots, getListItemAvatarUtilityClass, classes);\n};\nconst ListItemAvatarRoot = styled('div', {\n name: 'MuiListItemAvatar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart];\n }\n})({\n minWidth: 56,\n flexShrink: 0,\n variants: [{\n props: {\n alignItems: 'flex-start'\n },\n style: {\n marginTop: 8\n }\n }]\n});\n\n/**\n * A simple wrapper to apply `List` styles to an `Avatar`.\n */\nconst ListItemAvatar = /*#__PURE__*/React.forwardRef(function ListItemAvatar(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiListItemAvatar'\n });\n const {\n className,\n ...other\n } = props;\n const context = React.useContext(ListContext);\n const ownerState = {\n ...props,\n alignItems: context.alignItems\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListItemAvatarRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemAvatar.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component, normally an `Avatar`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListItemAvatar;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport useEnhancedEffect from \"../utils/useEnhancedEffect.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport ListContext from \"../List/ListContext.js\";\nimport listItemButtonClasses, { getListItemButtonUtilityClass } from \"./listItemButtonClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dense && styles.dense, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters];\n};\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n classes,\n dense,\n disabled,\n disableGutters,\n divider,\n selected\n } = ownerState;\n const slots = {\n root: ['root', dense && 'dense', !disableGutters && 'gutters', divider && 'divider', disabled && 'disabled', alignItems === 'flex-start' && 'alignItemsFlexStart', selected && 'selected']\n };\n const composedClasses = composeClasses(slots, getListItemButtonUtilityClass, classes);\n return {\n ...classes,\n ...composedClasses\n };\n};\nconst ListItemButtonRoot = styled(ButtonBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiListItemButton',\n slot: 'Root',\n overridesResolver\n})(memoTheme(({\n theme\n}) => ({\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-start',\n alignItems: 'center',\n position: 'relative',\n textDecoration: 'none',\n minWidth: 0,\n boxSizing: 'border-box',\n textAlign: 'left',\n paddingTop: 8,\n paddingBottom: 8,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: (theme.vars || theme).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${listItemButtonClasses.selected}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n [`&.${listItemButtonClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n },\n [`&.${listItemButtonClasses.selected}:hover`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)\n }\n },\n [`&.${listItemButtonClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n [`&.${listItemButtonClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n },\n variants: [{\n props: ({\n ownerState\n }) => ownerState.divider,\n style: {\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`,\n backgroundClip: 'padding-box'\n }\n }, {\n props: {\n alignItems: 'flex-start'\n },\n style: {\n alignItems: 'flex-start'\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.disableGutters,\n style: {\n paddingLeft: 16,\n paddingRight: 16\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.dense,\n style: {\n paddingTop: 4,\n paddingBottom: 4\n }\n }]\n})));\nconst ListItemButton = /*#__PURE__*/React.forwardRef(function ListItemButton(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiListItemButton'\n });\n const {\n alignItems = 'center',\n autoFocus = false,\n component = 'div',\n children,\n dense = false,\n disableGutters = false,\n divider = false,\n focusVisibleClassName,\n selected = false,\n className,\n ...other\n } = props;\n const context = React.useContext(ListContext);\n const childContext = React.useMemo(() => ({\n dense: dense || context.dense || false,\n alignItems,\n disableGutters\n }), [alignItems, context.dense, dense, disableGutters]);\n const listItemRef = React.useRef(null);\n useEnhancedEffect(() => {\n if (autoFocus) {\n if (listItemRef.current) {\n listItemRef.current.focus();\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: Unable to set focus to a ListItemButton whose component has not been rendered.');\n }\n }\n }, [autoFocus]);\n const ownerState = {\n ...props,\n alignItems,\n dense: childContext.dense,\n disableGutters,\n divider,\n selected\n };\n const classes = useUtilityClasses(ownerState);\n const handleRef = useForkRef(listItemRef, ref);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsx(ListItemButtonRoot, {\n ref: handleRef,\n href: other.href || other.to\n // `ButtonBase` processes `href` or `to` if `component` is set to 'button'\n ,\n component: (other.href || other.to) && component === 'div' ? 'button' : component,\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ...other,\n classes: classes,\n children: children\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemButton.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Defines the `align-items` style property.\n * @default 'center'\n */\n alignItems: PropTypes.oneOf(['center', 'flex-start']),\n /**\n * If `true`, the list item is focused during the first mount.\n * Focus will also be triggered if the value changes from false to true.\n * @default false\n */\n autoFocus: PropTypes.bool,\n /**\n * The content of the component if a `ListItemSecondaryAction` is used it must\n * be the last child.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input is used.\n * The prop defaults to the value inherited from the parent List component.\n * @default false\n */\n dense: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * If `true`, a 1px light border is added to the bottom of the list item.\n * @default false\n */\n divider: PropTypes.bool,\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n /**\n * @ignore\n */\n href: PropTypes.string,\n /**\n * Use to apply selected styling.\n * @default false\n */\n selected: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListItemButton;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getPaginationUtilityClass(slot) {\n return generateUtilityClass('MuiPagination', slot);\n}\nconst paginationClasses = generateUtilityClasses('MuiPagination', ['root', 'ul', 'outlined', 'text']);\nexport default paginationClasses;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getPaginationItemUtilityClass(slot) {\n return generateUtilityClass('MuiPaginationItem', slot);\n}\nconst paginationItemClasses = generateUtilityClasses('MuiPaginationItem', ['root', 'page', 'sizeSmall', 'sizeLarge', 'text', 'textPrimary', 'textSecondary', 'outlined', 'outlinedPrimary', 'outlinedSecondary', 'rounded', 'ellipsis', 'firstLast', 'previousNext', 'focusVisible', 'disabled', 'selected', 'icon', 'colorPrimary', 'colorSecondary']);\nexport default paginationItemClasses;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"\n}), 'NavigateBefore');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"\n}), 'NavigateNext');","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport paginationItemClasses, { getPaginationItemUtilityClass } from \"./paginationItemClasses.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport FirstPageIcon from \"../internal/svg-icons/FirstPage.js\";\nimport LastPageIcon from \"../internal/svg-icons/LastPage.js\";\nimport NavigateBeforeIcon from \"../internal/svg-icons/NavigateBefore.js\";\nimport NavigateNextIcon from \"../internal/svg-icons/NavigateNext.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`size${capitalize(ownerState.size)}`], ownerState.variant === 'text' && styles[`text${capitalize(ownerState.color)}`], ownerState.variant === 'outlined' && styles[`outlined${capitalize(ownerState.color)}`], ownerState.shape === 'rounded' && styles.rounded, ownerState.type === 'page' && styles.page, (ownerState.type === 'start-ellipsis' || ownerState.type === 'end-ellipsis') && styles.ellipsis, (ownerState.type === 'previous' || ownerState.type === 'next') && styles.previousNext, (ownerState.type === 'first' || ownerState.type === 'last') && styles.firstLast];\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disabled,\n selected,\n size,\n shape,\n type,\n variant\n } = ownerState;\n const slots = {\n root: ['root', `size${capitalize(size)}`, variant, shape, color !== 'standard' && `color${capitalize(color)}`, color !== 'standard' && `${variant}${capitalize(color)}`, disabled && 'disabled', selected && 'selected', {\n page: 'page',\n first: 'firstLast',\n last: 'firstLast',\n 'start-ellipsis': 'ellipsis',\n 'end-ellipsis': 'ellipsis',\n previous: 'previousNext',\n next: 'previousNext'\n }[type]],\n icon: ['icon']\n };\n return composeClasses(slots, getPaginationItemUtilityClass, classes);\n};\nconst PaginationItemEllipsis = styled('div', {\n name: 'MuiPaginationItem',\n slot: 'Root',\n overridesResolver\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.body2,\n borderRadius: 32 / 2,\n textAlign: 'center',\n boxSizing: 'border-box',\n minWidth: 32,\n padding: '0 6px',\n margin: '0 3px',\n color: (theme.vars || theme).palette.text.primary,\n height: 'auto',\n [`&.${paginationItemClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n },\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n minWidth: 26,\n borderRadius: 26 / 2,\n margin: '0 1px',\n padding: '0 4px'\n }\n }, {\n props: {\n size: 'large'\n },\n style: {\n minWidth: 40,\n borderRadius: 40 / 2,\n padding: '0 10px',\n fontSize: theme.typography.pxToRem(15)\n }\n }]\n})));\nconst PaginationItemPage = styled(ButtonBase, {\n name: 'MuiPaginationItem',\n slot: 'Root',\n overridesResolver\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.body2,\n borderRadius: 32 / 2,\n textAlign: 'center',\n boxSizing: 'border-box',\n minWidth: 32,\n height: 32,\n padding: '0 6px',\n margin: '0 3px',\n color: (theme.vars || theme).palette.text.primary,\n [`&.${paginationItemClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n [`&.${paginationItemClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n },\n transition: theme.transitions.create(['color', 'background-color'], {\n duration: theme.transitions.duration.short\n }),\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${paginationItemClasses.selected}`]: {\n backgroundColor: (theme.vars || theme).palette.action.selected,\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette.action.selected\n }\n },\n [`&.${paginationItemClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n },\n [`&.${paginationItemClasses.disabled}`]: {\n opacity: 1,\n color: (theme.vars || theme).palette.action.disabled,\n backgroundColor: (theme.vars || theme).palette.action.selected\n }\n },\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n minWidth: 26,\n height: 26,\n borderRadius: 26 / 2,\n margin: '0 1px',\n padding: '0 4px'\n }\n }, {\n props: {\n size: 'large'\n },\n style: {\n minWidth: 40,\n height: 40,\n borderRadius: 40 / 2,\n padding: '0 10px',\n fontSize: theme.typography.pxToRem(15)\n }\n }, {\n props: {\n shape: 'rounded'\n },\n style: {\n borderRadius: (theme.vars || theme).shape.borderRadius\n }\n }, {\n props: {\n variant: 'outlined'\n },\n style: {\n border: theme.vars ? `1px solid rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : `1px solid ${theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'}`,\n [`&.${paginationItemClasses.selected}`]: {\n [`&.${paginationItemClasses.disabled}`]: {\n borderColor: (theme.vars || theme).palette.action.disabledBackground,\n color: (theme.vars || theme).palette.action.disabled\n }\n }\n }\n }, {\n props: {\n variant: 'text'\n },\n style: {\n [`&.${paginationItemClasses.selected}`]: {\n [`&.${paginationItemClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled\n }\n }\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['dark', 'contrastText'])).map(([color]) => ({\n props: {\n variant: 'text',\n color\n },\n style: {\n [`&.${paginationItemClasses.selected}`]: {\n color: (theme.vars || theme).palette[color].contrastText,\n backgroundColor: (theme.vars || theme).palette[color].main,\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette[color].dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette[color].main\n }\n },\n [`&.${paginationItemClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette[color].dark\n },\n [`&.${paginationItemClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled\n }\n }\n }\n })), ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['light'])).map(([color]) => ({\n props: {\n variant: 'outlined',\n color\n },\n style: {\n [`&.${paginationItemClasses.selected}`]: {\n color: (theme.vars || theme).palette[color].main,\n border: `1px solid ${theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / 0.5)` : alpha(theme.palette[color].main, 0.5)}`,\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.activatedOpacity})` : alpha(theme.palette[color].main, theme.palette.action.activatedOpacity),\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / calc(${theme.vars.palette.action.activatedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette[color].main, theme.palette.action.activatedOpacity + theme.palette.action.focusOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${paginationItemClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / calc(${theme.vars.palette.action.activatedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette[color].main, theme.palette.action.activatedOpacity + theme.palette.action.focusOpacity)\n }\n }\n }\n }))]\n})));\nconst PaginationItemPageIcon = styled('div', {\n name: 'MuiPaginationItem',\n slot: 'Icon',\n overridesResolver: (props, styles) => styles.icon\n})(memoTheme(({\n theme\n}) => ({\n fontSize: theme.typography.pxToRem(20),\n margin: '0 -8px',\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n fontSize: theme.typography.pxToRem(18)\n }\n }, {\n props: {\n size: 'large'\n },\n style: {\n fontSize: theme.typography.pxToRem(22)\n }\n }]\n})));\nconst PaginationItem = /*#__PURE__*/React.forwardRef(function PaginationItem(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiPaginationItem'\n });\n const {\n className,\n color = 'standard',\n component,\n components = {},\n disabled = false,\n page,\n selected = false,\n shape = 'circular',\n size = 'medium',\n slots = {},\n slotProps = {},\n type = 'page',\n variant = 'text',\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n disabled,\n selected,\n shape,\n size,\n type,\n variant\n };\n const isRtl = useRtl();\n const classes = useUtilityClasses(ownerState);\n const externalForwardedProps = {\n slots: {\n previous: slots.previous ?? components.previous,\n next: slots.next ?? components.next,\n first: slots.first ?? components.first,\n last: slots.last ?? components.last\n },\n slotProps\n };\n const [PreviousSlot, previousSlotProps] = useSlot('previous', {\n elementType: NavigateBeforeIcon,\n externalForwardedProps,\n ownerState\n });\n const [NextSlot, nextSlotProps] = useSlot('next', {\n elementType: NavigateNextIcon,\n externalForwardedProps,\n ownerState\n });\n const [FirstSlot, firstSlotProps] = useSlot('first', {\n elementType: FirstPageIcon,\n externalForwardedProps,\n ownerState\n });\n const [LastSlot, lastSlotProps] = useSlot('last', {\n elementType: LastPageIcon,\n externalForwardedProps,\n ownerState\n });\n const rtlAwareType = isRtl ? {\n previous: 'next',\n next: 'previous',\n first: 'last',\n last: 'first'\n }[type] : type;\n const IconSlot = {\n previous: PreviousSlot,\n next: NextSlot,\n first: FirstSlot,\n last: LastSlot\n }[rtlAwareType];\n const iconSlotProps = {\n previous: previousSlotProps,\n next: nextSlotProps,\n first: firstSlotProps,\n last: lastSlotProps\n }[rtlAwareType];\n return type === 'start-ellipsis' || type === 'end-ellipsis' ? /*#__PURE__*/_jsx(PaginationItemEllipsis, {\n ref: ref,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n children: \"\\u2026\"\n }) : /*#__PURE__*/_jsxs(PaginationItemPage, {\n ref: ref,\n ownerState: ownerState,\n component: component,\n disabled: disabled,\n className: clsx(classes.root, className),\n ...other,\n children: [type === 'page' && page, IconSlot ? /*#__PURE__*/_jsx(PaginationItemPageIcon, {\n ...iconSlotProps,\n className: classes.icon,\n as: IconSlot\n }) : null]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? PaginationItem.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The active color.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'standard'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'standard']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n * @deprecated use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\n components: PropTypes.shape({\n first: PropTypes.elementType,\n last: PropTypes.elementType,\n next: PropTypes.elementType,\n previous: PropTypes.elementType\n }),\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * The current page number.\n */\n page: PropTypes.node,\n /**\n * If `true` the pagination item is selected.\n * @default false\n */\n selected: PropTypes.bool,\n /**\n * The shape of the pagination item.\n * @default 'circular'\n */\n shape: PropTypes.oneOf(['circular', 'rounded']),\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n first: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n last: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n next: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n previous: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n first: PropTypes.elementType,\n last: PropTypes.elementType,\n next: PropTypes.elementType,\n previous: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The type of pagination item.\n * @default 'page'\n */\n type: PropTypes.oneOf(['end-ellipsis', 'first', 'last', 'next', 'page', 'previous', 'start-ellipsis']),\n /**\n * The variant to use.\n * @default 'text'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['outlined', 'text']), PropTypes.string])\n} : void 0;\nexport default PaginationItem;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport integerPropType from '@mui/utils/integerPropType';\nimport { getPaginationUtilityClass } from \"./paginationClasses.js\";\nimport usePagination from \"../usePagination/index.js\";\nimport PaginationItem from \"../PaginationItem/index.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant\n } = ownerState;\n const slots = {\n root: ['root', variant],\n ul: ['ul']\n };\n return composeClasses(slots, getPaginationUtilityClass, classes);\n};\nconst PaginationRoot = styled('nav', {\n name: 'MuiPagination',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant]];\n }\n})({});\nconst PaginationUl = styled('ul', {\n name: 'MuiPagination',\n slot: 'Ul',\n overridesResolver: (props, styles) => styles.ul\n})({\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n padding: 0,\n margin: 0,\n listStyle: 'none'\n});\nfunction defaultGetAriaLabel(type, page, selected) {\n if (type === 'page') {\n return `${selected ? '' : 'Go to '}page ${page}`;\n }\n return `Go to ${type} page`;\n}\nconst Pagination = /*#__PURE__*/React.forwardRef(function Pagination(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiPagination'\n });\n const {\n boundaryCount = 1,\n className,\n color = 'standard',\n count = 1,\n defaultPage = 1,\n disabled = false,\n getItemAriaLabel = defaultGetAriaLabel,\n hideNextButton = false,\n hidePrevButton = false,\n onChange,\n page,\n renderItem = item => /*#__PURE__*/_jsx(PaginationItem, {\n ...item\n }),\n shape = 'circular',\n showFirstButton = false,\n showLastButton = false,\n siblingCount = 1,\n size = 'medium',\n variant = 'text',\n ...other\n } = props;\n const {\n items\n } = usePagination({\n ...props,\n componentName: 'Pagination'\n });\n const ownerState = {\n ...props,\n boundaryCount,\n color,\n count,\n defaultPage,\n disabled,\n getItemAriaLabel,\n hideNextButton,\n hidePrevButton,\n renderItem,\n shape,\n showFirstButton,\n showLastButton,\n siblingCount,\n size,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(PaginationRoot, {\n \"aria-label\": \"pagination navigation\",\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other,\n children: /*#__PURE__*/_jsx(PaginationUl, {\n className: classes.ul,\n ownerState: ownerState,\n children: items.map((item, index) => /*#__PURE__*/_jsx(\"li\", {\n children: renderItem({\n ...item,\n color,\n 'aria-label': getItemAriaLabel(item.type, item.page, item.selected),\n shape,\n size,\n variant\n })\n }, index))\n })\n });\n});\n\n// @default tags synced with default values from usePagination\n\nprocess.env.NODE_ENV !== \"production\" ? Pagination.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Number of always visible pages at the beginning and end.\n * @default 1\n */\n boundaryCount: integerPropType,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The active color.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'standard'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'standard']), PropTypes.string]),\n /**\n * The total number of pages.\n * @default 1\n */\n count: integerPropType,\n /**\n * The page selected by default when the component is uncontrolled.\n * @default 1\n */\n defaultPage: integerPropType,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current page.\n * This is important for screen reader users.\n *\n * For localization purposes, you can use the provided [translations](https://mui.com/material-ui/guides/localization/).\n * @param {string} type The link or button type to format ('page' | 'first' | 'last' | 'next' | 'previous' | 'start-ellipsis' | 'end-ellipsis'). Defaults to 'page'.\n * @param {number | null} page The page number to format.\n * @param {boolean} selected If true, the current page is selected.\n * @returns {string}\n */\n getItemAriaLabel: PropTypes.func,\n /**\n * If `true`, hide the next-page button.\n * @default false\n */\n hideNextButton: PropTypes.bool,\n /**\n * If `true`, hide the previous-page button.\n * @default false\n */\n hidePrevButton: PropTypes.bool,\n /**\n * Callback fired when the page is changed.\n *\n * @param {React.ChangeEvent<unknown>} event The event source of the callback.\n * @param {number} page The page selected.\n */\n onChange: PropTypes.func,\n /**\n * The current page. Unlike `TablePagination`, which starts numbering from `0`, this pagination starts from `1`.\n */\n page: integerPropType,\n /**\n * Render the item.\n * @param {PaginationRenderItemParams} params The props to spread on a PaginationItem.\n * @returns {ReactNode}\n * @default (item) => <PaginationItem {...item} />\n */\n renderItem: PropTypes.func,\n /**\n * The shape of the pagination items.\n * @default 'circular'\n */\n shape: PropTypes.oneOf(['circular', 'rounded']),\n /**\n * If `true`, show the first-page button.\n * @default false\n */\n showFirstButton: PropTypes.bool,\n /**\n * If `true`, show the last-page button.\n * @default false\n */\n showLastButton: PropTypes.bool,\n /**\n * Number of always visible pages before and after the current page.\n * @default 1\n */\n siblingCount: integerPropType,\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'text'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['outlined', 'text']), PropTypes.string])\n} : void 0;\nexport default Pagination;","'use client';\n\nimport useControlled from '@mui/utils/useControlled';\nexport default function usePagination(props = {}) {\n // keep default values in sync with @default tags in Pagination.propTypes\n const {\n boundaryCount = 1,\n componentName = 'usePagination',\n count = 1,\n defaultPage = 1,\n disabled = false,\n hideNextButton = false,\n hidePrevButton = false,\n onChange: handleChange,\n page: pageProp,\n showFirstButton = false,\n showLastButton = false,\n siblingCount = 1,\n ...other\n } = props;\n const [page, setPageState] = useControlled({\n controlled: pageProp,\n default: defaultPage,\n name: componentName,\n state: 'page'\n });\n const handleClick = (event, value) => {\n if (!pageProp) {\n setPageState(value);\n }\n if (handleChange) {\n handleChange(event, value);\n }\n };\n\n // https://dev.to/namirsab/comment/2050\n const range = (start, end) => {\n const length = end - start + 1;\n return Array.from({\n length\n }, (_, i) => start + i);\n };\n const startPages = range(1, Math.min(boundaryCount, count));\n const endPages = range(Math.max(count - boundaryCount + 1, boundaryCount + 1), count);\n const siblingsStart = Math.max(Math.min(\n // Natural start\n page - siblingCount,\n // Lower boundary when page is high\n count - boundaryCount - siblingCount * 2 - 1),\n // Greater than startPages\n boundaryCount + 2);\n const siblingsEnd = Math.min(Math.max(\n // Natural end\n page + siblingCount,\n // Upper boundary when page is low\n boundaryCount + siblingCount * 2 + 2),\n // Less than endPages\n count - boundaryCount - 1);\n\n // Basic list of items to render\n // for example itemList = ['first', 'previous', 1, 'ellipsis', 4, 5, 6, 'ellipsis', 10, 'next', 'last']\n const itemList = [...(showFirstButton ? ['first'] : []), ...(hidePrevButton ? [] : ['previous']), ...startPages,\n // Start ellipsis\n // eslint-disable-next-line no-nested-ternary\n ...(siblingsStart > boundaryCount + 2 ? ['start-ellipsis'] : boundaryCount + 1 < count - boundaryCount ? [boundaryCount + 1] : []),\n // Sibling pages\n ...range(siblingsStart, siblingsEnd),\n // End ellipsis\n // eslint-disable-next-line no-nested-ternary\n ...(siblingsEnd < count - boundaryCount - 1 ? ['end-ellipsis'] : count - boundaryCount > boundaryCount ? [count - boundaryCount] : []), ...endPages, ...(hideNextButton ? [] : ['next']), ...(showLastButton ? ['last'] : [])];\n\n // Map the button type to its page number\n const buttonPage = type => {\n switch (type) {\n case 'first':\n return 1;\n case 'previous':\n return page - 1;\n case 'next':\n return page + 1;\n case 'last':\n return count;\n default:\n return null;\n }\n };\n\n // Convert the basic item list to PaginationItem props objects\n const items = itemList.map(item => {\n return typeof item === 'number' ? {\n onClick: event => {\n handleClick(event, item);\n },\n type: 'page',\n page: item,\n selected: item === page,\n disabled,\n 'aria-current': item === page ? 'page' : undefined\n } : {\n onClick: event => {\n handleClick(event, buttonPage(item));\n },\n type: item,\n page: buttonPage(item),\n selected: false,\n disabled: disabled || !item.includes('ellipsis') && (item === 'next' || item === 'last' ? page >= count : page <= 1)\n };\n });\n return {\n items,\n ...other\n };\n}","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport deepmerge from '@mui/utils/deepmerge';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport composeClasses from '@mui/utils/composeClasses';\nimport systemStyled from \"../styled/index.js\";\nimport useThemePropsSystem from \"../useThemeProps/index.js\";\nimport { extendSxProp } from \"../styleFunctionSx/index.js\";\nimport createTheme from \"../createTheme/index.js\";\nimport { handleBreakpoints, mergeBreakpointsInOrder, resolveBreakpointValues } from \"../breakpoints/index.js\";\nimport { createUnarySpacing, getValue } from \"../spacing/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\n// widening Theme to any so that the consumer can own the theme structure.\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n});\nfunction useThemePropsDefault(props) {\n return useThemePropsSystem({\n props,\n name: 'MuiStack',\n defaultTheme\n });\n}\n\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n if (index < childrenArray.length - 1) {\n output.push(/*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n return output;\n }, []);\n}\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = {\n display: 'flex',\n flexDirection: 'column',\n ...handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n }))\n };\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n if (typeof directionValues === 'object') {\n Object.keys(directionValues).forEach((breakpoint, index, breakpoints) => {\n const directionValue = directionValues[breakpoint];\n if (!directionValue) {\n const previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';\n directionValues[breakpoint] = previousDirectionValue;\n }\n });\n }\n const styleFromPropValue = (propValue, breakpoint) => {\n if (ownerState.useFlexGap) {\n return {\n gap: getValue(transformer, propValue)\n };\n }\n return {\n // The useFlexGap={false} implement relies on each child to give up control of the margin.\n // We need to reset the margin to avoid double spacing.\n '& > :not(style):not(style)': {\n margin: 0\n },\n '& > :not(style) ~ :not(style)': {\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n styles = mergeBreakpointsInOrder(theme.breakpoints, styles);\n return styles;\n};\nexport default function createStack(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiStack'\n } = options;\n const useUtilityClasses = () => {\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, slot => generateUtilityClass(componentName, slot), {});\n };\n const StackRoot = createStyledComponent(style);\n const Stack = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useThemeProps(inProps);\n const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children,\n className,\n useFlexGap = false,\n ...other\n } = props;\n const ownerState = {\n direction,\n spacing,\n useFlexGap\n };\n const classes = useUtilityClasses();\n return /*#__PURE__*/_jsx(StackRoot, {\n as: component,\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className),\n ...other,\n children: divider ? joinChildren(children, divider) : children\n });\n });\n process.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n divider: PropTypes.node,\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Stack;\n}","'use client';\n\nimport PropTypes from 'prop-types';\nimport { createStack } from '@mui/system';\nimport styled from \"../styles/styled.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nconst Stack = createStack({\n createStyledComponent: styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n }),\n useThemeProps: inProps => useDefaultProps({\n props: inProps,\n name: 'MuiStack'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.\n *\n * While CSS `gap` removes the [known limitations](https://mui.com/joy-ui/react-stack/#limitations),\n * it is not fully supported in some browsers. We recommend checking https://caniuse.com/?search=flex%20gap before using this flag.\n *\n * To enable this flag globally, follow the [theme's default props](https://mui.com/material-ui/customization/theme-components/#default-props) configuration.\n * @default false\n */\n useFlexGap: PropTypes.bool\n} : void 0;\nexport default Stack;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableUtilityClass(slot) {\n return generateUtilityClass('MuiTable', slot);\n}\nconst tableClasses = generateUtilityClasses('MuiTable', ['root', 'stickyHeader']);\nexport default tableClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport TableContext from \"./TableContext.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getTableUtilityClass } from \"./tableClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n stickyHeader\n } = ownerState;\n const slots = {\n root: ['root', stickyHeader && 'stickyHeader']\n };\n return composeClasses(slots, getTableUtilityClass, classes);\n};\nconst TableRoot = styled('table', {\n name: 'MuiTable',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.stickyHeader && styles.stickyHeader];\n }\n})(memoTheme(({\n theme\n}) => ({\n display: 'table',\n width: '100%',\n borderCollapse: 'collapse',\n borderSpacing: 0,\n '& caption': {\n ...theme.typography.body2,\n padding: theme.spacing(2),\n color: (theme.vars || theme).palette.text.secondary,\n textAlign: 'left',\n captionSide: 'bottom'\n },\n variants: [{\n props: ({\n ownerState\n }) => ownerState.stickyHeader,\n style: {\n borderCollapse: 'separate'\n }\n }]\n})));\nconst defaultComponent = 'table';\nconst Table = /*#__PURE__*/React.forwardRef(function Table(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTable'\n });\n const {\n className,\n component = defaultComponent,\n padding = 'normal',\n size = 'medium',\n stickyHeader = false,\n ...other\n } = props;\n const ownerState = {\n ...props,\n component,\n padding,\n size,\n stickyHeader\n };\n const classes = useUtilityClasses(ownerState);\n const table = React.useMemo(() => ({\n padding,\n size,\n stickyHeader\n }), [padding, size, stickyHeader]);\n return /*#__PURE__*/_jsx(TableContext.Provider, {\n value: table,\n children: /*#__PURE__*/_jsx(TableRoot, {\n as: component,\n role: component === defaultComponent ? null : 'table',\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ...other\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Table.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the table, normally `TableHead` and `TableBody`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Allows TableCells to inherit padding of the Table.\n * @default 'normal'\n */\n padding: PropTypes.oneOf(['checkbox', 'none', 'normal']),\n /**\n * Allows TableCells to inherit size of the Table.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * Set the header sticky.\n * @default false\n */\n stickyHeader: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Table;","'use client';\n\nimport * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst TableContext = /*#__PURE__*/React.createContext();\nif (process.env.NODE_ENV !== 'production') {\n TableContext.displayName = 'TableContext';\n}\nexport default TableContext;","import * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst Tablelvl2Context = /*#__PURE__*/React.createContext();\nif (process.env.NODE_ENV !== 'production') {\n Tablelvl2Context.displayName = 'Tablelvl2Context';\n}\nexport default Tablelvl2Context;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableBodyUtilityClass(slot) {\n return generateUtilityClass('MuiTableBody', slot);\n}\nconst tableBodyClasses = generateUtilityClasses('MuiTableBody', ['root']);\nexport default tableBodyClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport Tablelvl2Context from \"../Table/Tablelvl2Context.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getTableBodyUtilityClass } from \"./tableBodyClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTableBodyUtilityClass, classes);\n};\nconst TableBodyRoot = styled('tbody', {\n name: 'MuiTableBody',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'table-row-group'\n});\nconst tablelvl2 = {\n variant: 'body'\n};\nconst defaultComponent = 'tbody';\nconst TableBody = /*#__PURE__*/React.forwardRef(function TableBody(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTableBody'\n });\n const {\n className,\n component = defaultComponent,\n ...other\n } = props;\n const ownerState = {\n ...props,\n component\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(Tablelvl2Context.Provider, {\n value: tablelvl2,\n children: /*#__PURE__*/_jsx(TableBodyRoot, {\n className: clsx(classes.root, className),\n as: component,\n ref: ref,\n role: component === defaultComponent ? null : 'rowgroup',\n ownerState: ownerState,\n ...other\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableBody.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component, normally `TableRow`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableBody;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableCellUtilityClass(slot) {\n return generateUtilityClass('MuiTableCell', slot);\n}\nconst tableCellClasses = generateUtilityClasses('MuiTableCell', ['root', 'head', 'body', 'footer', 'sizeSmall', 'sizeMedium', 'paddingCheckbox', 'paddingNone', 'alignLeft', 'alignCenter', 'alignRight', 'alignJustify', 'stickyHeader']);\nexport default tableCellClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { darken, alpha, lighten } from '@mui/system/colorManipulator';\nimport capitalize from \"../utils/capitalize.js\";\nimport TableContext from \"../Table/TableContext.js\";\nimport Tablelvl2Context from \"../Table/Tablelvl2Context.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport tableCellClasses, { getTableCellUtilityClass } from \"./tableCellClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n align,\n padding,\n size,\n stickyHeader\n } = ownerState;\n const slots = {\n root: ['root', variant, stickyHeader && 'stickyHeader', align !== 'inherit' && `align${capitalize(align)}`, padding !== 'normal' && `padding${capitalize(padding)}`, `size${capitalize(size)}`]\n };\n return composeClasses(slots, getTableCellUtilityClass, classes);\n};\nconst TableCellRoot = styled('td', {\n name: 'MuiTableCell',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`size${capitalize(ownerState.size)}`], ownerState.padding !== 'normal' && styles[`padding${capitalize(ownerState.padding)}`], ownerState.align !== 'inherit' && styles[`align${capitalize(ownerState.align)}`], ownerState.stickyHeader && styles.stickyHeader];\n }\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.body2,\n display: 'table-cell',\n verticalAlign: 'inherit',\n // Workaround for a rendering bug with spanned columns in Chrome 62.0.\n // Removes the alpha (sets it to 1), and lightens or darkens the theme color.\n borderBottom: theme.vars ? `1px solid ${theme.vars.palette.TableCell.border}` : `1px solid\n ${theme.palette.mode === 'light' ? lighten(alpha(theme.palette.divider, 1), 0.88) : darken(alpha(theme.palette.divider, 1), 0.68)}`,\n textAlign: 'left',\n padding: 16,\n variants: [{\n props: {\n variant: 'head'\n },\n style: {\n color: (theme.vars || theme).palette.text.primary,\n lineHeight: theme.typography.pxToRem(24),\n fontWeight: theme.typography.fontWeightMedium\n }\n }, {\n props: {\n variant: 'body'\n },\n style: {\n color: (theme.vars || theme).palette.text.primary\n }\n }, {\n props: {\n variant: 'footer'\n },\n style: {\n color: (theme.vars || theme).palette.text.secondary,\n lineHeight: theme.typography.pxToRem(21),\n fontSize: theme.typography.pxToRem(12)\n }\n }, {\n props: {\n size: 'small'\n },\n style: {\n padding: '6px 16px',\n [`&.${tableCellClasses.paddingCheckbox}`]: {\n width: 24,\n // prevent the checkbox column from growing\n padding: '0 12px 0 16px',\n '& > *': {\n padding: 0\n }\n }\n }\n }, {\n props: {\n padding: 'checkbox'\n },\n style: {\n width: 48,\n // prevent the checkbox column from growing\n padding: '0 0 0 4px'\n }\n }, {\n props: {\n padding: 'none'\n },\n style: {\n padding: 0\n }\n }, {\n props: {\n align: 'left'\n },\n style: {\n textAlign: 'left'\n }\n }, {\n props: {\n align: 'center'\n },\n style: {\n textAlign: 'center'\n }\n }, {\n props: {\n align: 'right'\n },\n style: {\n textAlign: 'right',\n flexDirection: 'row-reverse'\n }\n }, {\n props: {\n align: 'justify'\n },\n style: {\n textAlign: 'justify'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.stickyHeader,\n style: {\n position: 'sticky',\n top: 0,\n zIndex: 2,\n backgroundColor: (theme.vars || theme).palette.background.default\n }\n }]\n})));\n\n/**\n * The component renders a `<th>` element when the parent context is a header\n * or otherwise a `<td>` element.\n */\nconst TableCell = /*#__PURE__*/React.forwardRef(function TableCell(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTableCell'\n });\n const {\n align = 'inherit',\n className,\n component: componentProp,\n padding: paddingProp,\n scope: scopeProp,\n size: sizeProp,\n sortDirection,\n variant: variantProp,\n ...other\n } = props;\n const table = React.useContext(TableContext);\n const tablelvl2 = React.useContext(Tablelvl2Context);\n const isHeadCell = tablelvl2 && tablelvl2.variant === 'head';\n let component;\n if (componentProp) {\n component = componentProp;\n } else {\n component = isHeadCell ? 'th' : 'td';\n }\n let scope = scopeProp;\n // scope is not a valid attribute for <td/> elements.\n // source: https://html.spec.whatwg.org/multipage/tables.html#the-td-element\n if (component === 'td') {\n scope = undefined;\n } else if (!scope && isHeadCell) {\n scope = 'col';\n }\n const variant = variantProp || tablelvl2 && tablelvl2.variant;\n const ownerState = {\n ...props,\n align,\n component,\n padding: paddingProp || (table && table.padding ? table.padding : 'normal'),\n size: sizeProp || (table && table.size ? table.size : 'medium'),\n sortDirection,\n stickyHeader: variant === 'head' && table && table.stickyHeader,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n let ariaSort = null;\n if (sortDirection) {\n ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';\n }\n return /*#__PURE__*/_jsx(TableCellRoot, {\n as: component,\n ref: ref,\n className: clsx(classes.root, className),\n \"aria-sort\": ariaSort,\n scope: scope,\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableCell.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Set the text-align on the table cell content.\n *\n * Monetary or generally number fields **should be right aligned** as that allows\n * you to add them up quickly in your head without having to worry about decimals.\n * @default 'inherit'\n */\n align: PropTypes.oneOf(['center', 'inherit', 'justify', 'left', 'right']),\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Sets the padding applied to the cell.\n * The prop defaults to the value (`'default'`) inherited from the parent Table component.\n */\n padding: PropTypes.oneOf(['checkbox', 'none', 'normal']),\n /**\n * Set scope attribute.\n */\n scope: PropTypes.string,\n /**\n * Specify the size of the cell.\n * The prop defaults to the value (`'medium'`) inherited from the parent Table component.\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * Set aria-sort direction.\n */\n sortDirection: PropTypes.oneOf(['asc', 'desc', false]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Specify the cell type.\n * The prop defaults to the value inherited from the parent TableHead, TableBody, or TableFooter components.\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['body', 'footer', 'head']), PropTypes.string])\n} : void 0;\nexport default TableCell;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableContainerUtilityClass(slot) {\n return generateUtilityClass('MuiTableContainer', slot);\n}\nconst tableContainerClasses = generateUtilityClasses('MuiTableContainer', ['root']);\nexport default tableContainerClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getTableContainerUtilityClass } from \"./tableContainerClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTableContainerUtilityClass, classes);\n};\nconst TableContainerRoot = styled('div', {\n name: 'MuiTableContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n width: '100%',\n overflowX: 'auto'\n});\nconst TableContainer = /*#__PURE__*/React.forwardRef(function TableContainer(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTableContainer'\n });\n const {\n className,\n component = 'div',\n ...other\n } = props;\n const ownerState = {\n ...props,\n component\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(TableContainerRoot, {\n ref: ref,\n as: component,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableContainer.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component, normally `Table`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableContainer;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableHeadUtilityClass(slot) {\n return generateUtilityClass('MuiTableHead', slot);\n}\nconst tableHeadClasses = generateUtilityClasses('MuiTableHead', ['root']);\nexport default tableHeadClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport Tablelvl2Context from \"../Table/Tablelvl2Context.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getTableHeadUtilityClass } from \"./tableHeadClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTableHeadUtilityClass, classes);\n};\nconst TableHeadRoot = styled('thead', {\n name: 'MuiTableHead',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'table-header-group'\n});\nconst tablelvl2 = {\n variant: 'head'\n};\nconst defaultComponent = 'thead';\nconst TableHead = /*#__PURE__*/React.forwardRef(function TableHead(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTableHead'\n });\n const {\n className,\n component = defaultComponent,\n ...other\n } = props;\n const ownerState = {\n ...props,\n component\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(Tablelvl2Context.Provider, {\n value: tablelvl2,\n children: /*#__PURE__*/_jsx(TableHeadRoot, {\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n role: component === defaultComponent ? null : 'rowgroup',\n ownerState: ownerState,\n ...other\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableHead.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component, normally `TableRow`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableHead;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport KeyboardArrowLeft from \"../internal/svg-icons/KeyboardArrowLeft.js\";\nimport KeyboardArrowRight from \"../internal/svg-icons/KeyboardArrowRight.js\";\nimport IconButton from \"../IconButton/index.js\";\nimport LastPageIconDefault from \"../internal/svg-icons/LastPage.js\";\nimport FirstPageIconDefault from \"../internal/svg-icons/FirstPage.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst TablePaginationActions = /*#__PURE__*/React.forwardRef(function TablePaginationActions(props, ref) {\n const {\n backIconButtonProps,\n count,\n disabled = false,\n getItemAriaLabel,\n nextIconButtonProps,\n onPageChange,\n page,\n rowsPerPage,\n showFirstButton,\n showLastButton,\n slots = {},\n slotProps = {},\n ...other\n } = props;\n const isRtl = useRtl();\n const handleFirstPageButtonClick = event => {\n onPageChange(event, 0);\n };\n const handleBackButtonClick = event => {\n onPageChange(event, page - 1);\n };\n const handleNextButtonClick = event => {\n onPageChange(event, page + 1);\n };\n const handleLastPageButtonClick = event => {\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));\n };\n const FirstButton = slots.firstButton ?? IconButton;\n const LastButton = slots.lastButton ?? IconButton;\n const NextButton = slots.nextButton ?? IconButton;\n const PreviousButton = slots.previousButton ?? IconButton;\n const FirstButtonIcon = slots.firstButtonIcon ?? FirstPageIconDefault;\n const LastButtonIcon = slots.lastButtonIcon ?? LastPageIconDefault;\n const NextButtonIcon = slots.nextButtonIcon ?? KeyboardArrowRight;\n const PreviousButtonIcon = slots.previousButtonIcon ?? KeyboardArrowLeft;\n const FirstButtonSlot = isRtl ? LastButton : FirstButton;\n const PreviousButtonSlot = isRtl ? NextButton : PreviousButton;\n const NextButtonSlot = isRtl ? PreviousButton : NextButton;\n const LastButtonSlot = isRtl ? FirstButton : LastButton;\n const firstButtonSlotProps = isRtl ? slotProps.lastButton : slotProps.firstButton;\n const previousButtonSlotProps = isRtl ? slotProps.nextButton : slotProps.previousButton;\n const nextButtonSlotProps = isRtl ? slotProps.previousButton : slotProps.nextButton;\n const lastButtonSlotProps = isRtl ? slotProps.firstButton : slotProps.lastButton;\n return /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n ...other,\n children: [showFirstButton && /*#__PURE__*/_jsx(FirstButtonSlot, {\n onClick: handleFirstPageButtonClick,\n disabled: disabled || page === 0,\n \"aria-label\": getItemAriaLabel('first', page),\n title: getItemAriaLabel('first', page),\n ...firstButtonSlotProps,\n children: isRtl ? /*#__PURE__*/_jsx(LastButtonIcon, {\n ...slotProps.lastButtonIcon\n }) : /*#__PURE__*/_jsx(FirstButtonIcon, {\n ...slotProps.firstButtonIcon\n })\n }), /*#__PURE__*/_jsx(PreviousButtonSlot, {\n onClick: handleBackButtonClick,\n disabled: disabled || page === 0,\n color: \"inherit\",\n \"aria-label\": getItemAriaLabel('previous', page),\n title: getItemAriaLabel('previous', page),\n ...(previousButtonSlotProps ?? backIconButtonProps),\n children: isRtl ? /*#__PURE__*/_jsx(NextButtonIcon, {\n ...slotProps.nextButtonIcon\n }) : /*#__PURE__*/_jsx(PreviousButtonIcon, {\n ...slotProps.previousButtonIcon\n })\n }), /*#__PURE__*/_jsx(NextButtonSlot, {\n onClick: handleNextButtonClick,\n disabled: disabled || (count !== -1 ? page >= Math.ceil(count / rowsPerPage) - 1 : false),\n color: \"inherit\",\n \"aria-label\": getItemAriaLabel('next', page),\n title: getItemAriaLabel('next', page),\n ...(nextButtonSlotProps ?? nextIconButtonProps),\n children: isRtl ? /*#__PURE__*/_jsx(PreviousButtonIcon, {\n ...slotProps.previousButtonIcon\n }) : /*#__PURE__*/_jsx(NextButtonIcon, {\n ...slotProps.nextButtonIcon\n })\n }), showLastButton && /*#__PURE__*/_jsx(LastButtonSlot, {\n onClick: handleLastPageButtonClick,\n disabled: disabled || page >= Math.ceil(count / rowsPerPage) - 1,\n \"aria-label\": getItemAriaLabel('last', page),\n title: getItemAriaLabel('last', page),\n ...lastButtonSlotProps,\n children: isRtl ? /*#__PURE__*/_jsx(FirstButtonIcon, {\n ...slotProps.firstButtonIcon\n }) : /*#__PURE__*/_jsx(LastButtonIcon, {\n ...slotProps.lastButtonIcon\n })\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TablePaginationActions.propTypes = {\n /**\n * Props applied to the back arrow [`IconButton`](/material-ui/api/icon-button/) element.\n */\n backIconButtonProps: PropTypes.object,\n /**\n * The total number of rows.\n */\n count: PropTypes.number.isRequired,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current page.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n *\n * @param {string} type The link or button type to format ('page' | 'first' | 'last' | 'next' | 'previous'). Defaults to 'page'.\n * @param {number} page The page number to format.\n * @returns {string}\n */\n getItemAriaLabel: PropTypes.func.isRequired,\n /**\n * Props applied to the next arrow [`IconButton`](/material-ui/api/icon-button/) element.\n */\n nextIconButtonProps: PropTypes.object,\n /**\n * Callback fired when the page is changed.\n *\n * @param {object} event The event source of the callback.\n * @param {number} page The page selected.\n */\n onPageChange: PropTypes.func.isRequired,\n /**\n * The zero-based index of the current page.\n */\n page: PropTypes.number.isRequired,\n /**\n * The number of rows per page.\n */\n rowsPerPage: PropTypes.number.isRequired,\n /**\n * If `true`, show the first-page button.\n */\n showFirstButton: PropTypes.bool.isRequired,\n /**\n * If `true`, show the last-page button.\n */\n showLastButton: PropTypes.bool.isRequired,\n /**\n * The props used for each slot inside the TablePaginationActions.\n * @default {}\n */\n slotProps: PropTypes.shape({\n firstButton: PropTypes.object,\n firstButtonIcon: PropTypes.object,\n lastButton: PropTypes.object,\n lastButtonIcon: PropTypes.object,\n nextButton: PropTypes.object,\n nextButtonIcon: PropTypes.object,\n previousButton: PropTypes.object,\n previousButtonIcon: PropTypes.object\n }),\n /**\n * The components used for each slot inside the TablePaginationActions.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n firstButton: PropTypes.elementType,\n firstButtonIcon: PropTypes.elementType,\n lastButton: PropTypes.elementType,\n lastButtonIcon: PropTypes.elementType,\n nextButton: PropTypes.elementType,\n nextButtonIcon: PropTypes.elementType,\n previousButton: PropTypes.elementType,\n previousButtonIcon: PropTypes.elementType\n })\n} : void 0;\nexport default TablePaginationActions;","'use client';\n\nvar _InputBase;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport integerPropType from '@mui/utils/integerPropType';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport InputBase from \"../InputBase/index.js\";\nimport MenuItem from \"../MenuItem/index.js\";\nimport Select from \"../Select/index.js\";\nimport TableCell from \"../TableCell/index.js\";\nimport Toolbar from \"../Toolbar/index.js\";\nimport TablePaginationActions from \"./TablePaginationActions.js\";\nimport useId from \"../utils/useId.js\";\nimport tablePaginationClasses, { getTablePaginationUtilityClass } from \"./tablePaginationClasses.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nconst TablePaginationRoot = styled(TableCell, {\n name: 'MuiTablePagination',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(memoTheme(({\n theme\n}) => ({\n overflow: 'auto',\n color: (theme.vars || theme).palette.text.primary,\n fontSize: theme.typography.pxToRem(14),\n // Increase the specificity to override TableCell.\n '&:last-child': {\n padding: 0\n }\n})));\nconst TablePaginationToolbar = styled(Toolbar, {\n name: 'MuiTablePagination',\n slot: 'Toolbar',\n overridesResolver: (props, styles) => ({\n [`& .${tablePaginationClasses.actions}`]: styles.actions,\n ...styles.toolbar\n })\n})(memoTheme(({\n theme\n}) => ({\n minHeight: 52,\n paddingRight: 2,\n [`${theme.breakpoints.up('xs')} and (orientation: landscape)`]: {\n minHeight: 52\n },\n [theme.breakpoints.up('sm')]: {\n minHeight: 52,\n paddingRight: 2\n },\n [`& .${tablePaginationClasses.actions}`]: {\n flexShrink: 0,\n marginLeft: 20\n }\n})));\nconst TablePaginationSpacer = styled('div', {\n name: 'MuiTablePagination',\n slot: 'Spacer',\n overridesResolver: (props, styles) => styles.spacer\n})({\n flex: '1 1 100%'\n});\nconst TablePaginationSelectLabel = styled('p', {\n name: 'MuiTablePagination',\n slot: 'SelectLabel',\n overridesResolver: (props, styles) => styles.selectLabel\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.body2,\n flexShrink: 0\n})));\nconst TablePaginationSelect = styled(Select, {\n name: 'MuiTablePagination',\n slot: 'Select',\n overridesResolver: (props, styles) => ({\n [`& .${tablePaginationClasses.selectIcon}`]: styles.selectIcon,\n [`& .${tablePaginationClasses.select}`]: styles.select,\n ...styles.input,\n ...styles.selectRoot\n })\n})({\n color: 'inherit',\n fontSize: 'inherit',\n flexShrink: 0,\n marginRight: 32,\n marginLeft: 8,\n [`& .${tablePaginationClasses.select}`]: {\n paddingLeft: 8,\n paddingRight: 24,\n textAlign: 'right',\n textAlignLast: 'right' // Align <select> on Chrome.\n }\n});\nconst TablePaginationMenuItem = styled(MenuItem, {\n name: 'MuiTablePagination',\n slot: 'MenuItem',\n overridesResolver: (props, styles) => styles.menuItem\n})({});\nconst TablePaginationDisplayedRows = styled('p', {\n name: 'MuiTablePagination',\n slot: 'DisplayedRows',\n overridesResolver: (props, styles) => styles.displayedRows\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.body2,\n flexShrink: 0\n})));\nfunction defaultLabelDisplayedRows({\n from,\n to,\n count\n}) {\n return `${from}–${to} of ${count !== -1 ? count : `more than ${to}`}`;\n}\nfunction defaultGetAriaLabel(type) {\n return `Go to ${type} page`;\n}\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n toolbar: ['toolbar'],\n spacer: ['spacer'],\n selectLabel: ['selectLabel'],\n select: ['select'],\n input: ['input'],\n selectIcon: ['selectIcon'],\n menuItem: ['menuItem'],\n displayedRows: ['displayedRows'],\n actions: ['actions']\n };\n return composeClasses(slots, getTablePaginationUtilityClass, classes);\n};\n\n/**\n * A `TableCell` based component for placing inside `TableFooter` for pagination.\n */\nconst TablePagination = /*#__PURE__*/React.forwardRef(function TablePagination(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTablePagination'\n });\n const {\n ActionsComponent = TablePaginationActions,\n backIconButtonProps,\n colSpan: colSpanProp,\n component = TableCell,\n count,\n disabled = false,\n getItemAriaLabel = defaultGetAriaLabel,\n labelDisplayedRows = defaultLabelDisplayedRows,\n labelRowsPerPage = 'Rows per page:',\n nextIconButtonProps,\n onPageChange,\n onRowsPerPageChange,\n page,\n rowsPerPage,\n rowsPerPageOptions = [10, 25, 50, 100],\n SelectProps = {},\n showFirstButton = false,\n showLastButton = false,\n slotProps = {},\n slots = {},\n ...other\n } = props;\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const selectProps = slotProps?.select ?? SelectProps;\n const MenuItemComponent = selectProps.native ? 'option' : TablePaginationMenuItem;\n let colSpan;\n if (component === TableCell || component === 'td') {\n colSpan = colSpanProp || 1000; // col-span over everything\n }\n const selectId = useId(selectProps.id);\n const labelId = useId(selectProps.labelId);\n const getLabelDisplayedRowsTo = () => {\n if (count === -1) {\n return (page + 1) * rowsPerPage;\n }\n return rowsPerPage === -1 ? count : Math.min(count, (page + 1) * rowsPerPage);\n };\n const externalForwardedProps = {\n slots,\n slotProps\n };\n const [RootSlot, rootSlotProps] = useSlot('root', {\n ref,\n className: classes.root,\n elementType: TablePaginationRoot,\n externalForwardedProps: {\n ...externalForwardedProps,\n component,\n ...other\n },\n ownerState,\n additionalProps: {\n colSpan\n }\n });\n const [ToolbarSlot, toolbarSlotProps] = useSlot('toolbar', {\n className: classes.toolbar,\n elementType: TablePaginationToolbar,\n externalForwardedProps,\n ownerState\n });\n const [SpacerSlot, spacerSlotProps] = useSlot('spacer', {\n className: classes.spacer,\n elementType: TablePaginationSpacer,\n externalForwardedProps,\n ownerState\n });\n const [SelectLabelSlot, selectLabelSlotProps] = useSlot('selectLabel', {\n className: classes.selectLabel,\n elementType: TablePaginationSelectLabel,\n externalForwardedProps,\n ownerState,\n additionalProps: {\n id: labelId\n }\n });\n const [SelectSlot, selectSlotProps] = useSlot('select', {\n className: classes.select,\n elementType: TablePaginationSelect,\n externalForwardedProps,\n ownerState\n });\n const [MenuItemSlot, menuItemSlotProps] = useSlot('menuItem', {\n className: classes.menuItem,\n elementType: MenuItemComponent,\n externalForwardedProps,\n ownerState\n });\n const [DisplayedRows, displayedRowsProps] = useSlot('displayedRows', {\n className: classes.displayedRows,\n elementType: TablePaginationDisplayedRows,\n externalForwardedProps,\n ownerState\n });\n return /*#__PURE__*/_jsx(RootSlot, {\n ...rootSlotProps,\n children: /*#__PURE__*/_jsxs(ToolbarSlot, {\n ...toolbarSlotProps,\n children: [/*#__PURE__*/_jsx(SpacerSlot, {\n ...spacerSlotProps\n }), rowsPerPageOptions.length > 1 && /*#__PURE__*/_jsx(SelectLabelSlot, {\n ...selectLabelSlotProps,\n children: labelRowsPerPage\n }), rowsPerPageOptions.length > 1 && /*#__PURE__*/_jsx(SelectSlot, {\n variant: \"standard\",\n ...(!selectProps.variant && {\n input: _InputBase || (_InputBase = /*#__PURE__*/_jsx(InputBase, {}))\n }),\n value: rowsPerPage,\n onChange: onRowsPerPageChange,\n id: selectId,\n labelId: labelId,\n ...selectProps,\n classes: {\n ...selectProps.classes,\n // TODO v5 remove `classes.input`\n root: clsx(classes.input, classes.selectRoot, (selectProps.classes || {}).root),\n select: clsx(classes.select, (selectProps.classes || {}).select),\n // TODO v5 remove `selectIcon`\n icon: clsx(classes.selectIcon, (selectProps.classes || {}).icon)\n },\n disabled: disabled,\n ...selectSlotProps,\n children: rowsPerPageOptions.map(rowsPerPageOption => /*#__PURE__*/_createElement(MenuItemSlot, {\n ...menuItemSlotProps,\n key: rowsPerPageOption.label ? rowsPerPageOption.label : rowsPerPageOption,\n value: rowsPerPageOption.value ? rowsPerPageOption.value : rowsPerPageOption\n }, rowsPerPageOption.label ? rowsPerPageOption.label : rowsPerPageOption))\n }), /*#__PURE__*/_jsx(DisplayedRows, {\n ...displayedRowsProps,\n children: labelDisplayedRows({\n from: count === 0 ? 0 : page * rowsPerPage + 1,\n to: getLabelDisplayedRowsTo(),\n count: count === -1 ? -1 : count,\n page\n })\n }), /*#__PURE__*/_jsx(ActionsComponent, {\n className: classes.actions,\n backIconButtonProps: backIconButtonProps,\n count: count,\n nextIconButtonProps: nextIconButtonProps,\n onPageChange: onPageChange,\n page: page,\n rowsPerPage: rowsPerPage,\n showFirstButton: showFirstButton,\n showLastButton: showLastButton,\n slotProps: slotProps.actions,\n slots: slots.actions,\n getItemAriaLabel: getItemAriaLabel,\n disabled: disabled\n })]\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TablePagination.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The component used for displaying the actions.\n * Either a string to use a HTML element or a component.\n * @default TablePaginationActions\n */\n ActionsComponent: PropTypes.elementType,\n /**\n * Props applied to the back arrow [`IconButton`](https://mui.com/material-ui/api/icon-button/) component.\n *\n * This prop is an alias for `slotProps.actions.previousButton` and will be overriden by it if both are used.\n * @deprecated Use `slotProps.actions.previousButton` instead.\n */\n backIconButtonProps: PropTypes.object,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n colSpan: PropTypes.number,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The total number of rows.\n *\n * To enable server side pagination for an unknown number of items, provide -1.\n */\n count: integerPropType.isRequired,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current page.\n * This is important for screen reader users.\n *\n * For localization purposes, you can use the provided [translations](https://mui.com/material-ui/guides/localization/).\n * @param {string} type The link or button type to format ('first' | 'last' | 'next' | 'previous').\n * @returns {string}\n * @default function defaultGetAriaLabel(type) {\n * return `Go to ${type} page`;\n * }\n */\n getItemAriaLabel: PropTypes.func,\n /**\n * Customize the displayed rows label. Invoked with a `{ from, to, count, page }`\n * object.\n *\n * For localization purposes, you can use the provided [translations](https://mui.com/material-ui/guides/localization/).\n * @default function defaultLabelDisplayedRows({ from, to, count }) {\n * return `${from}–${to} of ${count !== -1 ? count : `more than ${to}`}`;\n * }\n */\n labelDisplayedRows: PropTypes.func,\n /**\n * Customize the rows per page label.\n *\n * For localization purposes, you can use the provided [translations](https://mui.com/material-ui/guides/localization/).\n * @default 'Rows per page:'\n */\n labelRowsPerPage: PropTypes.node,\n /**\n * Props applied to the next arrow [`IconButton`](https://mui.com/material-ui/api/icon-button/) element.\n *\n * This prop is an alias for `slotProps.actions.nextButton` and will be overriden by it if both are used.\n * @deprecated Use `slotProps.actions.nextButton` instead.\n */\n nextIconButtonProps: PropTypes.object,\n /**\n * Callback fired when the page is changed.\n *\n * @param {React.MouseEvent<HTMLButtonElement> | null} event The event source of the callback.\n * @param {number} page The page selected.\n */\n onPageChange: PropTypes.func.isRequired,\n /**\n * Callback fired when the number of rows per page is changed.\n *\n * @param {React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>} event The event source of the callback.\n */\n onRowsPerPageChange: PropTypes.func,\n /**\n * The zero-based index of the current page.\n */\n page: chainPropTypes(integerPropType.isRequired, props => {\n const {\n count,\n page,\n rowsPerPage\n } = props;\n if (count === -1) {\n return null;\n }\n const newLastPage = Math.max(0, Math.ceil(count / rowsPerPage) - 1);\n if (page < 0 || page > newLastPage) {\n return new Error('MUI: The page prop of a TablePagination is out of range ' + `(0 to ${newLastPage}, but page is ${page}).`);\n }\n return null;\n }),\n /**\n * The number of rows per page.\n *\n * Set -1 to display all the rows.\n */\n rowsPerPage: integerPropType.isRequired,\n /**\n * Customizes the options of the rows per page select field. If less than two options are\n * available, no select field will be displayed.\n * Use -1 for the value with a custom label to show all the rows.\n * @default [10, 25, 50, 100]\n */\n rowsPerPageOptions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired\n })]).isRequired),\n /**\n * Props applied to the rows per page [`Select`](https://mui.com/material-ui/api/select/) element.\n *\n * This prop is an alias for `slotProps.select` and will be overriden by it if both are used.\n * @deprecated Use `slotProps.select` instead.\n *\n * @default {}\n */\n SelectProps: PropTypes.object,\n /**\n * If `true`, show the first-page button.\n * @default false\n */\n showFirstButton: PropTypes.bool,\n /**\n * If `true`, show the last-page button.\n * @default false\n */\n showLastButton: PropTypes.bool,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n actions: PropTypes.shape({\n firstButton: PropTypes.object,\n firstButtonIcon: PropTypes.object,\n lastButton: PropTypes.object,\n lastButtonIcon: PropTypes.object,\n nextButton: PropTypes.object,\n nextButtonIcon: PropTypes.object,\n previousButton: PropTypes.object,\n previousButtonIcon: PropTypes.object\n }),\n displayedRows: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n menuItem: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n select: PropTypes.object,\n selectLabel: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n spacer: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n toolbar: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n actions: PropTypes.shape({\n firstButton: PropTypes.elementType,\n firstButtonIcon: PropTypes.elementType,\n lastButton: PropTypes.elementType,\n lastButtonIcon: PropTypes.elementType,\n nextButton: PropTypes.elementType,\n nextButtonIcon: PropTypes.elementType,\n previousButton: PropTypes.elementType,\n previousButtonIcon: PropTypes.elementType\n }),\n displayedRows: PropTypes.elementType,\n menuItem: PropTypes.elementType,\n root: PropTypes.elementType,\n select: PropTypes.elementType,\n selectLabel: PropTypes.elementType,\n spacer: PropTypes.elementType,\n toolbar: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TablePagination;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTablePaginationUtilityClass(slot) {\n return generateUtilityClass('MuiTablePagination', slot);\n}\nconst tablePaginationClasses = generateUtilityClasses('MuiTablePagination', ['root', 'toolbar', 'spacer', 'selectLabel', 'selectRoot', 'select', 'selectIcon', 'input', 'menuItem', 'displayedRows', 'actions']);\nexport default tablePaginationClasses;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableRowUtilityClass(slot) {\n return generateUtilityClass('MuiTableRow', slot);\n}\nconst tableRowClasses = generateUtilityClasses('MuiTableRow', ['root', 'selected', 'hover', 'head', 'footer']);\nexport default tableRowClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport Tablelvl2Context from \"../Table/Tablelvl2Context.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport tableRowClasses, { getTableRowUtilityClass } from \"./tableRowClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n selected,\n hover,\n head,\n footer\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected', hover && 'hover', head && 'head', footer && 'footer']\n };\n return composeClasses(slots, getTableRowUtilityClass, classes);\n};\nconst TableRowRoot = styled('tr', {\n name: 'MuiTableRow',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.head && styles.head, ownerState.footer && styles.footer];\n }\n})(memoTheme(({\n theme\n}) => ({\n color: 'inherit',\n display: 'table-row',\n verticalAlign: 'middle',\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n [`&.${tableRowClasses.hover}:hover`]: {\n backgroundColor: (theme.vars || theme).palette.action.hover\n },\n [`&.${tableRowClasses.selected}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity)\n }\n }\n})));\nconst defaultComponent = 'tr';\n/**\n * Will automatically set dynamic row height\n * based on the material table element parent (head, body, etc).\n */\nconst TableRow = /*#__PURE__*/React.forwardRef(function TableRow(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTableRow'\n });\n const {\n className,\n component = defaultComponent,\n hover = false,\n selected = false,\n ...other\n } = props;\n const tablelvl2 = React.useContext(Tablelvl2Context);\n const ownerState = {\n ...props,\n component,\n hover,\n selected,\n head: tablelvl2 && tablelvl2.variant === 'head',\n footer: tablelvl2 && tablelvl2.variant === 'footer'\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(TableRowRoot, {\n as: component,\n ref: ref,\n className: clsx(classes.root, className),\n role: component === defaultComponent ? null : 'row',\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableRow.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Should be valid `<tr>` children such as `TableCell`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the table row will shade on hover.\n * @default false\n */\n hover: PropTypes.bool,\n /**\n * If `true`, the table row will have the selected shading.\n * @default false\n */\n selected: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableRow;","// Determine if the toggle button value matches, or is contained in, the\n// candidate group value.\nexport default function isValueSelected(value, candidate) {\n if (candidate === undefined || value === undefined) {\n return false;\n }\n if (Array.isArray(candidate)) {\n return candidate.includes(value);\n }\n return value === candidate;\n}","'use client';\n\n// @inheritedComponent ButtonBase\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport resolveProps from '@mui/utils/resolveProps';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport toggleButtonClasses, { getToggleButtonUtilityClass } from \"./toggleButtonClasses.js\";\nimport ToggleButtonGroupContext from \"../ToggleButtonGroup/ToggleButtonGroupContext.js\";\nimport ToggleButtonGroupButtonContext from \"../ToggleButtonGroup/ToggleButtonGroupButtonContext.js\";\nimport isValueSelected from \"../ToggleButtonGroup/isValueSelected.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n fullWidth,\n selected,\n disabled,\n size,\n color\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected', disabled && 'disabled', fullWidth && 'fullWidth', `size${capitalize(size)}`, color]\n };\n return composeClasses(slots, getToggleButtonUtilityClass, classes);\n};\nconst ToggleButtonRoot = styled(ButtonBase, {\n name: 'MuiToggleButton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`size${capitalize(ownerState.size)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.button,\n borderRadius: (theme.vars || theme).shape.borderRadius,\n padding: 11,\n border: `1px solid ${(theme.vars || theme).palette.divider}`,\n color: (theme.vars || theme).palette.action.active,\n [`&.${toggleButtonClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled,\n border: `1px solid ${(theme.vars || theme).palette.action.disabledBackground}`\n },\n '&:hover': {\n textDecoration: 'none',\n // Reset on mouse devices\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.text.primary, theme.palette.action.hoverOpacity),\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n variants: [{\n props: {\n color: 'standard'\n },\n style: {\n [`&.${toggleButtonClasses.selected}`]: {\n color: (theme.vars || theme).palette.text.primary,\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.text.primary, theme.palette.action.selectedOpacity),\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.text.primary, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.text.primary, theme.palette.action.selectedOpacity)\n }\n }\n }\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color\n },\n style: {\n [`&.${toggleButtonClasses.selected}`]: {\n color: (theme.vars || theme).palette[color].main,\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette[color].main, theme.palette.action.selectedOpacity),\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette[color].main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette[color].main, theme.palette.action.selectedOpacity)\n }\n }\n }\n }\n })), {\n props: {\n fullWidth: true\n },\n style: {\n width: '100%'\n }\n }, {\n props: {\n size: 'small'\n },\n style: {\n padding: 7,\n fontSize: theme.typography.pxToRem(13)\n }\n }, {\n props: {\n size: 'large'\n },\n style: {\n padding: 15,\n fontSize: theme.typography.pxToRem(15)\n }\n }]\n})));\nconst ToggleButton = /*#__PURE__*/React.forwardRef(function ToggleButton(inProps, ref) {\n // props priority: `inProps` > `contextProps` > `themeDefaultProps`\n const {\n value: contextValue,\n ...contextProps\n } = React.useContext(ToggleButtonGroupContext);\n const toggleButtonGroupButtonContextPositionClassName = React.useContext(ToggleButtonGroupButtonContext);\n const resolvedProps = resolveProps({\n ...contextProps,\n selected: isValueSelected(inProps.value, contextValue)\n }, inProps);\n const props = useDefaultProps({\n props: resolvedProps,\n name: 'MuiToggleButton'\n });\n const {\n children,\n className,\n color = 'standard',\n disabled = false,\n disableFocusRipple = false,\n fullWidth = false,\n onChange,\n onClick,\n selected,\n size = 'medium',\n value,\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n disabled,\n disableFocusRipple,\n fullWidth,\n size\n };\n const classes = useUtilityClasses(ownerState);\n const handleChange = event => {\n if (onClick) {\n onClick(event, value);\n if (event.defaultPrevented) {\n return;\n }\n }\n if (onChange) {\n onChange(event, value);\n }\n };\n const positionClassName = toggleButtonGroupButtonContextPositionClassName || '';\n return /*#__PURE__*/_jsx(ToggleButtonRoot, {\n className: clsx(contextProps.className, classes.root, className, positionClassName),\n disabled: disabled,\n focusRipple: !disableFocusRipple,\n ref: ref,\n onClick: handleChange,\n onChange: onChange,\n value: value,\n ownerState: ownerState,\n \"aria-pressed\": selected,\n ...other,\n children: children\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ToggleButton.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the button when it is in an active state.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'standard'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['standard', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n *\n * âš ï¸ Without a ripple there is no styling for :focus-visible by default. Be sure\n * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * If `true`, the button will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * Callback fired when the state changes.\n *\n * @param {React.MouseEvent<HTMLElement>} event The event source of the callback.\n * @param {any} value of the selected button.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the button is clicked.\n *\n * @param {React.MouseEvent<HTMLElement>} event The event source of the callback.\n * @param {any} value of the selected button.\n */\n onClick: PropTypes.func,\n /**\n * If `true`, the button is rendered in an active state.\n */\n selected: PropTypes.bool,\n /**\n * The size of the component.\n * The prop defaults to the value inherited from the parent ToggleButtonGroup component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value to associate with the button when selected in a\n * ToggleButtonGroup.\n */\n value: PropTypes /* @typescript-to-proptypes-ignore */.any.isRequired\n} : void 0;\nexport default ToggleButton;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getToggleButtonUtilityClass(slot) {\n return generateUtilityClass('MuiToggleButton', slot);\n}\nconst toggleButtonClasses = generateUtilityClasses('MuiToggleButton', ['root', 'disabled', 'selected', 'standard', 'primary', 'secondary', 'sizeSmall', 'sizeMedium', 'sizeLarge', 'fullWidth']);\nexport default toggleButtonClasses;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getToggleButtonGroupUtilityClass(slot) {\n return generateUtilityClass('MuiToggleButtonGroup', slot);\n}\nconst toggleButtonGroupClasses = generateUtilityClasses('MuiToggleButtonGroup', ['root', 'selected', 'horizontal', 'vertical', 'disabled', 'grouped', 'groupedHorizontal', 'groupedVertical', 'fullWidth', 'firstButton', 'lastButton', 'middleButton']);\nexport default toggleButtonGroupClasses;","'use client';\n\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport getValidReactChildren from '@mui/utils/getValidReactChildren';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport toggleButtonGroupClasses, { getToggleButtonGroupUtilityClass } from \"./toggleButtonGroupClasses.js\";\nimport ToggleButtonGroupContext from \"./ToggleButtonGroupContext.js\";\nimport ToggleButtonGroupButtonContext from \"./ToggleButtonGroupButtonContext.js\";\nimport toggleButtonClasses from \"../ToggleButton/toggleButtonClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n orientation,\n fullWidth,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', orientation, fullWidth && 'fullWidth'],\n grouped: ['grouped', `grouped${capitalize(orientation)}`, disabled && 'disabled'],\n firstButton: ['firstButton'],\n lastButton: ['lastButton'],\n middleButton: ['middleButton']\n };\n return composeClasses(slots, getToggleButtonGroupUtilityClass, classes);\n};\nconst ToggleButtonGroupRoot = styled('div', {\n name: 'MuiToggleButtonGroup',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${toggleButtonGroupClasses.grouped}`]: styles.grouped\n }, {\n [`& .${toggleButtonGroupClasses.grouped}`]: styles[`grouped${capitalize(ownerState.orientation)}`]\n }, {\n [`& .${toggleButtonGroupClasses.firstButton}`]: styles.firstButton\n }, {\n [`& .${toggleButtonGroupClasses.lastButton}`]: styles.lastButton\n }, {\n [`& .${toggleButtonGroupClasses.middleButton}`]: styles.middleButton\n }, styles.root, ownerState.orientation === 'vertical' && styles.vertical, ownerState.fullWidth && styles.fullWidth];\n }\n})(memoTheme(({\n theme\n}) => ({\n display: 'inline-flex',\n borderRadius: (theme.vars || theme).shape.borderRadius,\n variants: [{\n props: {\n orientation: 'vertical'\n },\n style: {\n flexDirection: 'column',\n [`& .${toggleButtonGroupClasses.grouped}`]: {\n [`&.${toggleButtonGroupClasses.selected} + .${toggleButtonGroupClasses.grouped}.${toggleButtonGroupClasses.selected}`]: {\n borderTop: 0,\n marginTop: 0\n }\n },\n [`& .${toggleButtonGroupClasses.firstButton},& .${toggleButtonGroupClasses.middleButton}`]: {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0\n },\n [`& .${toggleButtonGroupClasses.lastButton},& .${toggleButtonGroupClasses.middleButton}`]: {\n marginTop: -1,\n borderTop: '1px solid transparent',\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0\n },\n [`& .${toggleButtonGroupClasses.lastButton}.${toggleButtonClasses.disabled},& .${toggleButtonGroupClasses.middleButton}.${toggleButtonClasses.disabled}`]: {\n borderTop: '1px solid transparent'\n }\n }\n }, {\n props: {\n fullWidth: true\n },\n style: {\n width: '100%'\n }\n }, {\n props: {\n orientation: 'horizontal'\n },\n style: {\n [`& .${toggleButtonGroupClasses.grouped}`]: {\n [`&.${toggleButtonGroupClasses.selected} + .${toggleButtonGroupClasses.grouped}.${toggleButtonGroupClasses.selected}`]: {\n borderLeft: 0,\n marginLeft: 0\n }\n },\n [`& .${toggleButtonGroupClasses.firstButton},& .${toggleButtonGroupClasses.middleButton}`]: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0\n },\n [`& .${toggleButtonGroupClasses.lastButton},& .${toggleButtonGroupClasses.middleButton}`]: {\n marginLeft: -1,\n borderLeft: '1px solid transparent',\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0\n },\n [`& .${toggleButtonGroupClasses.lastButton}.${toggleButtonClasses.disabled},& .${toggleButtonGroupClasses.middleButton}.${toggleButtonClasses.disabled}`]: {\n borderLeft: '1px solid transparent'\n }\n }\n }]\n})));\nconst ToggleButtonGroup = /*#__PURE__*/React.forwardRef(function ToggleButtonGroup(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiToggleButtonGroup'\n });\n const {\n children,\n className,\n color = 'standard',\n disabled = false,\n exclusive = false,\n fullWidth = false,\n onChange,\n orientation = 'horizontal',\n size = 'medium',\n value,\n ...other\n } = props;\n const ownerState = {\n ...props,\n disabled,\n fullWidth,\n orientation,\n size\n };\n const classes = useUtilityClasses(ownerState);\n const handleChange = React.useCallback((event, buttonValue) => {\n if (!onChange) {\n return;\n }\n const index = value && value.indexOf(buttonValue);\n let newValue;\n if (value && index >= 0) {\n newValue = value.slice();\n newValue.splice(index, 1);\n } else {\n newValue = value ? value.concat(buttonValue) : [buttonValue];\n }\n onChange(event, newValue);\n }, [onChange, value]);\n const handleExclusiveChange = React.useCallback((event, buttonValue) => {\n if (!onChange) {\n return;\n }\n onChange(event, value === buttonValue ? null : buttonValue);\n }, [onChange, value]);\n const context = React.useMemo(() => ({\n className: classes.grouped,\n onChange: exclusive ? handleExclusiveChange : handleChange,\n value,\n size,\n fullWidth,\n color,\n disabled\n }), [classes.grouped, exclusive, handleExclusiveChange, handleChange, value, size, fullWidth, color, disabled]);\n const validChildren = getValidReactChildren(children);\n const childrenCount = validChildren.length;\n const getButtonPositionClassName = index => {\n const isFirstButton = index === 0;\n const isLastButton = index === childrenCount - 1;\n if (isFirstButton && isLastButton) {\n return '';\n }\n if (isFirstButton) {\n return classes.firstButton;\n }\n if (isLastButton) {\n return classes.lastButton;\n }\n return classes.middleButton;\n };\n return /*#__PURE__*/_jsx(ToggleButtonGroupRoot, {\n role: \"group\",\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n ...other,\n children: /*#__PURE__*/_jsx(ToggleButtonGroupContext.Provider, {\n value: context,\n children: validChildren.map((child, index) => {\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The ToggleButtonGroup component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n return /*#__PURE__*/_jsx(ToggleButtonGroupButtonContext.Provider, {\n value: getButtonPositionClassName(index),\n children: child\n }, index);\n })\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ToggleButtonGroup.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the button when it is selected.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'standard'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['standard', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the component is disabled. This implies that all ToggleButton children will be disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, only allow one of the child ToggleButton values to be selected.\n * @default false\n */\n exclusive: PropTypes.bool,\n /**\n * If `true`, the button group will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * Callback fired when the value changes.\n *\n * @param {React.MouseEvent<HTMLElement>} event The event source of the callback.\n * @param {any} value of the selected buttons. When `exclusive` is true\n * this is a single value; when false an array of selected values. If no value\n * is selected and `exclusive` is true the value is null; when false an empty array.\n */\n onChange: PropTypes.func,\n /**\n * The component orientation (layout flow direction).\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The currently selected value within the group or an array of selected\n * values when `exclusive` is false.\n *\n * The value must have reference equality with the option in order to be selected.\n */\n value: PropTypes.any\n} : void 0;\nexport default ToggleButtonGroup;","import * as React from 'react';\n\n/**\n * Gets only the valid children of a component,\n * and ignores any nullish or falsy child.\n *\n * @param children the children\n */\nexport default function getValidReactChildren(children) {\n return React.Children.toArray(children).filter(child => /*#__PURE__*/React.isValidElement(child));\n}","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst ToggleButtonGroupButtonContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n ToggleButtonGroupButtonContext.displayName = 'ToggleButtonGroupButtonContext';\n}\nexport default ToggleButtonGroupButtonContext;","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst ToggleButtonGroupContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n ToggleButtonGroupContext.displayName = 'ToggleButtonGroupContext';\n}\nexport default ToggleButtonGroupContext;","const amber = {\n 50: '#fff8e1',\n 100: '#ffecb3',\n 200: '#ffe082',\n 300: '#ffd54f',\n 400: '#ffca28',\n 500: '#ffc107',\n 600: '#ffb300',\n 700: '#ffa000',\n 800: '#ff8f00',\n 900: '#ff6f00',\n A100: '#ffe57f',\n A200: '#ffd740',\n A400: '#ffc400',\n A700: '#ffab00'\n};\nexport default amber;","const blueGrey = {\n 50: '#eceff1',\n 100: '#cfd8dc',\n 200: '#b0bec5',\n 300: '#90a4ae',\n 400: '#78909c',\n 500: '#607d8b',\n 600: '#546e7a',\n 700: '#455a64',\n 800: '#37474f',\n 900: '#263238',\n A100: '#cfd8dc',\n A200: '#b0bec5',\n A400: '#78909c',\n A700: '#455a64'\n};\nexport default blueGrey;","const deepOrange = {\n 50: '#fbe9e7',\n 100: '#ffccbc',\n 200: '#ffab91',\n 300: '#ff8a65',\n 400: '#ff7043',\n 500: '#ff5722',\n 600: '#f4511e',\n 700: '#e64a19',\n 800: '#d84315',\n 900: '#bf360c',\n A100: '#ff9e80',\n A200: '#ff6e40',\n A400: '#ff3d00',\n A700: '#dd2c00'\n};\nexport default deepOrange;","const indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\nexport default indigo;","const pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\nexport default pink;","const teal = {\n 50: '#e0f2f1',\n 100: '#b2dfdb',\n 200: '#80cbc4',\n 300: '#4db6ac',\n 400: '#26a69a',\n 500: '#009688',\n 600: '#00897b',\n 700: '#00796b',\n 800: '#00695c',\n 900: '#004d40',\n A100: '#a7ffeb',\n A200: '#64ffda',\n A400: '#1de9b6',\n A700: '#00bfa5'\n};\nexport default teal;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z\"\n}), 'FirstPage');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z\"\n}), 'LastPage');","'use client';\n\nimport * as React from 'react';\nfunction defaultTrigger(store, options) {\n const {\n disableHysteresis = false,\n threshold = 100,\n target\n } = options;\n const previous = store.current;\n if (target) {\n // Get vertical scroll\n store.current = target.pageYOffset !== undefined ? target.pageYOffset : target.scrollTop;\n }\n if (!disableHysteresis && previous !== undefined) {\n if (store.current < previous) {\n return false;\n }\n }\n return store.current > threshold;\n}\nconst defaultTarget = typeof window !== 'undefined' ? window : null;\nexport default function useScrollTrigger(options = {}) {\n const {\n getTrigger = defaultTrigger,\n target = defaultTarget,\n ...other\n } = options;\n const store = React.useRef();\n const [trigger, setTrigger] = React.useState(() => getTrigger(store, other));\n React.useEffect(() => {\n const handleScroll = () => {\n setTrigger(getTrigger(store, {\n target,\n ...other\n }));\n };\n handleScroll(); // Re-evaluate trigger when dependencies change\n target.addEventListener('scroll', handleScroll, {\n passive: true\n });\n return () => {\n target.removeEventListener('scroll', handleScroll, {\n passive: true\n });\n };\n // See Option 3. https://github.com/facebook/react/issues/14476#issuecomment-471199055\n // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [target, getTrigger, JSON.stringify(other)]);\n return trigger;\n}","import createStyled from \"../createStyled/index.js\";\nconst styled = createStyled();\nexport default styled;","import * as React from 'react';\nexport default parseInt(React.version, 10);","import * as React from 'react';\nimport reactMajor from \"../reactMajor.js\";\n\n// Compatibility shim that ensures stable props object for forwardRef components\n// Fixes https://github.com/facebook/react/issues/31613\n// We ensure that the ref is always present in the props object (even if that's not the case for older versions of React) to avoid the footgun of spreading props over the ref in the newer versions of React.\n// Footgun: <Component ref={ref} {...props} /> will break past React 19, but the types will now warn us that we should use <Component {...props} ref={ref} /> instead.\nexport const forwardRef = render => {\n if (reactMajor >= 19) {\n const Component = props => render(props, props.ref ?? null);\n Component.displayName = render.displayName ?? render.name;\n return Component;\n }\n return /*#__PURE__*/React.forwardRef(render);\n};","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { unstable_generateUtilityClasses as generateUtilityClasses, unstable_generateUtilityClass as generateUtilityClass } from '@mui/utils';\nexport function getDataGridUtilityClass(slot) {\n return generateUtilityClass('MuiDataGrid', slot);\n}\nexport const gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', 'columnHeader--lastUnpinned', 'columnHeader--siblingFocused', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hasSkeletonLoadingOverlay', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);","const is = Object.is;\nexport function fastObjectShallowCompare(a, b) {\n if (a === b) {\n return true;\n }\n if (!(a instanceof Object) || !(b instanceof Object)) {\n return false;\n }\n let aLength = 0;\n let bLength = 0;\n\n /* eslint-disable guard-for-in */\n for (const key in a) {\n aLength += 1;\n if (!is(a[key], b[key])) {\n return false;\n }\n if (!(key in b)) {\n return false;\n }\n }\n\n /* eslint-disable-next-line @typescript-eslint/naming-convention, @typescript-eslint/no-unused-vars */\n for (const _ in b) {\n bLength += 1;\n }\n return aLength === bLength;\n}","import * as React from 'react';\nimport { fastObjectShallowCompare } from '@mui/x-internals/fastObjectShallowCompare';\nimport { warnOnce } from '@mui/x-internals/warning';\nimport { useLazyRef } from \"./useLazyRef.js\";\nimport { useOnMount } from \"./useOnMount.js\";\nfunction isOutputSelector(selector) {\n return selector.acceptsApiRef;\n}\n// TODO v8: Remove this function\nfunction applySelector(apiRef, selector) {\n if (isOutputSelector(selector)) {\n return selector(apiRef);\n }\n return selector(apiRef.current.state);\n}\n\n// TODO v8: Rename this function to `applySelector`\nfunction applySelectorV8(apiRef, selector, args, instanceId) {\n if (isOutputSelector(selector)) {\n return selector(apiRef, args);\n }\n return selector(apiRef.current.state, instanceId);\n}\nconst defaultCompare = Object.is;\nexport const objectShallowCompare = fastObjectShallowCompare;\nconst arrayShallowCompare = (a, b) => {\n if (a === b) {\n return true;\n }\n return a.length === b.length && a.every((v, i) => v === b[i]);\n};\nexport const argsEqual = (prev, curr) => {\n let fn = Object.is;\n if (curr instanceof Array) {\n fn = arrayShallowCompare;\n } else if (curr instanceof Object) {\n fn = objectShallowCompare;\n }\n return fn(prev, curr);\n};\nconst createRefs = () => ({\n state: null,\n equals: null,\n selector: null,\n args: null\n});\n\n// TODO v8: Remove this function\nexport const useGridSelector = (apiRef, selector, equals = defaultCompare) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!apiRef.current.state) {\n warnOnce(['MUI X: `useGridSelector` has been called before the initialization of the state.', 'This hook can only be used inside the context of the grid.']);\n }\n }\n const refs = useLazyRef(createRefs);\n const didInit = refs.current.selector !== null;\n const [state, setState] = React.useState(\n // We don't use an initialization function to avoid allocations\n didInit ? null : applySelector(apiRef, selector));\n refs.current.state = state;\n refs.current.equals = equals;\n refs.current.selector = selector;\n useOnMount(() => {\n return apiRef.current.store.subscribe(() => {\n const newState = applySelector(apiRef, refs.current.selector);\n if (!refs.current.equals(refs.current.state, newState)) {\n refs.current.state = newState;\n setState(newState);\n }\n });\n });\n return state;\n};\n\n// TODO v8: Rename this function to `useGridSelector`\nexport const useGridSelectorV8 = (apiRef, selector, args = undefined, equals = defaultCompare) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!apiRef.current.state) {\n warnOnce(['MUI X: `useGridSelector` has been called before the initialization of the state.', 'This hook can only be used inside the context of the grid.']);\n }\n }\n const refs = useLazyRef(createRefs);\n const didInit = refs.current.selector !== null;\n const [state, setState] = React.useState(\n // We don't use an initialization function to avoid allocations\n didInit ? null : applySelectorV8(apiRef, selector, args, apiRef.current.instanceId));\n refs.current.state = state;\n refs.current.equals = equals;\n refs.current.selector = selector;\n const prevArgs = refs.current.args;\n refs.current.args = args;\n if (didInit && !argsEqual(prevArgs, args)) {\n const newState = applySelectorV8(apiRef, refs.current.selector, refs.current.args, apiRef.current.instanceId);\n if (!refs.current.equals(refs.current.state, newState)) {\n refs.current.state = newState;\n setState(newState);\n }\n }\n useOnMount(() => {\n return apiRef.current.store.subscribe(() => {\n const newState = applySelectorV8(apiRef, refs.current.selector, refs.current.args, apiRef.current.instanceId);\n if (!refs.current.equals(refs.current.state, newState)) {\n refs.current.state = newState;\n setState(newState);\n }\n });\n });\n return state;\n};","import * as React from 'react';\nexport const GridPrivateApiContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n GridPrivateApiContext.displayName = 'GridPrivateApiContext';\n}\nexport function useGridPrivateApiContext() {\n const privateApiRef = React.useContext(GridPrivateApiContext);\n if (privateApiRef === undefined) {\n throw new Error(['MUI X: Could not find the Data Grid private context.', 'It looks like you rendered your component outside of a DataGrid, DataGridPro or DataGridPremium parent component.', 'This can also happen if you are bundling multiple versions of the Data Grid.'].join('\\n'));\n }\n return privateApiRef;\n}","export const gridDimensionsSelector = state => state.dimensions;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { alpha, styled, darken, lighten, decomposeColor, recomposeColor } from '@mui/material/styles';\nimport { gridClasses as c } from \"../../constants/gridClasses.js\";\nimport { useGridSelector } from \"../../hooks/utils/useGridSelector.js\";\nimport { useGridPrivateApiContext } from \"../../hooks/utils/useGridPrivateApiContext.js\";\nimport { gridDimensionsSelector } from \"../../hooks/features/dimensions/gridDimensionsSelectors.js\";\nfunction getBorderColor(theme) {\n if (theme.vars) {\n return theme.vars.palette.TableCell.border;\n }\n if (theme.palette.mode === 'light') {\n return lighten(alpha(theme.palette.divider, 1), 0.88);\n }\n return darken(alpha(theme.palette.divider, 1), 0.68);\n}\nconst columnHeaderStyles = {\n [`& .${c.iconButtonContainer}`]: {\n visibility: 'visible',\n width: 'auto'\n },\n [`& .${c.menuIcon}`]: {\n width: 'auto',\n visibility: 'visible'\n }\n};\nconst columnSeparatorTargetSize = 10;\nconst columnSeparatorOffset = -5;\nconst focusOutlineWidth = 1;\nconst separatorIconDragStyles = {\n width: 3,\n rx: 1.5,\n x: 10.5\n};\n\n// Emotion thinks it knows better than us which selector we should use.\n// https://github.com/emotion-js/emotion/issues/1105#issuecomment-1722524968\nconst ignoreSsrWarning = '/* emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */';\nexport const GridRootStyles = styled('div', {\n name: 'MuiDataGrid',\n slot: 'Root',\n overridesResolver: (props, styles) => [{\n [`&.${c.autoHeight}`]: styles.autoHeight\n }, {\n [`&.${c.aggregationColumnHeader}`]: styles.aggregationColumnHeader\n }, {\n [`&.${c['aggregationColumnHeader--alignLeft']}`]: styles['aggregationColumnHeader--alignLeft']\n }, {\n [`&.${c['aggregationColumnHeader--alignCenter']}`]: styles['aggregationColumnHeader--alignCenter']\n }, {\n [`&.${c['aggregationColumnHeader--alignRight']}`]: styles['aggregationColumnHeader--alignRight']\n }, {\n [`&.${c.aggregationColumnHeaderLabel}`]: styles.aggregationColumnHeaderLabel\n }, {\n [`&.${c['root--disableUserSelection']} .${c.cell}`]: styles['root--disableUserSelection']\n }, {\n [`&.${c.autosizing}`]: styles.autosizing\n }, {\n [`& .${c.editBooleanCell}`]: styles.editBooleanCell\n }, {\n [`& .${c.cell}`]: styles.cell\n }, {\n [`& .${c['cell--editing']}`]: styles['cell--editing']\n }, {\n [`& .${c['cell--textCenter']}`]: styles['cell--textCenter']\n }, {\n [`& .${c['cell--textLeft']}`]: styles['cell--textLeft']\n }, {\n [`& .${c['cell--textRight']}`]: styles['cell--textRight']\n }, {\n [`& .${c['cell--rangeTop']}`]: styles['cell--rangeTop']\n }, {\n [`& .${c['cell--rangeBottom']}`]: styles['cell--rangeBottom']\n }, {\n [`& .${c['cell--rangeLeft']}`]: styles['cell--rangeLeft']\n }, {\n [`& .${c['cell--rangeRight']}`]: styles['cell--rangeRight']\n }, {\n [`& .${c['cell--withRightBorder']}`]: styles['cell--withRightBorder']\n }, {\n [`& .${c.cellCheckbox}`]: styles.cellCheckbox\n }, {\n [`& .${c.cellSkeleton}`]: styles.cellSkeleton\n }, {\n [`& .${c.checkboxInput}`]: styles.checkboxInput\n }, {\n [`& .${c['columnHeader--alignCenter']}`]: styles['columnHeader--alignCenter']\n }, {\n [`& .${c['columnHeader--alignLeft']}`]: styles['columnHeader--alignLeft']\n }, {\n [`& .${c['columnHeader--alignRight']}`]: styles['columnHeader--alignRight']\n }, {\n [`& .${c['columnHeader--dragging']}`]: styles['columnHeader--dragging']\n }, {\n [`& .${c['columnHeader--moving']}`]: styles['columnHeader--moving']\n }, {\n [`& .${c['columnHeader--numeric']}`]: styles['columnHeader--numeric']\n }, {\n [`& .${c['columnHeader--sortable']}`]: styles['columnHeader--sortable']\n }, {\n [`& .${c['columnHeader--sorted']}`]: styles['columnHeader--sorted']\n }, {\n [`& .${c['columnHeader--withRightBorder']}`]: styles['columnHeader--withRightBorder']\n }, {\n [`& .${c.columnHeader}`]: styles.columnHeader\n }, {\n [`& .${c.headerFilterRow}`]: styles.headerFilterRow\n }, {\n [`& .${c.columnHeaderCheckbox}`]: styles.columnHeaderCheckbox\n }, {\n [`& .${c.columnHeaderDraggableContainer}`]: styles.columnHeaderDraggableContainer\n }, {\n [`& .${c.columnHeaderTitleContainer}`]: styles.columnHeaderTitleContainer\n }, {\n [`& .${c['columnSeparator--resizable']}`]: styles['columnSeparator--resizable']\n }, {\n [`& .${c['columnSeparator--resizing']}`]: styles['columnSeparator--resizing']\n }, {\n [`& .${c.columnSeparator}`]: styles.columnSeparator\n }, {\n [`& .${c.filterIcon}`]: styles.filterIcon\n }, {\n [`& .${c.iconSeparator}`]: styles.iconSeparator\n }, {\n [`& .${c.menuIcon}`]: styles.menuIcon\n }, {\n [`& .${c.menuIconButton}`]: styles.menuIconButton\n }, {\n [`& .${c.menuOpen}`]: styles.menuOpen\n }, {\n [`& .${c.menuList}`]: styles.menuList\n }, {\n [`& .${c['row--editable']}`]: styles['row--editable']\n }, {\n [`& .${c['row--editing']}`]: styles['row--editing']\n }, {\n [`& .${c['row--dragging']}`]: styles['row--dragging']\n }, {\n [`& .${c.row}`]: styles.row\n }, {\n [`& .${c.rowReorderCellPlaceholder}`]: styles.rowReorderCellPlaceholder\n }, {\n [`& .${c.rowReorderCell}`]: styles.rowReorderCell\n }, {\n [`& .${c['rowReorderCell--draggable']}`]: styles['rowReorderCell--draggable']\n }, {\n [`& .${c.sortIcon}`]: styles.sortIcon\n }, {\n [`& .${c.withBorderColor}`]: styles.withBorderColor\n }, {\n [`& .${c.treeDataGroupingCell}`]: styles.treeDataGroupingCell\n }, {\n [`& .${c.treeDataGroupingCellToggle}`]: styles.treeDataGroupingCellToggle\n }, {\n [`& .${c.treeDataGroupingCellLoadingContainer}`]: styles.treeDataGroupingCellLoadingContainer\n }, {\n [`& .${c.groupingCriteriaCellLoadingContainer}`]: styles.groupingCriteriaCellLoadingContainer\n }, {\n [`& .${c.detailPanelToggleCell}`]: styles.detailPanelToggleCell\n }, {\n [`& .${c['detailPanelToggleCell--expanded']}`]: styles['detailPanelToggleCell--expanded']\n }, styles.root]\n})(({\n theme: t\n}) => {\n const apiRef = useGridPrivateApiContext();\n const dimensions = useGridSelector(apiRef, gridDimensionsSelector);\n const borderColor = getBorderColor(t);\n const radius = t.shape.borderRadius;\n const containerBackground = t.vars ? t.vars.palette.background.default : t.mixins.MuiDataGrid?.containerBackground ?? t.palette.background.default;\n const pinnedBackground = t.mixins.MuiDataGrid?.pinnedBackground ?? containerBackground;\n const overlayBackground = t.vars ? `rgba(${t.vars.palette.background.defaultChannel} / ${t.vars.palette.action.disabledOpacity})` : alpha(t.palette.background.default, t.palette.action.disabledOpacity);\n const hoverOpacity = (t.vars || t).palette.action.hoverOpacity;\n const hoverColor = (t.vars || t).palette.action.hover;\n const selectedOpacity = (t.vars || t).palette.action.selectedOpacity;\n const selectedHoverOpacity = t.vars ? `calc(${hoverOpacity} + ${selectedOpacity})` // TODO: Improve type\n : hoverOpacity + selectedOpacity;\n const selectedBackground = t.vars ? `rgba(${t.vars.palette.primary.mainChannel} / ${selectedOpacity})` : alpha(t.palette.primary.main, selectedOpacity);\n const selectedHoverBackground = t.vars ? `rgba(${t.vars.palette.primary.mainChannel} / ${selectedHoverOpacity})` : alpha(t.palette.primary.main, selectedHoverOpacity);\n const blendFn = t.vars ? blendCssVars : blend;\n const getPinnedBackgroundStyles = backgroundColor => ({\n [`& .${c['cell--pinnedLeft']}, & .${c['cell--pinnedRight']}`]: {\n backgroundColor,\n '&.Mui-selected': {\n backgroundColor: blendFn(backgroundColor, selectedBackground, selectedOpacity),\n '&:hover': {\n backgroundColor: blendFn(backgroundColor, selectedBackground, selectedHoverOpacity)\n }\n }\n }\n });\n const pinnedBackgroundColor = blendFn(pinnedBackground, hoverColor, hoverOpacity);\n const pinnedHoverStyles = getPinnedBackgroundStyles(pinnedBackgroundColor);\n const pinnedSelectedBackgroundColor = blendFn(pinnedBackground, selectedBackground, selectedOpacity);\n const pinnedSelectedStyles = getPinnedBackgroundStyles(pinnedSelectedBackgroundColor);\n const pinnedSelectedHoverBackgroundColor = blendFn(pinnedBackground, selectedHoverBackground, selectedHoverOpacity);\n const pinnedSelectedHoverStyles = getPinnedBackgroundStyles(pinnedSelectedHoverBackgroundColor);\n const selectedStyles = {\n backgroundColor: selectedBackground,\n '&:hover': {\n backgroundColor: selectedHoverBackground,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: selectedBackground\n }\n }\n };\n const gridStyle = _extends({\n '--unstable_DataGrid-radius': typeof radius === 'number' ? `${radius}px` : radius,\n '--unstable_DataGrid-headWeight': t.typography.fontWeightMedium,\n '--unstable_DataGrid-overlayBackground': overlayBackground,\n '--DataGrid-containerBackground': containerBackground,\n '--DataGrid-pinnedBackground': pinnedBackground,\n '--DataGrid-rowBorderColor': borderColor,\n '--DataGrid-cellOffsetMultiplier': 2,\n '--DataGrid-width': '0px',\n '--DataGrid-hasScrollX': '0',\n '--DataGrid-hasScrollY': '0',\n '--DataGrid-scrollbarSize': '10px',\n '--DataGrid-rowWidth': '0px',\n '--DataGrid-columnsTotalWidth': '0px',\n '--DataGrid-leftPinnedWidth': '0px',\n '--DataGrid-rightPinnedWidth': '0px',\n '--DataGrid-headerHeight': '0px',\n '--DataGrid-headersTotalHeight': '0px',\n '--DataGrid-topContainerHeight': '0px',\n '--DataGrid-bottomContainerHeight': '0px',\n flex: 1,\n boxSizing: 'border-box',\n position: 'relative',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor,\n borderRadius: 'var(--unstable_DataGrid-radius)',\n color: (t.vars || t).palette.text.primary\n }, t.typography.body2, {\n outline: 'none',\n height: '100%',\n display: 'flex',\n minWidth: 0,\n // See https://github.com/mui/mui-x/issues/8547\n minHeight: 0,\n flexDirection: 'column',\n overflow: 'hidden',\n overflowAnchor: 'none',\n // Keep the same scrolling position\n [`.${c.main} > *:first-child${ignoreSsrWarning}`]: {\n borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',\n borderTopRightRadius: 'var(--unstable_DataGrid-radius)'\n },\n [`&.${c.autoHeight}`]: {\n height: 'auto'\n },\n [`&.${c.autosizing}`]: {\n [`& .${c.columnHeaderTitleContainerContent} > *`]: {\n overflow: 'visible !important'\n },\n '@media (hover: hover)': {\n [`& .${c.iconButtonContainer}`]: {\n width: '0 !important',\n visibility: 'hidden !important'\n },\n [`& .${c.menuIcon}`]: {\n width: '0 !important',\n visibility: 'hidden !important'\n }\n },\n [`& .${c.cell}`]: {\n overflow: 'visible !important',\n whiteSpace: 'nowrap',\n minWidth: 'max-content !important',\n maxWidth: 'max-content !important'\n },\n [`& .${c.groupingCriteriaCell}`]: {\n width: 'unset'\n },\n [`& .${c.treeDataGroupingCell}`]: {\n width: 'unset'\n }\n },\n [`& .${c.columnHeader}, & .${c.cell}`]: {\n WebkitTapHighlightColor: 'transparent',\n padding: '0 10px',\n boxSizing: 'border-box'\n },\n [`& .${c.columnHeader}:focus-within, & .${c.cell}:focus-within`]: {\n outline: `solid ${t.vars ? `rgba(${t.vars.palette.primary.mainChannel} / 0.5)` : alpha(t.palette.primary.main, 0.5)} ${focusOutlineWidth}px`,\n outlineOffset: focusOutlineWidth * -1\n },\n [`& .${c.columnHeader}:focus, & .${c.cell}:focus`]: {\n outline: `solid ${t.palette.primary.main} ${focusOutlineWidth}px`,\n outlineOffset: focusOutlineWidth * -1\n },\n // Hide the column separator when:\n // - the column is focused and has an outline\n // - the next column is focused and has an outline\n // - the column has a left or right border\n // - the next column is pinned right and has a left border\n [`& .${c.columnHeader}:focus,\n & .${c['columnHeader--withLeftBorder']},\n & .${c['columnHeader--withRightBorder']},\n & .${c['columnHeader--siblingFocused']},\n & .${c['virtualScroller--hasScrollX']} .${c['columnHeader--lastUnpinned']},\n & .${c['virtualScroller--hasScrollX']} .${c['columnHeader--last']}\n `]: {\n [`& .${c.columnSeparator}`]: {\n opacity: 0\n },\n // Show resizable separators at all times on touch devices\n '@media (hover: none)': {\n [`& .${c['columnSeparator--resizable']}`]: {\n opacity: 1\n }\n },\n [`& .${c['columnSeparator--resizable']}:hover`]: {\n opacity: 1\n }\n },\n [`&.${c['root--noToolbar']} [aria-rowindex=\"1\"] [aria-colindex=\"1\"]`]: {\n borderTopLeftRadius: 'calc(var(--unstable_DataGrid-radius) - 1px)'\n },\n [`&.${c['root--noToolbar']} [aria-rowindex=\"1\"] .${c['columnHeader--last']}`]: {\n borderTopRightRadius: dimensions.hasScrollX && (!dimensions.hasScrollY || dimensions.scrollbarSize === 0) ? 'calc(var(--unstable_DataGrid-radius) - 1px)' : undefined\n },\n [`& .${c.columnHeaderCheckbox}, & .${c.cellCheckbox}`]: {\n padding: 0,\n justifyContent: 'center',\n alignItems: 'center'\n },\n [`& .${c.columnHeader}`]: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center'\n },\n [`& .${c['virtualScroller--hasScrollX']} .${c['columnHeader--last']}`]: {\n overflow: 'hidden'\n },\n [`& .${c['columnHeader--sorted']} .${c.iconButtonContainer}, & .${c['columnHeader--filtered']} .${c.iconButtonContainer}`]: {\n visibility: 'visible',\n width: 'auto'\n },\n [`& .${c.columnHeader}:not(.${c['columnHeader--sorted']}) .${c.sortIcon}`]: {\n opacity: 0,\n transition: t.transitions.create(['opacity'], {\n duration: t.transitions.duration.shorter\n })\n },\n [`& .${c.columnHeaderTitleContainer}`]: {\n display: 'flex',\n alignItems: 'center',\n gap: t.spacing(0.25),\n minWidth: 0,\n flex: 1,\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n },\n [`& .${c.columnHeaderTitleContainerContent}`]: {\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center'\n },\n [`& .${c['columnHeader--filledGroup']} .${c.columnHeaderTitleContainer}`]: {\n borderBottomWidth: '1px',\n borderBottomStyle: 'solid',\n boxSizing: 'border-box'\n },\n [`& .${c.sortIcon}, & .${c.filterIcon}`]: {\n fontSize: 'inherit'\n },\n [`& .${c['columnHeader--sortable']}`]: {\n cursor: 'pointer'\n },\n [`& .${c['columnHeader--alignCenter']} .${c.columnHeaderTitleContainer}`]: {\n justifyContent: 'center'\n },\n [`& .${c['columnHeader--alignRight']} .${c.columnHeaderDraggableContainer}, & .${c['columnHeader--alignRight']} .${c.columnHeaderTitleContainer}`]: {\n flexDirection: 'row-reverse'\n },\n [`& .${c['columnHeader--alignCenter']} .${c.menuIcon}`]: {\n marginLeft: 'auto'\n },\n [`& .${c['columnHeader--alignRight']} .${c.menuIcon}`]: {\n marginRight: 'auto',\n marginLeft: -5\n },\n [`& .${c['columnHeader--moving']}`]: {\n backgroundColor: (t.vars || t).palette.action.hover\n },\n [`& .${c['columnHeader--pinnedLeft']}, & .${c['columnHeader--pinnedRight']}`]: {\n position: 'sticky',\n zIndex: 4,\n // Should be above the column separator\n background: 'var(--DataGrid-pinnedBackground)'\n },\n [`& .${c.columnSeparator}`]: {\n position: 'absolute',\n overflow: 'hidden',\n zIndex: 3,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n maxWidth: columnSeparatorTargetSize,\n color: borderColor\n },\n [`& .${c.columnHeaders}`]: {\n width: 'var(--DataGrid-rowWidth)'\n },\n '@media (hover: hover)': {\n [`& .${c.columnHeader}:hover`]: columnHeaderStyles,\n [`& .${c.columnHeader}:not(.${c['columnHeader--sorted']}):hover .${c.sortIcon}`]: {\n opacity: 0.5\n }\n },\n '@media (hover: none)': {\n [`& .${c.columnHeader}`]: columnHeaderStyles,\n [`& .${c.columnHeader}:focus,\n & .${c['columnHeader--siblingFocused']}`]: {\n [`.${c['columnSeparator--resizable']}`]: {\n color: (t.vars || t).palette.primary.main\n }\n }\n },\n [`& .${c['columnSeparator--sideLeft']}`]: {\n left: columnSeparatorOffset\n },\n [`& .${c['columnSeparator--sideRight']}`]: {\n right: columnSeparatorOffset\n },\n [`& .${c['columnHeader--withRightBorder']} .${c['columnSeparator--sideLeft']}`]: {\n left: columnSeparatorOffset - 0.5\n },\n [`& .${c['columnHeader--withRightBorder']} .${c['columnSeparator--sideRight']}`]: {\n right: columnSeparatorOffset - 0.5\n },\n [`& .${c['columnSeparator--resizable']}`]: {\n cursor: 'col-resize',\n touchAction: 'none',\n [`&.${c['columnSeparator--resizing']}`]: {\n color: (t.vars || t).palette.primary.main\n },\n // Always appear as draggable on touch devices\n '@media (hover: none)': {\n [`& .${c.iconSeparator} rect`]: separatorIconDragStyles\n },\n '@media (hover: hover)': {\n '&:hover': {\n color: (t.vars || t).palette.primary.main,\n [`& .${c.iconSeparator} rect`]: separatorIconDragStyles\n }\n },\n '& svg': {\n pointerEvents: 'none'\n }\n },\n [`& .${c.iconSeparator}`]: {\n color: 'inherit',\n transition: t.transitions.create(['color', 'width'], {\n duration: t.transitions.duration.shortest\n })\n },\n [`& .${c.menuIcon}`]: {\n width: 0,\n visibility: 'hidden',\n fontSize: 20,\n marginRight: -5,\n display: 'flex',\n alignItems: 'center'\n },\n [`.${c.menuOpen}`]: {\n visibility: 'visible',\n width: 'auto'\n },\n [`& .${c.headerFilterRow}`]: {\n [`& .${c.columnHeader}`]: {\n boxSizing: 'border-box',\n borderBottom: '1px solid var(--DataGrid-rowBorderColor)'\n }\n },\n /* Bottom border of the top-container */\n [`& .${c['row--borderBottom']} .${c.columnHeader},\n & .${c['row--borderBottom']} .${c.filler},\n & .${c['row--borderBottom']} .${c.scrollbarFiller}`]: {\n borderBottom: `1px solid var(--DataGrid-rowBorderColor)`\n },\n [`& .${c['row--borderBottom']} .${c.cell}`]: {\n borderBottom: `1px solid var(--rowBorderColor)`\n },\n /* Row styles */\n [`.${c.row}`]: {\n display: 'flex',\n width: 'var(--DataGrid-rowWidth)',\n breakInside: 'avoid',\n // Avoid the row to be broken in two different print pages.\n\n '--rowBorderColor': 'var(--DataGrid-rowBorderColor)',\n [`&.${c['row--firstVisible']}`]: {\n '--rowBorderColor': 'transparent'\n },\n '&:hover': {\n backgroundColor: (t.vars || t).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${c.rowSkeleton}:hover`]: {\n backgroundColor: 'transparent'\n },\n '&.Mui-selected': selectedStyles\n },\n [`& .${c['container--top']}, & .${c['container--bottom']}`]: {\n '[role=row]': {\n background: 'var(--DataGrid-containerBackground)'\n }\n },\n /* Cell styles */\n [`& .${c.cell}`]: {\n flex: '0 0 auto',\n height: 'var(--height)',\n width: 'var(--width)',\n lineHeight: 'calc(var(--height) - 1px)',\n // -1px for the border\n\n boxSizing: 'border-box',\n borderTop: `1px solid var(--rowBorderColor)`,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n '&.Mui-selected': selectedStyles\n },\n [`& .${c['virtualScrollerContent--overflowed']} .${c['row--lastVisible']} .${c.cell}`]: {\n borderTopColor: 'transparent'\n },\n [`& .${c['pinnedRows--top']} :first-of-type`]: {\n [`& .${c.cell}, .${c.scrollbarFiller}`]: {\n borderTop: 'none'\n }\n },\n [`&.${c['root--disableUserSelection']} .${c.cell}`]: {\n userSelect: 'none'\n },\n [`& .${c['row--dynamicHeight']} > .${c.cell}`]: {\n whiteSpace: 'initial',\n lineHeight: 'inherit'\n },\n [`& .${c.cellEmpty}`]: {\n padding: 0,\n height: 'unset'\n },\n [`& .${c.cell}.${c['cell--selectionMode']}`]: {\n cursor: 'default'\n },\n [`& .${c.cell}.${c['cell--editing']}`]: {\n padding: 1,\n display: 'flex',\n boxShadow: t.shadows[2],\n backgroundColor: (t.vars || t).palette.background.paper,\n '&:focus-within': {\n outline: `${focusOutlineWidth}px solid ${(t.vars || t).palette.primary.main}`,\n outlineOffset: focusOutlineWidth * -1\n }\n },\n [`& .${c['row--editing']}`]: {\n boxShadow: t.shadows[2]\n },\n [`& .${c['row--editing']} .${c.cell}`]: {\n boxShadow: t.shadows[0],\n backgroundColor: (t.vars || t).palette.background.paper\n },\n [`& .${c.editBooleanCell}`]: {\n display: 'flex',\n height: '100%',\n width: '100%',\n alignItems: 'center',\n justifyContent: 'center'\n },\n [`& .${c.booleanCell}[data-value=\"true\"]`]: {\n color: (t.vars || t).palette.text.secondary\n },\n [`& .${c.booleanCell}[data-value=\"false\"]`]: {\n color: (t.vars || t).palette.text.disabled\n },\n [`& .${c.actionsCell}`]: {\n display: 'inline-flex',\n alignItems: 'center',\n gridGap: t.spacing(1)\n },\n [`& .${c.rowReorderCell}`]: {\n display: 'inline-flex',\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n opacity: (t.vars || t).palette.action.disabledOpacity\n },\n [`& .${c['rowReorderCell--draggable']}`]: {\n cursor: 'move',\n opacity: 1\n },\n [`& .${c.rowReorderCellContainer}`]: {\n padding: 0,\n display: 'flex',\n alignItems: 'stretch'\n },\n [`.${c.withBorderColor}`]: {\n borderColor\n },\n [`& .${c['cell--withLeftBorder']}, & .${c['columnHeader--withLeftBorder']}`]: {\n borderLeftColor: 'var(--DataGrid-rowBorderColor)',\n borderLeftWidth: '1px',\n borderLeftStyle: 'solid'\n },\n [`& .${c['cell--withRightBorder']}, & .${c['columnHeader--withRightBorder']}`]: {\n borderRightColor: 'var(--DataGrid-rowBorderColor)',\n borderRightWidth: '1px',\n borderRightStyle: 'solid'\n },\n [`& .${c['cell--flex']}`]: {\n display: 'flex',\n alignItems: 'center',\n lineHeight: 'inherit'\n },\n [`& .${c['cell--textLeft']}`]: {\n textAlign: 'left',\n justifyContent: 'flex-start'\n },\n [`& .${c['cell--textRight']}`]: {\n textAlign: 'right',\n justifyContent: 'flex-end'\n },\n [`& .${c['cell--textCenter']}`]: {\n textAlign: 'center',\n justifyContent: 'center'\n },\n [`& .${c['cell--pinnedLeft']}, & .${c['cell--pinnedRight']}`]: {\n position: 'sticky',\n zIndex: 3,\n background: 'var(--DataGrid-pinnedBackground)',\n '&.Mui-selected': {\n backgroundColor: pinnedSelectedBackgroundColor\n }\n },\n [`& .${c.virtualScrollerContent} .${c.row}`]: {\n '&:hover': pinnedHoverStyles,\n '&.Mui-selected': pinnedSelectedStyles,\n '&.Mui-selected:hover': pinnedSelectedHoverStyles\n },\n [`& .${c.cellOffsetLeft}`]: {\n flex: '0 0 auto',\n display: 'inline-block'\n },\n [`& .${c.cellSkeleton}`]: {\n flex: '0 0 auto',\n height: '100%',\n display: 'inline-flex',\n alignItems: 'center'\n },\n [`& .${c.columnHeaderDraggableContainer}`]: {\n display: 'flex',\n width: '100%',\n height: '100%'\n },\n [`& .${c.rowReorderCellPlaceholder}`]: {\n display: 'none'\n },\n [`& .${c['columnHeader--dragging']}, & .${c['row--dragging']}`]: {\n background: (t.vars || t).palette.background.paper,\n padding: '0 12px',\n borderRadius: 'var(--unstable_DataGrid-radius)',\n opacity: (t.vars || t).palette.action.disabledOpacity\n },\n [`& .${c['row--dragging']}`]: {\n background: (t.vars || t).palette.background.paper,\n padding: '0 12px',\n borderRadius: 'var(--unstable_DataGrid-radius)',\n opacity: (t.vars || t).palette.action.disabledOpacity,\n [`& .${c.rowReorderCellPlaceholder}`]: {\n display: 'flex'\n }\n },\n [`& .${c.treeDataGroupingCell}`]: {\n display: 'flex',\n alignItems: 'center',\n width: '100%'\n },\n [`& .${c.treeDataGroupingCellToggle}`]: {\n flex: '0 0 28px',\n alignSelf: 'stretch',\n marginRight: t.spacing(2)\n },\n [`& .${c.treeDataGroupingCellLoadingContainer}, .${c.groupingCriteriaCellLoadingContainer}`]: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%'\n },\n [`& .${c.groupingCriteriaCell}`]: {\n display: 'flex',\n alignItems: 'center',\n width: '100%'\n },\n [`& .${c.groupingCriteriaCellToggle}`]: {\n flex: '0 0 28px',\n alignSelf: 'stretch',\n marginRight: t.spacing(2)\n },\n /* ScrollbarFiller styles */\n [`.${c.scrollbarFiller}`]: {\n minWidth: 'calc(var(--DataGrid-hasScrollY) * var(--DataGrid-scrollbarSize))',\n alignSelf: 'stretch',\n [`&.${c['scrollbarFiller--borderTop']}`]: {\n borderTop: '1px solid var(--DataGrid-rowBorderColor)'\n },\n [`&.${c['scrollbarFiller--borderBottom']}`]: {\n borderBottom: '1px solid var(--DataGrid-rowBorderColor)'\n },\n [`&.${c['scrollbarFiller--pinnedRight']}`]: {\n backgroundColor: 'var(--DataGrid-pinnedBackground)',\n position: 'sticky',\n right: 0\n }\n },\n [`& .${c.filler}`]: {\n flex: '1 0 auto'\n },\n [`& .${c['filler--borderBottom']}`]: {\n borderBottom: '1px solid var(--DataGrid-rowBorderColor)'\n },\n /* Hide grid rows, row filler, and vertical scrollbar when skeleton overlay is visible */\n [`& .${c['main--hasSkeletonLoadingOverlay']}`]: {\n [`& .${c.virtualScrollerContent}`]: {\n // We use visibility hidden so that the virtual scroller content retains its height.\n // Position fixed is used to remove the virtual scroller content from the flow.\n // https://github.com/mui/mui-x/issues/14061\n position: 'fixed',\n visibility: 'hidden'\n },\n [`& .${c['scrollbar--vertical']}, & .${c.pinnedRows}, & .${c.virtualScroller} > .${c.filler}`]: {\n display: 'none'\n }\n }\n });\n return gridStyle;\n});\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n */\nfunction blend(background, overlay, opacity, gamma = 1) {\n const f = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [f(backgroundColor.values[0], overlayColor.values[0]), f(backgroundColor.values[1], overlayColor.values[1]), f(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}\nconst removeOpacity = color => `rgb(from ${color} r g b / 1)`;\nfunction blendCssVars(background, overlay, opacity) {\n return `color-mix(in srgb,${background}, ${removeOpacity(overlay)} calc(${opacity} * 100%))`;\n}","import * as React from 'react';\nconst GridRootPropsContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n GridRootPropsContext.displayName = 'GridRootPropsContext';\n}\nexport { GridRootPropsContext };","import * as React from 'react';\nimport { GridRootPropsContext } from \"../../context/GridRootPropsContext.js\";\nexport const useGridRootProps = () => {\n const contextValue = React.useContext(GridRootPropsContext);\n if (!contextValue) {\n throw new Error('MUI X: useGridRootProps should only be used inside the DataGrid, DataGridPro or DataGridPremium component.');\n }\n return contextValue;\n};","// src/devModeChecks/identityFunctionCheck.ts\nvar runIdentityFunctionCheck = (resultFunc, inputSelectorsResults, outputSelectorResult) => {\n if (inputSelectorsResults.length === 1 && inputSelectorsResults[0] === outputSelectorResult) {\n let isInputSameAsOutput = false;\n try {\n const emptyObject = {};\n if (resultFunc(emptyObject) === emptyObject)\n isInputSameAsOutput = true;\n } catch {\n }\n if (isInputSameAsOutput) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"The result function returned its own inputs without modification. e.g\\n`createSelector([state => state.todos], todos => todos)`\\nThis could lead to inefficient memoization and unnecessary re-renders.\\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.\",\n { stack }\n );\n }\n }\n};\n\n// src/devModeChecks/inputStabilityCheck.ts\nvar runInputStabilityCheck = (inputSelectorResultsObject, options, inputSelectorArgs) => {\n const { memoize, memoizeOptions } = options;\n const { inputSelectorResults, inputSelectorResultsCopy } = inputSelectorResultsObject;\n const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions);\n const areInputSelectorResultsEqual = createAnEmptyObject.apply(null, inputSelectorResults) === createAnEmptyObject.apply(null, inputSelectorResultsCopy);\n if (!areInputSelectorResultsEqual) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"An input selector returned a different result when passed same arguments.\\nThis means your output selector will likely run more frequently than intended.\\nAvoid returning a new reference inside your input selector, e.g.\\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`\",\n {\n arguments: inputSelectorArgs,\n firstInputs: inputSelectorResults,\n secondInputs: inputSelectorResultsCopy,\n stack\n }\n );\n }\n};\n\n// src/devModeChecks/setGlobalDevModeChecks.ts\nvar globalDevModeChecks = {\n inputStabilityCheck: \"once\",\n identityFunctionCheck: \"once\"\n};\nvar setGlobalDevModeChecks = (devModeChecks) => {\n Object.assign(globalDevModeChecks, devModeChecks);\n};\n\n// src/utils.ts\nvar NOT_FOUND = /* @__PURE__ */ Symbol(\"NOT_FOUND\");\nfunction assertIsFunction(func, errorMessage = `expected a function, instead received ${typeof func}`) {\n if (typeof func !== \"function\") {\n throw new TypeError(errorMessage);\n }\n}\nfunction assertIsObject(object, errorMessage = `expected an object, instead received ${typeof object}`) {\n if (typeof object !== \"object\") {\n throw new TypeError(errorMessage);\n }\n}\nfunction assertIsArrayOfFunctions(array, errorMessage = `expected all items to be functions, instead received the following types: `) {\n if (!array.every((item) => typeof item === \"function\")) {\n const itemTypes = array.map(\n (item) => typeof item === \"function\" ? `function ${item.name || \"unnamed\"}()` : typeof item\n ).join(\", \");\n throw new TypeError(`${errorMessage}[${itemTypes}]`);\n }\n}\nvar ensureIsArray = (item) => {\n return Array.isArray(item) ? item : [item];\n};\nfunction getDependencies(createSelectorArgs) {\n const dependencies = Array.isArray(createSelectorArgs[0]) ? createSelectorArgs[0] : createSelectorArgs;\n assertIsArrayOfFunctions(\n dependencies,\n `createSelector expects all input-selectors to be functions, but received the following types: `\n );\n return dependencies;\n}\nfunction collectInputSelectorResults(dependencies, inputSelectorArgs) {\n const inputSelectorResults = [];\n const { length } = dependencies;\n for (let i = 0; i < length; i++) {\n inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs));\n }\n return inputSelectorResults;\n}\nvar getDevModeChecksExecutionInfo = (firstRun, devModeChecks) => {\n const { identityFunctionCheck, inputStabilityCheck } = {\n ...globalDevModeChecks,\n ...devModeChecks\n };\n return {\n identityFunctionCheck: {\n shouldRun: identityFunctionCheck === \"always\" || identityFunctionCheck === \"once\" && firstRun,\n run: runIdentityFunctionCheck\n },\n inputStabilityCheck: {\n shouldRun: inputStabilityCheck === \"always\" || inputStabilityCheck === \"once\" && firstRun,\n run: runInputStabilityCheck\n }\n };\n};\n\n// src/autotrackMemoize/autotracking.ts\nvar $REVISION = 0;\nvar CURRENT_TRACKER = null;\nvar Cell = class {\n revision = $REVISION;\n _value;\n _lastValue;\n _isEqual = tripleEq;\n constructor(initialValue, isEqual = tripleEq) {\n this._value = this._lastValue = initialValue;\n this._isEqual = isEqual;\n }\n // Whenever a storage value is read, it'll add itself to the current tracker if\n // one exists, entangling its state with that cache.\n get value() {\n CURRENT_TRACKER?.add(this);\n return this._value;\n }\n // Whenever a storage value is updated, we bump the global revision clock,\n // assign the revision for this storage to the new value, _and_ we schedule a\n // rerender. This is important, and it's what makes autotracking _pull_\n // based. We don't actively tell the caches which depend on the storage that\n // anything has happened. Instead, we recompute the caches when needed.\n set value(newValue) {\n if (this.value === newValue)\n return;\n this._value = newValue;\n this.revision = ++$REVISION;\n }\n};\nfunction tripleEq(a, b) {\n return a === b;\n}\nvar TrackingCache = class {\n _cachedValue;\n _cachedRevision = -1;\n _deps = [];\n hits = 0;\n fn;\n constructor(fn) {\n this.fn = fn;\n }\n clear() {\n this._cachedValue = void 0;\n this._cachedRevision = -1;\n this._deps = [];\n this.hits = 0;\n }\n get value() {\n if (this.revision > this._cachedRevision) {\n const { fn } = this;\n const currentTracker = /* @__PURE__ */ new Set();\n const prevTracker = CURRENT_TRACKER;\n CURRENT_TRACKER = currentTracker;\n this._cachedValue = fn();\n CURRENT_TRACKER = prevTracker;\n this.hits++;\n this._deps = Array.from(currentTracker);\n this._cachedRevision = this.revision;\n }\n CURRENT_TRACKER?.add(this);\n return this._cachedValue;\n }\n get revision() {\n return Math.max(...this._deps.map((d) => d.revision), 0);\n }\n};\nfunction getValue(cell) {\n if (!(cell instanceof Cell)) {\n console.warn(\"Not a valid cell! \", cell);\n }\n return cell.value;\n}\nfunction setValue(storage, value) {\n if (!(storage instanceof Cell)) {\n throw new TypeError(\n \"setValue must be passed a tracked store created with `createStorage`.\"\n );\n }\n storage.value = storage._lastValue = value;\n}\nfunction createCell(initialValue, isEqual = tripleEq) {\n return new Cell(initialValue, isEqual);\n}\nfunction createCache(fn) {\n assertIsFunction(\n fn,\n \"the first parameter to `createCache` must be a function\"\n );\n return new TrackingCache(fn);\n}\n\n// src/autotrackMemoize/tracking.ts\nvar neverEq = (a, b) => false;\nfunction createTag() {\n return createCell(null, neverEq);\n}\nfunction dirtyTag(tag, value) {\n setValue(tag, value);\n}\nvar consumeCollection = (node) => {\n let tag = node.collectionTag;\n if (tag === null) {\n tag = node.collectionTag = createTag();\n }\n getValue(tag);\n};\nvar dirtyCollection = (node) => {\n const tag = node.collectionTag;\n if (tag !== null) {\n dirtyTag(tag, null);\n }\n};\n\n// src/autotrackMemoize/proxy.ts\nvar REDUX_PROXY_LABEL = Symbol();\nvar nextId = 0;\nvar proto = Object.getPrototypeOf({});\nvar ObjectTreeNode = class {\n constructor(value) {\n this.value = value;\n this.value = value;\n this.tag.value = value;\n }\n proxy = new Proxy(this, objectProxyHandler);\n tag = createTag();\n tags = {};\n children = {};\n collectionTag = null;\n id = nextId++;\n};\nvar objectProxyHandler = {\n get(node, key) {\n function calculateResult() {\n const { value } = node;\n const childValue = Reflect.get(value, key);\n if (typeof key === \"symbol\") {\n return childValue;\n }\n if (key in proto) {\n return childValue;\n }\n if (typeof childValue === \"object\" && childValue !== null) {\n let childNode = node.children[key];\n if (childNode === void 0) {\n childNode = node.children[key] = createNode(childValue);\n }\n if (childNode.tag) {\n getValue(childNode.tag);\n }\n return childNode.proxy;\n } else {\n let tag = node.tags[key];\n if (tag === void 0) {\n tag = node.tags[key] = createTag();\n tag.value = childValue;\n }\n getValue(tag);\n return childValue;\n }\n }\n const res = calculateResult();\n return res;\n },\n ownKeys(node) {\n consumeCollection(node);\n return Reflect.ownKeys(node.value);\n },\n getOwnPropertyDescriptor(node, prop) {\n return Reflect.getOwnPropertyDescriptor(node.value, prop);\n },\n has(node, prop) {\n return Reflect.has(node.value, prop);\n }\n};\nvar ArrayTreeNode = class {\n constructor(value) {\n this.value = value;\n this.value = value;\n this.tag.value = value;\n }\n proxy = new Proxy([this], arrayProxyHandler);\n tag = createTag();\n tags = {};\n children = {};\n collectionTag = null;\n id = nextId++;\n};\nvar arrayProxyHandler = {\n get([node], key) {\n if (key === \"length\") {\n consumeCollection(node);\n }\n return objectProxyHandler.get(node, key);\n },\n ownKeys([node]) {\n return objectProxyHandler.ownKeys(node);\n },\n getOwnPropertyDescriptor([node], prop) {\n return objectProxyHandler.getOwnPropertyDescriptor(node, prop);\n },\n has([node], prop) {\n return objectProxyHandler.has(node, prop);\n }\n};\nfunction createNode(value) {\n if (Array.isArray(value)) {\n return new ArrayTreeNode(value);\n }\n return new ObjectTreeNode(value);\n}\nfunction updateNode(node, newValue) {\n const { value, tags, children } = node;\n node.value = newValue;\n if (Array.isArray(value) && Array.isArray(newValue) && value.length !== newValue.length) {\n dirtyCollection(node);\n } else {\n if (value !== newValue) {\n let oldKeysSize = 0;\n let newKeysSize = 0;\n let anyKeysAdded = false;\n for (const _key in value) {\n oldKeysSize++;\n }\n for (const key in newValue) {\n newKeysSize++;\n if (!(key in value)) {\n anyKeysAdded = true;\n break;\n }\n }\n const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize;\n if (isDifferent) {\n dirtyCollection(node);\n }\n }\n }\n for (const key in tags) {\n const childValue = value[key];\n const newChildValue = newValue[key];\n if (childValue !== newChildValue) {\n dirtyCollection(node);\n dirtyTag(tags[key], newChildValue);\n }\n if (typeof newChildValue === \"object\" && newChildValue !== null) {\n delete tags[key];\n }\n }\n for (const key in children) {\n const childNode = children[key];\n const newChildValue = newValue[key];\n const childValue = childNode.value;\n if (childValue === newChildValue) {\n continue;\n } else if (typeof newChildValue === \"object\" && newChildValue !== null) {\n updateNode(childNode, newChildValue);\n } else {\n deleteNode(childNode);\n delete children[key];\n }\n }\n}\nfunction deleteNode(node) {\n if (node.tag) {\n dirtyTag(node.tag, null);\n }\n dirtyCollection(node);\n for (const key in node.tags) {\n dirtyTag(node.tags[key], null);\n }\n for (const key in node.children) {\n deleteNode(node.children[key]);\n }\n}\n\n// src/lruMemoize.ts\nfunction createSingletonCache(equals) {\n let entry;\n return {\n get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n return NOT_FOUND;\n },\n put(key, value) {\n entry = { key, value };\n },\n getEntries() {\n return entry ? [entry] : [];\n },\n clear() {\n entry = void 0;\n }\n };\n}\nfunction createLruCache(maxSize, equals) {\n let entries = [];\n function get(key) {\n const cacheIndex = entries.findIndex((entry) => equals(key, entry.key));\n if (cacheIndex > -1) {\n const entry = entries[cacheIndex];\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n return entry.value;\n }\n return NOT_FOUND;\n }\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n entries.unshift({ key, value });\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n function getEntries() {\n return entries;\n }\n function clear() {\n entries = [];\n }\n return { get, put, getEntries, clear };\n}\nvar referenceEqualityCheck = (a, b) => a === b;\nfunction createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n const { length } = prev;\n for (let i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n return true;\n };\n}\nfunction lruMemoize(func, equalityCheckOrOptions) {\n const providedOptions = typeof equalityCheckOrOptions === \"object\" ? equalityCheckOrOptions : { equalityCheck: equalityCheckOrOptions };\n const {\n equalityCheck = referenceEqualityCheck,\n maxSize = 1,\n resultEqualityCheck\n } = providedOptions;\n const comparator = createCacheKeyComparator(equalityCheck);\n let resultsCount = 0;\n const cache = maxSize <= 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator);\n function memoized() {\n let value = cache.get(arguments);\n if (value === NOT_FOUND) {\n value = func.apply(null, arguments);\n resultsCount++;\n if (resultEqualityCheck) {\n const entries = cache.getEntries();\n const matchingEntry = entries.find(\n (entry) => resultEqualityCheck(entry.value, value)\n );\n if (matchingEntry) {\n value = matchingEntry.value;\n resultsCount !== 0 && resultsCount--;\n }\n }\n cache.put(arguments, value);\n }\n return value;\n }\n memoized.clearCache = () => {\n cache.clear();\n memoized.resetResultsCount();\n };\n memoized.resultsCount = () => resultsCount;\n memoized.resetResultsCount = () => {\n resultsCount = 0;\n };\n return memoized;\n}\n\n// src/autotrackMemoize/autotrackMemoize.ts\nfunction autotrackMemoize(func) {\n const node = createNode(\n []\n );\n let lastArgs = null;\n const shallowEqual = createCacheKeyComparator(referenceEqualityCheck);\n const cache = createCache(() => {\n const res = func.apply(null, node.proxy);\n return res;\n });\n function memoized() {\n if (!shallowEqual(lastArgs, arguments)) {\n updateNode(node, arguments);\n lastArgs = arguments;\n }\n return cache.value;\n }\n memoized.clearCache = () => {\n return cache.clear();\n };\n return memoized;\n}\n\n// src/weakMapMemoize.ts\nvar StrongRef = class {\n constructor(value) {\n this.value = value;\n }\n deref() {\n return this.value;\n }\n};\nvar Ref = typeof WeakRef !== \"undefined\" ? WeakRef : StrongRef;\nvar UNTERMINATED = 0;\nvar TERMINATED = 1;\nfunction createCacheNode() {\n return {\n s: UNTERMINATED,\n v: void 0,\n o: null,\n p: null\n };\n}\nfunction weakMapMemoize(func, options = {}) {\n let fnNode = createCacheNode();\n const { resultEqualityCheck } = options;\n let lastResult;\n let resultsCount = 0;\n function memoized() {\n let cacheNode = fnNode;\n const { length } = arguments;\n for (let i = 0, l = length; i < l; i++) {\n const arg = arguments[i];\n if (typeof arg === \"function\" || typeof arg === \"object\" && arg !== null) {\n let objectCache = cacheNode.o;\n if (objectCache === null) {\n cacheNode.o = objectCache = /* @__PURE__ */ new WeakMap();\n }\n const objectNode = objectCache.get(arg);\n if (objectNode === void 0) {\n cacheNode = createCacheNode();\n objectCache.set(arg, cacheNode);\n } else {\n cacheNode = objectNode;\n }\n } else {\n let primitiveCache = cacheNode.p;\n if (primitiveCache === null) {\n cacheNode.p = primitiveCache = /* @__PURE__ */ new Map();\n }\n const primitiveNode = primitiveCache.get(arg);\n if (primitiveNode === void 0) {\n cacheNode = createCacheNode();\n primitiveCache.set(arg, cacheNode);\n } else {\n cacheNode = primitiveNode;\n }\n }\n }\n const terminatedNode = cacheNode;\n let result;\n if (cacheNode.s === TERMINATED) {\n result = cacheNode.v;\n } else {\n result = func.apply(null, arguments);\n resultsCount++;\n if (resultEqualityCheck) {\n const lastResultValue = lastResult?.deref?.() ?? lastResult;\n if (lastResultValue != null && resultEqualityCheck(lastResultValue, result)) {\n result = lastResultValue;\n resultsCount !== 0 && resultsCount--;\n }\n const needsWeakRef = typeof result === \"object\" && result !== null || typeof result === \"function\";\n lastResult = needsWeakRef ? new Ref(result) : result;\n }\n }\n terminatedNode.s = TERMINATED;\n terminatedNode.v = result;\n return result;\n }\n memoized.clearCache = () => {\n fnNode = createCacheNode();\n memoized.resetResultsCount();\n };\n memoized.resultsCount = () => resultsCount;\n memoized.resetResultsCount = () => {\n resultsCount = 0;\n };\n return memoized;\n}\n\n// src/createSelectorCreator.ts\nfunction createSelectorCreator(memoizeOrOptions, ...memoizeOptionsFromArgs) {\n const createSelectorCreatorOptions = typeof memoizeOrOptions === \"function\" ? {\n memoize: memoizeOrOptions,\n memoizeOptions: memoizeOptionsFromArgs\n } : memoizeOrOptions;\n const createSelector2 = (...createSelectorArgs) => {\n let recomputations = 0;\n let dependencyRecomputations = 0;\n let lastResult;\n let directlyPassedOptions = {};\n let resultFunc = createSelectorArgs.pop();\n if (typeof resultFunc === \"object\") {\n directlyPassedOptions = resultFunc;\n resultFunc = createSelectorArgs.pop();\n }\n assertIsFunction(\n resultFunc,\n `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`\n );\n const combinedOptions = {\n ...createSelectorCreatorOptions,\n ...directlyPassedOptions\n };\n const {\n memoize,\n memoizeOptions = [],\n argsMemoize = weakMapMemoize,\n argsMemoizeOptions = [],\n devModeChecks = {}\n } = combinedOptions;\n const finalMemoizeOptions = ensureIsArray(memoizeOptions);\n const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions);\n const dependencies = getDependencies(createSelectorArgs);\n const memoizedResultFunc = memoize(function recomputationWrapper() {\n recomputations++;\n return resultFunc.apply(\n null,\n arguments\n );\n }, ...finalMemoizeOptions);\n let firstRun = true;\n const selector = argsMemoize(function dependenciesChecker() {\n dependencyRecomputations++;\n const inputSelectorResults = collectInputSelectorResults(\n dependencies,\n arguments\n );\n lastResult = memoizedResultFunc.apply(null, inputSelectorResults);\n if (process.env.NODE_ENV !== \"production\") {\n const { identityFunctionCheck, inputStabilityCheck } = getDevModeChecksExecutionInfo(firstRun, devModeChecks);\n if (identityFunctionCheck.shouldRun) {\n identityFunctionCheck.run(\n resultFunc,\n inputSelectorResults,\n lastResult\n );\n }\n if (inputStabilityCheck.shouldRun) {\n const inputSelectorResultsCopy = collectInputSelectorResults(\n dependencies,\n arguments\n );\n inputStabilityCheck.run(\n { inputSelectorResults, inputSelectorResultsCopy },\n { memoize, memoizeOptions: finalMemoizeOptions },\n arguments\n );\n }\n if (firstRun)\n firstRun = false;\n }\n return lastResult;\n }, ...finalArgsMemoizeOptions);\n return Object.assign(selector, {\n resultFunc,\n memoizedResultFunc,\n dependencies,\n dependencyRecomputations: () => dependencyRecomputations,\n resetDependencyRecomputations: () => {\n dependencyRecomputations = 0;\n },\n lastResult: () => lastResult,\n recomputations: () => recomputations,\n resetRecomputations: () => {\n recomputations = 0;\n },\n memoize,\n argsMemoize\n });\n };\n Object.assign(createSelector2, {\n withTypes: () => createSelector2\n });\n return createSelector2;\n}\nvar createSelector = /* @__PURE__ */ createSelectorCreator(weakMapMemoize);\n\n// src/createStructuredSelector.ts\nvar createStructuredSelector = Object.assign(\n (inputSelectorsObject, selectorCreator = createSelector) => {\n assertIsObject(\n inputSelectorsObject,\n `createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof inputSelectorsObject}`\n );\n const inputSelectorKeys = Object.keys(inputSelectorsObject);\n const dependencies = inputSelectorKeys.map(\n (key) => inputSelectorsObject[key]\n );\n const structuredSelector = selectorCreator(\n dependencies,\n (...inputSelectorResults) => {\n return inputSelectorResults.reduce((composition, value, index) => {\n composition[inputSelectorKeys[index]] = value;\n return composition;\n }, {});\n }\n );\n return structuredSelector;\n },\n { withTypes: () => createStructuredSelector }\n);\nexport {\n createSelector,\n createSelectorCreator,\n createStructuredSelector,\n lruMemoize,\n referenceEqualityCheck,\n setGlobalDevModeChecks,\n autotrackMemoize as unstable_autotrackMemoize,\n weakMapMemoize\n};\n//# sourceMappingURL=reselect.mjs.map","import { lruMemoize, createSelectorCreator } from 'reselect';\nimport { warnOnce } from '@mui/x-internals/warning';\nimport { argsEqual } from \"../hooks/utils/useGridSelector.js\";\nconst reselectCreateSelector = createSelectorCreator({\n memoize: lruMemoize,\n memoizeOptions: {\n maxSize: 1,\n equalityCheck: Object.is\n }\n});\n\n// TODO v8: Remove this type\n\n// TODO v8: Rename this type to `OutputSelector`\n\n// TODO v8: Remove this type\n\n// TODO v8: Rename this type to `SelectorArgs`\n\n// TODO v8: Remove this type\n\n// TODO v8: Rename this type to `CreateSelectorFunction`\n\nconst cache = new WeakMap();\nfunction checkIsAPIRef(value) {\n return 'current' in value && 'instanceId' in value.current;\n}\nconst DEFAULT_INSTANCE_ID = {\n id: 'default'\n};\n\n// TODO v8: Remove this function\nexport const createSelector = (a, b, c, d, e, f, ...other) => {\n if (other.length > 0) {\n throw new Error('Unsupported number of selectors');\n }\n let selector;\n\n // eslint-disable-next-line id-denylist\n if (a && b && c && d && e && f) {\n selector = (stateOrApiRef, instanceIdParam) => {\n const isAPIRef = checkIsAPIRef(stateOrApiRef);\n const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);\n const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;\n const va = a(state, instanceId);\n const vb = b(state, instanceId);\n const vc = c(state, instanceId);\n const vd = d(state, instanceId);\n const ve = e(state, instanceId);\n return f(va, vb, vc, vd, ve);\n };\n // eslint-disable-next-line id-denylist\n } else if (a && b && c && d && e) {\n selector = (stateOrApiRef, instanceIdParam) => {\n const isAPIRef = checkIsAPIRef(stateOrApiRef);\n const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);\n const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;\n const va = a(state, instanceId);\n const vb = b(state, instanceId);\n const vc = c(state, instanceId);\n const vd = d(state, instanceId);\n return e(va, vb, vc, vd);\n };\n } else if (a && b && c && d) {\n selector = (stateOrApiRef, instanceIdParam) => {\n const isAPIRef = checkIsAPIRef(stateOrApiRef);\n const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);\n const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;\n const va = a(state, instanceId);\n const vb = b(state, instanceId);\n const vc = c(state, instanceId);\n return d(va, vb, vc);\n };\n } else if (a && b && c) {\n selector = (stateOrApiRef, instanceIdParam) => {\n const isAPIRef = checkIsAPIRef(stateOrApiRef);\n const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);\n const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;\n const va = a(state, instanceId);\n const vb = b(state, instanceId);\n return c(va, vb);\n };\n } else if (a && b) {\n selector = (stateOrApiRef, instanceIdParam) => {\n const isAPIRef = checkIsAPIRef(stateOrApiRef);\n const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);\n const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;\n const va = a(state, instanceId);\n return b(va);\n };\n } else {\n throw new Error('Missing arguments');\n }\n\n // We use this property to detect if the selector was created with createSelector\n // or it's only a simple function the receives the state and returns part of it.\n selector.acceptsApiRef = true;\n return selector;\n};\n\n// TODO v8: Rename this function to `createSelector`\nexport const createSelectorV8 = (a, b, c, d, e, f, ...other) => {\n if (other.length > 0) {\n throw new Error('Unsupported number of selectors');\n }\n let selector;\n\n // eslint-disable-next-line id-denylist\n if (a && b && c && d && e && f) {\n selector = (stateOrApiRef, args, instanceIdParam) => {\n const isAPIRef = checkIsAPIRef(stateOrApiRef);\n const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);\n const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;\n const va = a(state, args, instanceId);\n const vb = b(state, args, instanceId);\n const vc = c(state, args, instanceId);\n const vd = d(state, args, instanceId);\n const ve = e(state, args, instanceId);\n return f(va, vb, vc, vd, ve, args);\n };\n // eslint-disable-next-line id-denylist\n } else if (a && b && c && d && e) {\n selector = (stateOrApiRef, args, instanceIdParam) => {\n const isAPIRef = checkIsAPIRef(stateOrApiRef);\n const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);\n const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;\n const va = a(state, args, instanceId);\n const vb = b(state, args, instanceId);\n const vc = c(state, args, instanceId);\n const vd = d(state, args, instanceId);\n return e(va, vb, vc, vd, args);\n };\n } else if (a && b && c && d) {\n selector = (stateOrApiRef, args, instanceIdParam) => {\n const isAPIRef = checkIsAPIRef(stateOrApiRef);\n const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);\n const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;\n const va = a(state, args, instanceId);\n const vb = b(state, args, instanceId);\n const vc = c(state, args, instanceId);\n return d(va, vb, vc, args);\n };\n } else if (a && b && c) {\n selector = (stateOrApiRef, args, instanceIdParam) => {\n const isAPIRef = checkIsAPIRef(stateOrApiRef);\n const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);\n const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;\n const va = a(state, args, instanceId);\n const vb = b(state, args, instanceId);\n return c(va, vb, args);\n };\n } else if (a && b) {\n selector = (stateOrApiRef, args, instanceIdParam) => {\n const isAPIRef = checkIsAPIRef(stateOrApiRef);\n const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);\n const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;\n const va = a(state, args, instanceId);\n return b(va, args);\n };\n } else {\n throw new Error('Missing arguments');\n }\n\n // We use this property to detect if the selector was created with createSelector\n // or it's only a simple function the receives the state and returns part of it.\n selector.acceptsApiRef = true;\n return selector;\n};\n\n// TODO v8: Remove this function\nexport const createSelectorMemoized = (...args) => {\n const selector = (stateOrApiRef, instanceId) => {\n const isAPIRef = checkIsAPIRef(stateOrApiRef);\n const cacheKey = isAPIRef ? stateOrApiRef.current.instanceId : instanceId ?? DEFAULT_INSTANCE_ID;\n const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;\n if (process.env.NODE_ENV !== 'production') {\n if (cacheKey.id === 'default') {\n warnOnce(['MUI X: A selector was called without passing the instance ID, which may impact the performance of the grid.', 'To fix, call it with `apiRef`, for example `mySelector(apiRef)`, or pass the instance ID explicitly, for example `mySelector(state, apiRef.current.instanceId)`.']);\n }\n }\n const cacheArgsInit = cache.get(cacheKey);\n const cacheArgs = cacheArgsInit ?? new Map();\n const cacheFn = cacheArgs?.get(args);\n if (cacheArgs && cacheFn) {\n // We pass the cache key because the called selector might have as\n // dependency another selector created with this `createSelector`.\n return cacheFn(state, cacheKey);\n }\n const fn = reselectCreateSelector(...args);\n if (!cacheArgsInit) {\n cache.set(cacheKey, cacheArgs);\n }\n cacheArgs.set(args, fn);\n return fn(state, cacheKey);\n };\n\n // We use this property to detect if the selector was created with createSelector\n // or it's only a simple function the receives the state and returns part of it.\n selector.acceptsApiRef = true;\n return selector;\n};\n\n// TODO v8: Rename this function to `createSelectorMemoized`\nexport const createSelectorMemoizedV8 = (...args) => {\n const selector = (stateOrApiRef, selectorArgs, instanceId) => {\n const isAPIRef = checkIsAPIRef(stateOrApiRef);\n const cacheKey = isAPIRef ? stateOrApiRef.current.instanceId : instanceId ?? DEFAULT_INSTANCE_ID;\n const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;\n if (process.env.NODE_ENV !== 'production') {\n if (cacheKey.id === 'default') {\n warnOnce(['MUI X: A selector was called without passing the instance ID, which may impact the performance of the grid.', 'To fix, call it with `apiRef`, for example `mySelector(apiRef)`, or pass the instance ID explicitly, for example `mySelector(state, apiRef.current.instanceId)`.']);\n }\n }\n const cacheArgsInit = cache.get(cacheKey);\n const cacheArgs = cacheArgsInit ?? new Map();\n const cacheFn = cacheArgs?.get(args);\n if (cacheArgs && cacheFn) {\n if (!argsEqual(cacheFn.selectorArgs, selectorArgs)) {\n const reselectArgs = selectorArgs !== undefined ? [...args.slice(0, args.length - 1), () => selectorArgs, args[args.length - 1]] : args;\n const fn = reselectCreateSelector(...reselectArgs);\n fn.selectorArgs = selectorArgs;\n cacheArgs.set(args, fn);\n return fn(state, selectorArgs, cacheKey);\n }\n // We pass the cache key because the called selector might have as\n // dependency another selector created with this `createSelector`.\n return cacheFn(state, selectorArgs, cacheKey);\n }\n const reselectArgs = selectorArgs !== undefined ? [...args.slice(0, args.length - 1), () => selectorArgs, args[args.length - 1]] : args;\n const fn = reselectCreateSelector(...reselectArgs);\n fn.selectorArgs = selectorArgs;\n if (!cacheArgsInit) {\n cache.set(cacheKey, cacheArgs);\n }\n cacheArgs.set(args, fn);\n return fn(state, selectorArgs, cacheKey);\n };\n\n // We use this property to detect if the selector was created with createSelector\n // or it's only a simple function the receives the state and returns part of it.\n selector.acceptsApiRef = true;\n return selector;\n};","import { createSelector } from \"../../../utils/createSelector.js\";\nexport const COMPACT_DENSITY_FACTOR = 0.7;\nexport const COMFORTABLE_DENSITY_FACTOR = 1.3;\nconst DENSITY_FACTORS = {\n compact: COMPACT_DENSITY_FACTOR,\n comfortable: COMFORTABLE_DENSITY_FACTOR,\n standard: 1\n};\nexport const gridDensitySelector = state => state.density;\nexport const gridDensityFactorSelector = createSelector(gridDensitySelector, density => DENSITY_FACTORS[density]);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_useForkRef as useForkRef, unstable_useEnhancedEffect as useEnhancedEffect, unstable_capitalize as capitalize, unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { GridRootStyles } from \"./GridRootStyles.js\";\nimport { useGridSelector } from \"../../hooks/utils/useGridSelector.js\";\nimport { useGridPrivateApiContext } from \"../../hooks/utils/useGridPrivateApiContext.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { gridDensitySelector } from \"../../hooks/features/density/densitySelector.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = (ownerState, density) => {\n const {\n autoHeight,\n classes,\n showCellVerticalBorder\n } = ownerState;\n const slots = {\n root: ['root', autoHeight && 'autoHeight', `root--density${capitalize(density)}`, ownerState.slots.toolbar === null && 'root--noToolbar', 'withBorderColor', showCellVerticalBorder && 'withVerticalBorder']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridRoot = forwardRef(function GridRoot(props, ref) {\n const rootProps = useGridRootProps();\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridPrivateApiContext();\n const density = useGridSelector(apiRef, gridDensitySelector);\n const rootElementRef = apiRef.current.rootElementRef;\n const handleRef = useForkRef(rootElementRef, ref);\n const ownerState = rootProps;\n const classes = useUtilityClasses(ownerState, density);\n\n // Our implementation of <NoSsr />\n const [mountedState, setMountedState] = React.useState(false);\n useEnhancedEffect(() => {\n setMountedState(true);\n }, []);\n if (!mountedState) {\n return null;\n }\n return /*#__PURE__*/_jsx(GridRootStyles, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n ref: handleRef\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridRoot.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { GridRoot };","export let GridPinnedColumnPosition = /*#__PURE__*/function (GridPinnedColumnPosition) {\n GridPinnedColumnPosition[\"LEFT\"] = \"left\";\n GridPinnedColumnPosition[\"RIGHT\"] = \"right\";\n return GridPinnedColumnPosition;\n}({});\nexport const EMPTY_PINNED_COLUMN_FIELDS = {\n left: [],\n right: []\n};","import { createSelector, createSelectorMemoized } from \"../../../utils/createSelector.js\";\nimport { EMPTY_PINNED_COLUMN_FIELDS } from \"./gridColumnsInterfaces.js\";\nimport { gridIsRtlSelector } from \"../../core/gridCoreSelector.js\";\n\n/**\n * Get the columns state\n * @category Columns\n */\nexport const gridColumnsStateSelector = state => state.columns;\n\n/**\n * Get an array of column fields in the order rendered on screen.\n * @category Columns\n */\nexport const gridColumnFieldsSelector = createSelector(gridColumnsStateSelector, columnsState => columnsState.orderedFields);\n\n/**\n * Get the columns as a lookup (an object containing the field for keys and the definition for values).\n * @category Columns\n */\nexport const gridColumnLookupSelector = createSelector(gridColumnsStateSelector, columnsState => columnsState.lookup);\n\n/**\n * Get an array of column definitions in the order rendered on screen..\n * @category Columns\n */\nexport const gridColumnDefinitionsSelector = createSelectorMemoized(gridColumnFieldsSelector, gridColumnLookupSelector, (allFields, lookup) => allFields.map(field => lookup[field]));\n\n/**\n * Get the column visibility model, containing the visibility status of each column.\n * If a column is not registered in the model, it is visible.\n * @category Visible Columns\n */\nexport const gridColumnVisibilityModelSelector = createSelector(gridColumnsStateSelector, columnsState => columnsState.columnVisibilityModel);\n\n/**\n * Get the visible columns as a lookup (an object containing the field for keys and the definition for values).\n * @category Visible Columns\n */\nexport const gridVisibleColumnDefinitionsSelector = createSelectorMemoized(gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector, (columns, columnVisibilityModel) => columns.filter(column => columnVisibilityModel[column.field] !== false));\n\n/**\n * Get the field of each visible column.\n * @category Visible Columns\n */\nexport const gridVisibleColumnFieldsSelector = createSelectorMemoized(gridVisibleColumnDefinitionsSelector, visibleColumns => visibleColumns.map(column => column.field));\n\n/**\n * Get the visible pinned columns model.\n * @category Visible Columns\n */\nexport const gridPinnedColumnsSelector = state => state.pinnedColumns;\n\n/**\n * Get the visible pinned columns.\n * @category Visible Columns\n */\nexport const gridVisiblePinnedColumnDefinitionsSelector = createSelectorMemoized(gridColumnsStateSelector, gridPinnedColumnsSelector, gridVisibleColumnFieldsSelector, gridIsRtlSelector, (columnsState, model, visibleColumnFields, isRtl) => {\n const visiblePinnedFields = filterVisibleColumns(model, visibleColumnFields, isRtl);\n const visiblePinnedColumns = {\n left: visiblePinnedFields.left.map(field => columnsState.lookup[field]),\n right: visiblePinnedFields.right.map(field => columnsState.lookup[field])\n };\n return visiblePinnedColumns;\n});\nfunction filterVisibleColumns(pinnedColumns, columns, invert) {\n if (!Array.isArray(pinnedColumns.left) && !Array.isArray(pinnedColumns.right)) {\n return EMPTY_PINNED_COLUMN_FIELDS;\n }\n if (pinnedColumns.left?.length === 0 && pinnedColumns.right?.length === 0) {\n return EMPTY_PINNED_COLUMN_FIELDS;\n }\n const filter = (newPinnedColumns, remainingColumns) => {\n if (!Array.isArray(newPinnedColumns)) {\n return [];\n }\n return newPinnedColumns.filter(field => remainingColumns.includes(field));\n };\n const leftPinnedColumns = filter(pinnedColumns.left, columns);\n const columnsWithoutLeftPinnedColumns = columns.filter(\n // Filter out from the remaining columns those columns already pinned to the left\n field => !leftPinnedColumns.includes(field));\n const rightPinnedColumns = filter(pinnedColumns.right, columnsWithoutLeftPinnedColumns);\n if (invert) {\n return {\n left: rightPinnedColumns,\n right: leftPinnedColumns\n };\n }\n return {\n left: leftPinnedColumns,\n right: rightPinnedColumns\n };\n}\n\n/**\n * Get the left position in pixel of each visible columns relative to the left of the first column.\n * @category Visible Columns\n */\nexport const gridColumnPositionsSelector = createSelectorMemoized(gridVisibleColumnDefinitionsSelector, visibleColumns => {\n const positions = [];\n let currentPosition = 0;\n for (let i = 0; i < visibleColumns.length; i += 1) {\n positions.push(currentPosition);\n currentPosition += visibleColumns[i].computedWidth;\n }\n return positions;\n});\n\n/**\n * Get the summed width of all the visible columns.\n * @category Visible Columns\n */\nexport const gridColumnsTotalWidthSelector = createSelector(gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector, (visibleColumns, positions) => {\n const colCount = visibleColumns.length;\n if (colCount === 0) {\n return 0;\n }\n return positions[colCount - 1] + visibleColumns[colCount - 1].computedWidth;\n});\n\n/**\n * Get the filterable columns as an array.\n * @category Columns\n */\nexport const gridFilterableColumnDefinitionsSelector = createSelectorMemoized(gridColumnDefinitionsSelector, columns => columns.filter(col => col.filterable));\n\n/**\n * Get the filterable columns as a lookup (an object containing the field for keys and the definition for values).\n * @category Columns\n */\nexport const gridFilterableColumnLookupSelector = createSelectorMemoized(gridColumnDefinitionsSelector, columns => columns.reduce((acc, col) => {\n if (col.filterable) {\n acc[col.field] = col;\n }\n return acc;\n}, {}));\n\n/**\n * Checks if some column has a colSpan field.\n * @category Columns\n * @ignore - Do not document\n */\nexport const gridHasColSpanSelector = createSelectorMemoized(gridColumnDefinitionsSelector, columns => columns.some(column => column.colSpan !== undefined));","/**\n * Get the theme state\n * @category Core\n */\nexport const gridIsRtlSelector = state => state.isRtl;","export const gridPreferencePanelStateSelector = state => state.preferencePanel;","var GridPreferencePanelsValue = /*#__PURE__*/function (GridPreferencePanelsValue) {\n GridPreferencePanelsValue[\"filters\"] = \"filters\";\n GridPreferencePanelsValue[\"columns\"] = \"columns\";\n return GridPreferencePanelsValue;\n}(GridPreferencePanelsValue || {});\nexport { GridPreferencePanelsValue };","import * as React from 'react';\nexport const GridApiContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n GridApiContext.displayName = 'GridApiContext';\n}","import * as React from 'react';\nimport { GridApiContext } from \"../../components/GridApiContext.js\";\nexport function useGridApiContext() {\n const apiRef = React.useContext(GridApiContext);\n if (apiRef === undefined) {\n throw new Error(['MUI X: Could not find the Data Grid context.', 'It looks like you rendered your component outside of a DataGrid, DataGridPro or DataGridPremium parent component.', 'This can also happen if you are bundling multiple versions of the Data Grid.'].join('\\n'));\n }\n return apiRef;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { gridColumnDefinitionsSelector } from \"../../hooks/features/columns/gridColumnsSelector.js\";\nimport { useGridSelector } from \"../../hooks/utils/useGridSelector.js\";\nimport { gridPreferencePanelStateSelector } from \"../../hooks/features/preferencesPanel/gridPreferencePanelSelector.js\";\nimport { GridPreferencePanelsValue } from \"../../hooks/features/preferencesPanel/gridPreferencePanelsValue.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function GridPreferencesPanel() {\n const apiRef = useGridApiContext();\n const columns = useGridSelector(apiRef, gridColumnDefinitionsSelector);\n const rootProps = useGridRootProps();\n const preferencePanelState = useGridSelector(apiRef, gridPreferencePanelStateSelector);\n const panelContent = apiRef.current.unstable_applyPipeProcessors('preferencePanel', null, preferencePanelState.openedPanelValue ?? GridPreferencePanelsValue.filters);\n return /*#__PURE__*/_jsx(rootProps.slots.panel, _extends({\n as: rootProps.slots.basePopper,\n open: columns.length > 0 && preferencePanelState.open,\n id: preferencePanelState.panelId,\n \"aria-labelledby\": preferencePanelState.labelId\n }, rootProps.slotProps?.panel, rootProps.slotProps?.basePopper, {\n children: panelContent\n }));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridRootProps } from \"../hooks/utils/useGridRootProps.js\";\nimport { GridPreferencesPanel } from \"./panel/GridPreferencesPanel.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function GridHeader() {\n const rootProps = useGridRootProps();\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(GridPreferencesPanel, {}), rootProps.slots.toolbar && /*#__PURE__*/_jsx(rootProps.slots.toolbar, _extends({}, rootProps.slotProps?.toolbar))]\n });\n}","import * as React from 'react';\nimport { fastObjectShallowCompare } from \"../fastObjectShallowCompare/index.js\";\nexport function fastMemo(component) {\n return /*#__PURE__*/React.memo(component, fastObjectShallowCompare);\n}","// If no effect ran after this amount of time, we assume that the render was not committed by React\nconst CLEANUP_TIMER_LOOP_MILLIS = 1000;\nexport class TimerBasedCleanupTracking {\n constructor(timeout = CLEANUP_TIMER_LOOP_MILLIS) {\n this.timeouts = new Map();\n this.cleanupTimeout = CLEANUP_TIMER_LOOP_MILLIS;\n this.cleanupTimeout = timeout;\n }\n register(object, unsubscribe, unregisterToken) {\n if (!this.timeouts) {\n this.timeouts = new Map();\n }\n const timeout = setTimeout(() => {\n if (typeof unsubscribe === 'function') {\n unsubscribe();\n }\n this.timeouts.delete(unregisterToken.cleanupToken);\n }, this.cleanupTimeout);\n this.timeouts.set(unregisterToken.cleanupToken, timeout);\n }\n unregister(unregisterToken) {\n const timeout = this.timeouts.get(unregisterToken.cleanupToken);\n if (timeout) {\n this.timeouts.delete(unregisterToken.cleanupToken);\n clearTimeout(timeout);\n }\n }\n reset() {\n if (this.timeouts) {\n this.timeouts.forEach((value, key) => {\n this.unregister({\n cleanupToken: key\n });\n });\n this.timeouts = undefined;\n }\n }\n}","export class FinalizationRegistryBasedCleanupTracking {\n constructor() {\n this.registry = new FinalizationRegistry(unsubscribe => {\n if (typeof unsubscribe === 'function') {\n unsubscribe();\n }\n });\n }\n register(object, unsubscribe, unregisterToken) {\n this.registry.register(object, unsubscribe, unregisterToken);\n }\n unregister(unregisterToken) {\n this.registry.unregister(unregisterToken);\n }\n\n // eslint-disable-next-line class-methods-use-this\n reset() {}\n}","import * as React from 'react';\nimport { TimerBasedCleanupTracking } from \"../../utils/cleanupTracking/TimerBasedCleanupTracking.js\";\nimport { FinalizationRegistryBasedCleanupTracking } from \"../../utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js\";\n/**\n * Signal to the underlying logic what version of the public component API\n * of the Data Grid is exposed.\n */\nvar GridSignature = /*#__PURE__*/function (GridSignature) {\n GridSignature[\"DataGrid\"] = \"DataGrid\";\n GridSignature[\"DataGridPro\"] = \"DataGridPro\";\n GridSignature[\"DataGridPremium\"] = \"DataGridPremium\";\n return GridSignature;\n}(GridSignature || {});\n// We use class to make it easier to detect in heap snapshots by name\nclass ObjectToBeRetainedByReact {}\n\n// Based on https://github.com/Bnaya/use-dispose-uncommitted/blob/main/src/finalization-registry-based-impl.ts\n// Check https://github.com/facebook/react/issues/15317 to get more information\nexport function createUseGridApiEventHandler(registryContainer) {\n let cleanupTokensCounter = 0;\n return function useGridApiEventHandler(apiRef, eventName, handler, options) {\n if (registryContainer.registry === null) {\n registryContainer.registry = typeof FinalizationRegistry !== 'undefined' ? new FinalizationRegistryBasedCleanupTracking() : new TimerBasedCleanupTracking();\n }\n const [objectRetainedByReact] = React.useState(new ObjectToBeRetainedByReact());\n const subscription = React.useRef(null);\n const handlerRef = React.useRef(null);\n handlerRef.current = handler;\n const cleanupTokenRef = React.useRef(null);\n if (!subscription.current && handlerRef.current) {\n const enhancedHandler = (params, event, details) => {\n if (!event.defaultMuiPrevented) {\n handlerRef.current?.(params, event, details);\n }\n };\n subscription.current = apiRef.current.subscribeEvent(eventName, enhancedHandler, options);\n cleanupTokensCounter += 1;\n cleanupTokenRef.current = {\n cleanupToken: cleanupTokensCounter\n };\n registryContainer.registry.register(objectRetainedByReact,\n // The callback below will be called once this reference stops being retained\n () => {\n subscription.current?.();\n subscription.current = null;\n cleanupTokenRef.current = null;\n }, cleanupTokenRef.current);\n } else if (!handlerRef.current && subscription.current) {\n subscription.current();\n subscription.current = null;\n if (cleanupTokenRef.current) {\n registryContainer.registry.unregister(cleanupTokenRef.current);\n cleanupTokenRef.current = null;\n }\n }\n React.useEffect(() => {\n if (!subscription.current && handlerRef.current) {\n const enhancedHandler = (params, event, details) => {\n if (!event.defaultMuiPrevented) {\n handlerRef.current?.(params, event, details);\n }\n };\n subscription.current = apiRef.current.subscribeEvent(eventName, enhancedHandler, options);\n }\n if (cleanupTokenRef.current && registryContainer.registry) {\n // If the effect was called, it means that this render was committed\n // so we can trust the cleanup function to remove the listener.\n registryContainer.registry.unregister(cleanupTokenRef.current);\n cleanupTokenRef.current = null;\n }\n return () => {\n subscription.current?.();\n subscription.current = null;\n };\n }, [apiRef, eventName, options]);\n };\n}\nconst registryContainer = {\n registry: null\n};\n\n// TODO: move to @mui/x-data-grid/internals\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_resetCleanupTracking = () => {\n registryContainer.registry?.reset();\n registryContainer.registry = null;\n};\nexport const useGridApiEventHandler = createUseGridApiEventHandler(registryContainer);\nconst optionsSubscriberOptions = {\n isFirst: true\n};\nexport function useGridApiOptionHandler(apiRef, eventName, handler) {\n useGridApiEventHandler(apiRef, eventName, handler, optionsSubscriberOptions);\n}\nexport { GridSignature };","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"id\", \"value\", \"formattedValue\", \"api\", \"field\", \"row\", \"rowNode\", \"colDef\", \"cellMode\", \"isEditable\", \"tabIndex\", \"hasFocus\", \"isValidating\", \"debounceMs\", \"isProcessingProps\", \"onValueChange\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { styled } from '@mui/material/styles';\nimport InputBase from '@mui/material/InputBase';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['editInputCell']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridEditInputCellRoot = styled(InputBase, {\n name: 'MuiDataGrid',\n slot: 'EditInputCell',\n overridesResolver: (props, styles) => styles.editInputCell\n})(({\n theme\n}) => _extends({}, theme.typography.body2, {\n padding: '1px 0',\n '& input': {\n padding: '0 16px',\n height: '100%'\n }\n}));\nconst GridEditInputCell = forwardRef((props, ref) => {\n const rootProps = useGridRootProps();\n const {\n id,\n value,\n field,\n colDef,\n hasFocus,\n debounceMs = 200,\n isProcessingProps,\n onValueChange\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridApiContext();\n const inputRef = React.useRef(null);\n const [valueState, setValueState] = React.useState(value);\n const classes = useUtilityClasses(rootProps);\n const handleChange = React.useCallback(async event => {\n const newValue = event.target.value;\n if (onValueChange) {\n await onValueChange(event, newValue);\n }\n const column = apiRef.current.getColumn(field);\n let parsedValue = newValue;\n if (column.valueParser) {\n parsedValue = column.valueParser(newValue, apiRef.current.getRow(id), column, apiRef);\n }\n setValueState(parsedValue);\n apiRef.current.setEditCellValue({\n id,\n field,\n value: parsedValue,\n debounceMs,\n unstable_skipValueParser: true\n }, event);\n }, [apiRef, debounceMs, field, id, onValueChange]);\n const meta = apiRef.current.unstable_getEditCellMeta(id, field);\n React.useEffect(() => {\n if (meta?.changeReason !== 'debouncedSetEditCellValue') {\n setValueState(value);\n }\n }, [meta, value]);\n useEnhancedEffect(() => {\n if (hasFocus) {\n inputRef.current.focus();\n }\n }, [hasFocus]);\n return /*#__PURE__*/_jsx(GridEditInputCellRoot, _extends({\n inputRef: inputRef,\n className: classes.root,\n ownerState: rootProps,\n fullWidth: true,\n type: colDef.type === 'number' ? colDef.type : 'text',\n value: valueState ?? '',\n onChange: handleChange,\n endAdornment: isProcessingProps ? /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {\n fontSize: \"small\",\n color: \"action\"\n }) : undefined\n }, other, {\n ref: ref\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridEditInputCell.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * GridApi that let you manipulate the grid.\n */\n api: PropTypes.object.isRequired,\n /**\n * The mode of the cell.\n */\n cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,\n changeReason: PropTypes.oneOf(['debouncedSetEditCellValue', 'setEditCellValue']),\n /**\n * The column of the row that the current cell belongs to.\n */\n colDef: PropTypes.object.isRequired,\n debounceMs: PropTypes.number,\n /**\n * The column field of the cell that triggered the event.\n */\n field: PropTypes.string.isRequired,\n /**\n * The cell value formatted with the column valueFormatter.\n */\n formattedValue: PropTypes.any,\n /**\n * If true, the cell is the active element.\n */\n hasFocus: PropTypes.bool.isRequired,\n /**\n * The grid row id.\n */\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n /**\n * If true, the cell is editable.\n */\n isEditable: PropTypes.bool,\n isProcessingProps: PropTypes.bool,\n isValidating: PropTypes.bool,\n /**\n * Callback called when the value is changed by the user.\n * @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.\n * @param {Date | null} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.\n * @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`\n */\n onValueChange: PropTypes.func,\n /**\n * The row model of the row that the current cell belongs to.\n */\n row: PropTypes.any.isRequired,\n /**\n * The node of the row that the current cell belongs to.\n */\n rowNode: PropTypes.object.isRequired,\n /**\n * the tabIndex value.\n */\n tabIndex: PropTypes.oneOf([-1, 0]).isRequired,\n /**\n * The cell value.\n * If the column has `valueGetter`, use `params.row` to directly access the fields.\n */\n value: PropTypes.any\n} : void 0;\nexport { GridEditInputCell };\nexport const renderEditInputCell = params => /*#__PURE__*/_jsx(GridEditInputCell, _extends({}, params));","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { warnOnce } from '@mui/x-internals/warning';\nexport const sanitizeSortModel = (model, disableMultipleColumnsSorting) => {\n if (disableMultipleColumnsSorting && model.length > 1) {\n if (process.env.NODE_ENV !== 'production') {\n warnOnce(['MUI X: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the Data Grid, this prop is always `true`.'], 'error');\n }\n return [model[0]];\n }\n return model;\n};\nexport const mergeStateWithSortModel = (sortModel, disableMultipleColumnsSorting) => state => _extends({}, state, {\n sorting: _extends({}, state.sorting, {\n sortModel: sanitizeSortModel(sortModel, disableMultipleColumnsSorting)\n })\n});\nconst isDesc = direction => direction === 'desc';\n\n/**\n * Transform an item of the sorting model into a method comparing two rows.\n * @param {GridSortItem} sortItem The sort item we want to apply.\n * @param {React.MutableRefObject<GridApiCommunity>} apiRef The API of the grid.\n * @returns {GridParsedSortItem | null} The parsed sort item. Returns `null` is the sort item is not valid.\n */\nconst parseSortItem = (sortItem, apiRef) => {\n const column = apiRef.current.getColumn(sortItem.field);\n if (!column || sortItem.sort === null) {\n return null;\n }\n let comparator;\n if (column.getSortComparator) {\n comparator = column.getSortComparator(sortItem.sort);\n } else {\n comparator = isDesc(sortItem.sort) ? (...args) => -1 * column.sortComparator(...args) : column.sortComparator;\n }\n if (!comparator) {\n return null;\n }\n const getSortCellParams = id => ({\n id,\n field: column.field,\n rowNode: apiRef.current.getRowNode(id),\n value: apiRef.current.getCellValue(id, column.field),\n api: apiRef.current\n });\n return {\n getSortCellParams,\n comparator\n };\n};\n/**\n * Compare two rows according to a list of valid sort items.\n * The `row1Params` and `row2Params` must have the same length as `parsedSortItems`,\n * and each of their index must contain the `GridSortCellParams` of the sort item with the same index.\n * @param {GridParsedSortItem[]} parsedSortItems All the sort items with which we want to compare the rows.\n * @param {GridRowAggregatedSortingParams} row1 The node and params of the 1st row for each sort item.\n * @param {GridRowAggregatedSortingParams} row2 The node and params of the 2nd row for each sort item.\n */\nconst compareRows = (parsedSortItems, row1, row2) => {\n return parsedSortItems.reduce((res, item, index) => {\n if (res !== 0) {\n // return the results of the first comparator which distinguish the two rows\n return res;\n }\n const sortCellParams1 = row1.params[index];\n const sortCellParams2 = row2.params[index];\n res = item.comparator(sortCellParams1.value, sortCellParams2.value, sortCellParams1, sortCellParams2);\n return res;\n }, 0);\n};\n\n/**\n * Generates a method to easily sort a list of rows according to the current sort model.\n * @param {GridSortModel} sortModel The model with which we want to sort the rows.\n * @param {React.MutableRefObject<GridApiCommunity>} apiRef The API of the grid.\n * @returns {GridSortingModelApplier | null} A method that generates a list of sorted row ids from a list of rows according to the current sort model. If `null`, we consider that the rows should remain in the order there were provided.\n */\nexport const buildAggregatedSortingApplier = (sortModel, apiRef) => {\n const comparatorList = sortModel.map(item => parseSortItem(item, apiRef)).filter(comparator => !!comparator);\n if (comparatorList.length === 0) {\n return null;\n }\n return rowList => rowList.map(node => ({\n node,\n params: comparatorList.map(el => el.getSortCellParams(node.id))\n })).sort((a, b) => compareRows(comparatorList, a, b)).map(row => row.node.id);\n};\nexport const getNextGridSortDirection = (sortingOrder, current) => {\n const currentIdx = sortingOrder.indexOf(current);\n if (!current || currentIdx === -1 || currentIdx + 1 === sortingOrder.length) {\n return sortingOrder[0];\n }\n return sortingOrder[currentIdx + 1];\n};\nconst gridNillComparator = (v1, v2) => {\n if (v1 == null && v2 != null) {\n return -1;\n }\n if (v2 == null && v1 != null) {\n return 1;\n }\n if (v1 == null && v2 == null) {\n return 0;\n }\n return null;\n};\nconst collator = new Intl.Collator();\nexport const gridStringOrNumberComparator = (value1, value2) => {\n const nillResult = gridNillComparator(value1, value2);\n if (nillResult !== null) {\n return nillResult;\n }\n if (typeof value1 === 'string') {\n return collator.compare(value1.toString(), value2.toString());\n }\n return value1 - value2;\n};\nexport const gridNumberComparator = (value1, value2) => {\n const nillResult = gridNillComparator(value1, value2);\n if (nillResult !== null) {\n return nillResult;\n }\n return Number(value1) - Number(value2);\n};\nexport const gridDateComparator = (value1, value2) => {\n const nillResult = gridNillComparator(value1, value2);\n if (nillResult !== null) {\n return nillResult;\n }\n if (value1 > value2) {\n return 1;\n }\n if (value1 < value2) {\n return -1;\n }\n return 0;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"item\", \"applyValue\", \"type\", \"apiRef\", \"focusElementRef\", \"tabIndex\", \"disabled\", \"isFilterActive\", \"clearButton\", \"InputProps\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useId as useId } from '@mui/utils';\nimport { useTimeout } from \"../../../hooks/utils/useTimeout.js\";\nimport { useGridRootProps } from \"../../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction GridFilterInputValue(props) {\n const {\n item,\n applyValue,\n type,\n apiRef,\n focusElementRef,\n tabIndex,\n disabled,\n clearButton,\n InputProps,\n variant = 'standard'\n } = props,\n others = _objectWithoutPropertiesLoose(props, _excluded);\n const filterTimeout = useTimeout();\n const [filterValueState, setFilterValueState] = React.useState(sanitizeFilterItemValue(item.value));\n const [applying, setIsApplying] = React.useState(false);\n const id = useId();\n const rootProps = useGridRootProps();\n const onFilterChange = React.useCallback(event => {\n const value = sanitizeFilterItemValue(event.target.value);\n setFilterValueState(value);\n setIsApplying(true);\n filterTimeout.start(rootProps.filterDebounceMs, () => {\n const newItem = _extends({}, item, {\n value: type === 'number' && !Number.isNaN(Number(value)) ? Number(value) : value,\n fromInput: id\n });\n applyValue(newItem);\n setIsApplying(false);\n });\n }, [filterTimeout, rootProps.filterDebounceMs, item, type, id, applyValue]);\n React.useEffect(() => {\n const itemPlusTag = item;\n if (itemPlusTag.fromInput !== id || item.value == null) {\n setFilterValueState(sanitizeFilterItemValue(item.value));\n }\n }, [id, item]);\n return /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({\n id: id,\n label: apiRef.current.getLocaleText('filterPanelInputLabel'),\n placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),\n value: filterValueState ?? '',\n onChange: onFilterChange,\n variant: variant,\n type: type || 'text',\n InputProps: _extends({}, applying || clearButton ? {\n endAdornment: applying ? /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {\n fontSize: \"small\",\n color: \"action\"\n }) : clearButton\n } : {}, {\n disabled\n }, InputProps, {\n inputProps: _extends({\n tabIndex\n }, InputProps?.inputProps)\n }),\n InputLabelProps: {\n shrink: true\n },\n inputRef: focusElementRef\n }, others, rootProps.slotProps?.baseTextField));\n}\nfunction sanitizeFilterItemValue(value) {\n if (value == null || value === '') {\n return undefined;\n }\n return String(value);\n}\nprocess.env.NODE_ENV !== \"production\" ? GridFilterInputValue.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n apiRef: PropTypes.shape({\n current: PropTypes.object.isRequired\n }).isRequired,\n applyValue: PropTypes.func.isRequired,\n clearButton: PropTypes.node,\n focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),\n /**\n * It is `true` if the filter either has a value or an operator with no value\n * required is selected (for example `isEmpty`)\n */\n isFilterActive: PropTypes.bool,\n item: PropTypes.shape({\n field: PropTypes.string.isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n operator: PropTypes.string.isRequired,\n value: PropTypes.any\n }).isRequired\n} : void 0;\nexport { GridFilterInputValue };","export function isNumber(value) {\n return typeof value === 'number' && !Number.isNaN(value);\n}\nexport function isFunction(value) {\n return typeof value === 'function';\n}\nexport function isObject(value) {\n return typeof value === 'object' && value !== null;\n}\nexport function localStorageAvailable() {\n try {\n // Incognito mode might reject access to the localStorage for security reasons.\n // window isn't defined on Node.js\n // https://stackoverflow.com/questions/16427636/check-if-localstorage-is-available\n const key = '__some_random_key_you_are_not_going_to_use__';\n window.localStorage.setItem(key, key);\n window.localStorage.removeItem(key);\n return true;\n } catch (err) {\n return false;\n }\n}\nexport function escapeRegExp(value) {\n return value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\n/**\n * Follows the CSS specification behavior for min and max\n * If min > max, then the min have priority\n */\nexport const clamp = (value, min, max) => Math.max(min, Math.min(max, value));\n\n/**\n * Create an array containing the range [from, to[\n */\nexport function range(from, to) {\n return Array.from({\n length: to - from\n }).map((_, i) => from + i);\n}\n\n/**\n * Based on `fast-deep-equal`\n *\n * MIT License\n *\n * Copyright (c) 2017 Evgeny Poberezkin\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n * We only type the public interface to avoid dozens of `as` in the function.\n */\n\nexport function isDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n if (a.constructor !== b.constructor) {\n return false;\n }\n if (Array.isArray(a)) {\n const length = a.length;\n if (length !== b.length) {\n return false;\n }\n for (let i = 0; i < length; i += 1) {\n if (!isDeepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n if (a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) {\n return false;\n }\n const entriesA = Array.from(a.entries());\n for (let i = 0; i < entriesA.length; i += 1) {\n if (!b.has(entriesA[i][0])) {\n return false;\n }\n }\n for (let i = 0; i < entriesA.length; i += 1) {\n const entryA = entriesA[i];\n if (!isDeepEqual(entryA[1], b.get(entryA[0]))) {\n return false;\n }\n }\n return true;\n }\n if (a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) {\n return false;\n }\n const entries = Array.from(a.entries());\n for (let i = 0; i < entries.length; i += 1) {\n if (!b.has(entries[i][0])) {\n return false;\n }\n }\n return true;\n }\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n const length = a.length;\n if (length !== b.length) {\n return false;\n }\n for (let i = 0; i < length; i += 1) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n if (a.constructor === RegExp) {\n return a.source === b.source && a.flags === b.flags;\n }\n if (a.valueOf !== Object.prototype.valueOf) {\n return a.valueOf() === b.valueOf();\n }\n if (a.toString !== Object.prototype.toString) {\n return a.toString() === b.toString();\n }\n const keys = Object.keys(a);\n const length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (let i = 0; i < length; i += 1) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (let i = 0; i < length; i += 1) {\n const key = keys[i];\n if (!isDeepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n\n // true if both NaN, false otherwise\n // eslint-disable-next-line no-self-compare\n return a !== a && b !== b;\n}\n\n// Pseudo random number. See https://stackoverflow.com/a/47593316\nfunction mulberry32(a) {\n return () => {\n /* eslint-disable */\n let t = a += 0x6d2b79f5;\n t = Math.imul(t ^ t >>> 15, t | 1);\n t ^= t + Math.imul(t ^ t >>> 7, t | 61);\n return ((t ^ t >>> 14) >>> 0) / 4294967296;\n /* eslint-enable */\n };\n}\n\n/**\n * Create a random number generator from a seed. The seed\n * ensures that the random number generator produces the\n * same sequence of 'random' numbers on every render. It\n * returns a function that generates a random number between\n * a specified min and max.\n */\nexport function createRandomNumberGenerator(seed) {\n const random = mulberry32(seed);\n return (min, max) => min + (max - min) * random();\n}\nexport function deepClone(obj) {\n if (typeof structuredClone === 'function') {\n return structuredClone(obj);\n }\n return JSON.parse(JSON.stringify(obj));\n}\n\n/**\n * Mark a value as used so eslint doesn't complain. Use this instead\n * of a `eslint-disable-next-line react-hooks/exhaustive-deps` because\n * that hint disables checks on all values instead of just one.\n */\nexport function eslintUseValue(_) {}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"item\", \"applyValue\", \"type\", \"apiRef\", \"focusElementRef\", \"color\", \"error\", \"helperText\", \"size\", \"variant\"],\n _excluded2 = [\"key\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport { unstable_useId as useId } from '@mui/utils';\nimport { useGridRootProps } from \"../../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction GridFilterInputMultipleValue(props) {\n const {\n item,\n applyValue,\n type,\n apiRef,\n focusElementRef,\n color,\n error,\n helperText,\n size,\n variant = 'standard'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const TextFieldProps = {\n color,\n error,\n helperText,\n size,\n variant\n };\n const [filterValueState, setFilterValueState] = React.useState(item.value || []);\n const id = useId();\n const rootProps = useGridRootProps();\n React.useEffect(() => {\n const itemValue = item.value ?? [];\n setFilterValueState(itemValue.map(String));\n }, [item.value]);\n const handleChange = React.useCallback((event, value) => {\n setFilterValueState(value.map(String));\n applyValue(_extends({}, item, {\n value: [...value.map(filterItemValue => type === 'number' ? Number(filterItemValue) : filterItemValue)]\n }));\n }, [applyValue, item, type]);\n return /*#__PURE__*/_jsx(Autocomplete, _extends({\n multiple: true,\n freeSolo: true,\n options: [],\n filterOptions: (options, params) => {\n const {\n inputValue\n } = params;\n return inputValue == null || inputValue === '' ? [] : [inputValue];\n },\n id: id,\n value: filterValueState,\n onChange: handleChange,\n renderTags: (value, getTagProps) => value.map((option, index) => {\n const _getTagProps = getTagProps({\n index\n }),\n {\n key\n } = _getTagProps,\n tagProps = _objectWithoutPropertiesLoose(_getTagProps, _excluded2);\n return /*#__PURE__*/_jsx(rootProps.slots.baseChip, _extends({\n variant: \"outlined\",\n size: \"small\",\n label: option\n }, tagProps), key);\n }),\n renderInput: params => /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({}, params, {\n label: apiRef.current.getLocaleText('filterPanelInputLabel'),\n placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),\n InputLabelProps: _extends({}, params.InputLabelProps, {\n shrink: true\n }),\n inputRef: focusElementRef,\n type: type || 'text'\n }, TextFieldProps, rootProps.slotProps?.baseTextField))\n }, other));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridFilterInputMultipleValue.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n apiRef: PropTypes.shape({\n current: PropTypes.object.isRequired\n }).isRequired,\n applyValue: PropTypes.func.isRequired,\n focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),\n item: PropTypes.shape({\n field: PropTypes.string.isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n operator: PropTypes.string.isRequired,\n value: PropTypes.any\n }).isRequired,\n type: PropTypes.oneOf(['date', 'datetime-local', 'number', 'text'])\n} : void 0;\nexport { GridFilterInputMultipleValue };","/**\n * Filter item definition interface.\n * @demos\n * - [Custom filter operator](/x/react-data-grid/filtering/customization/#create-a-custom-operator)\n */\nvar GridLogicOperator = /*#__PURE__*/function (GridLogicOperator) {\n GridLogicOperator[\"And\"] = \"and\";\n GridLogicOperator[\"Or\"] = \"or\";\n return GridLogicOperator;\n}(GridLogicOperator || {});\nexport { GridLogicOperator };","import { GridLogicOperator } from \"../../../models/gridFilterItem.js\";\nexport const getDefaultGridFilterModel = () => ({\n items: [],\n logicOperator: GridLogicOperator.And,\n quickFilterValues: [],\n quickFilterLogicOperator: GridLogicOperator.And\n});\n\n/**\n * @param {GridRowId} rowId The id of the row we want to filter.\n * @param {(filterItem: GridFilterItem) => boolean} shouldApplyItem An optional callback to allow the filtering engine to only apply some items.\n */\n\n/**\n * Visibility status for each row.\n * A row is visible if it is passing the filters AND if its parents are expanded.\n * If a row is not registered in this lookup, it is visible.\n */","export function getPublicApiRef(apiRef) {\n return {\n current: apiRef.current.getPublicApi()\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { warnOnce } from '@mui/x-internals/warning';\nimport { GridLogicOperator } from \"../../../models/index.js\";\nimport { getDefaultGridFilterModel } from \"./gridFilterState.js\";\nimport { getPublicApiRef } from \"../../../utils/getPublicApiRef.js\";\nimport { gridColumnFieldsSelector, gridColumnLookupSelector, gridVisibleColumnFieldsSelector } from \"../columns/index.js\";\nlet hasEval;\nfunction getHasEval() {\n if (hasEval !== undefined) {\n return hasEval;\n }\n try {\n hasEval = new Function('return true')();\n } catch (_) {\n hasEval = false;\n }\n return hasEval;\n}\n/**\n * Adds default values to the optional fields of a filter items.\n * @param {GridFilterItem} item The raw filter item.\n * @param {React.MutableRefObject<GridPrivateApiCommunity>} apiRef The API of the grid.\n * @return {GridFilterItem} The clean filter item with an uniq ID and an always-defined operator.\n * TODO: Make the typing reflect the different between GridFilterInputItem and GridFilterItem.\n */\nexport const cleanFilterItem = (item, apiRef) => {\n const cleanItem = _extends({}, item);\n if (cleanItem.id == null) {\n cleanItem.id = Math.round(Math.random() * 1e5);\n }\n if (cleanItem.operator == null) {\n // Selects a default operator\n // We don't use `apiRef.current.getColumn` because it is not ready during state initialization\n const column = gridColumnLookupSelector(apiRef)[cleanItem.field];\n cleanItem.operator = column && column.filterOperators[0].value;\n }\n return cleanItem;\n};\nexport const sanitizeFilterModel = (model, disableMultipleColumnsFiltering, apiRef) => {\n const hasSeveralItems = model.items.length > 1;\n let items;\n if (hasSeveralItems && disableMultipleColumnsFiltering) {\n if (process.env.NODE_ENV !== 'production') {\n warnOnce(['MUI X: The `filterModel` can only contain a single item when the `disableMultipleColumnsFiltering` prop is set to `true`.', 'If you are using the community version of the Data Grid, this prop is always `true`.'], 'error');\n }\n items = [model.items[0]];\n } else {\n items = model.items;\n }\n const hasItemsWithoutIds = hasSeveralItems && items.some(item => item.id == null);\n const hasItemWithoutOperator = items.some(item => item.operator == null);\n if (process.env.NODE_ENV !== 'production') {\n if (hasItemsWithoutIds) {\n warnOnce('MUI X: The `id` field is required on `filterModel.items` when you use multiple filters.', 'error');\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (hasItemWithoutOperator) {\n warnOnce('MUI X: The `operator` field is required on `filterModel.items`, one or more of your filtering item has no `operator` provided.', 'error');\n }\n }\n if (hasItemWithoutOperator || hasItemsWithoutIds) {\n return _extends({}, model, {\n items: items.map(item => cleanFilterItem(item, apiRef))\n });\n }\n if (model.items !== items) {\n return _extends({}, model, {\n items\n });\n }\n return model;\n};\nexport const mergeStateWithFilterModel = (filterModel, disableMultipleColumnsFiltering, apiRef) => filteringState => _extends({}, filteringState, {\n filterModel: sanitizeFilterModel(filterModel, disableMultipleColumnsFiltering, apiRef)\n});\nexport const removeDiacritics = value => {\n if (typeof value === 'string') {\n return value.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n }\n return value;\n};\nconst getFilterCallbackFromItem = (filterItem, apiRef) => {\n if (!filterItem.field || !filterItem.operator) {\n return null;\n }\n const column = apiRef.current.getColumn(filterItem.field);\n if (!column) {\n return null;\n }\n let parsedValue;\n if (column.valueParser) {\n const parser = column.valueParser;\n parsedValue = Array.isArray(filterItem.value) ? filterItem.value?.map(x => parser(x, undefined, column, apiRef)) : parser(filterItem.value, undefined, column, apiRef);\n } else {\n parsedValue = filterItem.value;\n }\n const {\n ignoreDiacritics\n } = apiRef.current.rootProps;\n if (ignoreDiacritics) {\n parsedValue = removeDiacritics(parsedValue);\n }\n const newFilterItem = _extends({}, filterItem, {\n value: parsedValue\n });\n const filterOperators = column.filterOperators;\n if (!filterOperators?.length) {\n throw new Error(`MUI X: No filter operators found for column '${column.field}'.`);\n }\n const filterOperator = filterOperators.find(operator => operator.value === newFilterItem.operator);\n if (!filterOperator) {\n throw new Error(`MUI X: No filter operator found for column '${column.field}' and operator value '${newFilterItem.operator}'.`);\n }\n const publicApiRef = getPublicApiRef(apiRef);\n const applyFilterOnRow = filterOperator.getApplyFilterFn(newFilterItem, column);\n if (typeof applyFilterOnRow !== 'function') {\n return null;\n }\n return {\n item: newFilterItem,\n fn: row => {\n let value = apiRef.current.getRowValue(row, column);\n if (ignoreDiacritics) {\n value = removeDiacritics(value);\n }\n return applyFilterOnRow(value, row, column, publicApiRef);\n }\n };\n};\nlet filterItemsApplierId = 1;\n\n/**\n * Generates a method to easily check if a row is matching the current filter model.\n * @param {GridFilterModel} filterModel The model with which we want to filter the rows.\n * @param {React.MutableRefObject<GridPrivateApiCommunity>} apiRef The API of the grid.\n * @returns {GridAggregatedFilterItemApplier | null} A method that checks if a row is matching the current filter model. If `null`, we consider that all the rows are matching the filters.\n */\nconst buildAggregatedFilterItemsApplier = (filterModel, apiRef, disableEval) => {\n const {\n items\n } = filterModel;\n const appliers = items.map(item => getFilterCallbackFromItem(item, apiRef)).filter(callback => !!callback);\n if (appliers.length === 0) {\n return null;\n }\n if (disableEval || !getHasEval()) {\n // This is the original logic, which is used if `eval()` is not supported (aka prevented by CSP).\n return (row, shouldApplyFilter) => {\n const resultPerItemId = {};\n for (let i = 0; i < appliers.length; i += 1) {\n const applier = appliers[i];\n if (!shouldApplyFilter || shouldApplyFilter(applier.item.field)) {\n resultPerItemId[applier.item.id] = applier.fn(row);\n }\n }\n return resultPerItemId;\n };\n }\n\n // We generate a new function with `new Function()` to avoid expensive patterns for JS engines\n // such as a dynamic object assignment, for example `{ [dynamicKey]: value }`.\n const filterItemCore = new Function('appliers', 'row', 'shouldApplyFilter', `\"use strict\";\n${appliers.map((applier, i) => `const shouldApply${i} = !shouldApplyFilter || shouldApplyFilter(${JSON.stringify(applier.item.field)});`).join('\\n')}\n\nconst result$$ = {\n${appliers.map((applier, i) => ` ${JSON.stringify(String(applier.item.id))}: !shouldApply${i} ? false : appliers[${i}].fn(row),`).join('\\n')}\n};\n\nreturn result$$;`.replaceAll('$$', String(filterItemsApplierId)));\n filterItemsApplierId += 1;\n\n // Assign to the arrow function a name to help debugging\n const filterItem = (row, shouldApplyItem) => filterItemCore(appliers, row, shouldApplyItem);\n return filterItem;\n};\nexport const shouldQuickFilterExcludeHiddenColumns = filterModel => {\n return filterModel.quickFilterExcludeHiddenColumns ?? true;\n};\n\n/**\n * Generates a method to easily check if a row is matching the current quick filter.\n * @param {any[]} filterModel The model with which we want to filter the rows.\n * @param {React.MutableRefObject<GridPrivateApiCommunity>} apiRef The API of the grid.\n * @returns {GridAggregatedFilterItemApplier | null} A method that checks if a row is matching the current filter model. If `null`, we consider that all the rows are matching the filters.\n */\nconst buildAggregatedQuickFilterApplier = (filterModel, apiRef) => {\n const quickFilterValues = filterModel.quickFilterValues?.filter(Boolean) ?? [];\n if (quickFilterValues.length === 0) {\n return null;\n }\n const columnFields = shouldQuickFilterExcludeHiddenColumns(filterModel) ? gridVisibleColumnFieldsSelector(apiRef) : gridColumnFieldsSelector(apiRef);\n const appliersPerField = [];\n const {\n ignoreDiacritics\n } = apiRef.current.rootProps;\n const publicApiRef = getPublicApiRef(apiRef);\n columnFields.forEach(field => {\n const column = apiRef.current.getColumn(field);\n const getApplyQuickFilterFn = column?.getApplyQuickFilterFn;\n if (getApplyQuickFilterFn) {\n appliersPerField.push({\n column,\n appliers: quickFilterValues.map(quickFilterValue => {\n const value = ignoreDiacritics ? removeDiacritics(quickFilterValue) : quickFilterValue;\n return {\n fn: getApplyQuickFilterFn(value, column, publicApiRef)\n };\n })\n });\n }\n });\n return function isRowMatchingQuickFilter(row, shouldApplyFilter) {\n const result = {};\n\n /* eslint-disable no-labels */\n outer: for (let v = 0; v < quickFilterValues.length; v += 1) {\n const filterValue = quickFilterValues[v];\n for (let i = 0; i < appliersPerField.length; i += 1) {\n const {\n column,\n appliers\n } = appliersPerField[i];\n const {\n field\n } = column;\n if (shouldApplyFilter && !shouldApplyFilter(field)) {\n continue;\n }\n const applier = appliers[v];\n let value = apiRef.current.getRowValue(row, column);\n if (applier.fn === null) {\n continue;\n }\n if (ignoreDiacritics) {\n value = removeDiacritics(value);\n }\n const isMatching = applier.fn(value, row, column, publicApiRef);\n if (isMatching) {\n result[filterValue] = true;\n continue outer;\n }\n }\n result[filterValue] = false;\n }\n return result;\n };\n};\nexport const buildAggregatedFilterApplier = (filterModel, apiRef, disableEval) => {\n const isRowMatchingFilterItems = buildAggregatedFilterItemsApplier(filterModel, apiRef, disableEval);\n const isRowMatchingQuickFilter = buildAggregatedQuickFilterApplier(filterModel, apiRef);\n return function isRowMatchingFilters(row, shouldApplyFilter, result) {\n result.passingFilterItems = isRowMatchingFilterItems?.(row, shouldApplyFilter) ?? null;\n result.passingQuickFilterValues = isRowMatchingQuickFilter?.(row, shouldApplyFilter) ?? null;\n };\n};\nconst isNotNull = result => result != null;\nconst filterModelItems = (cache, apiRef, items) => {\n if (!cache.cleanedFilterItems) {\n cache.cleanedFilterItems = items.filter(item => getFilterCallbackFromItem(item, apiRef) !== null);\n }\n return cache.cleanedFilterItems;\n};\nexport const passFilterLogic = (allFilterItemResults, allQuickFilterResults, filterModel, apiRef, cache) => {\n const cleanedFilterItems = filterModelItems(cache, apiRef, filterModel.items);\n const cleanedFilterItemResults = allFilterItemResults.filter(isNotNull);\n const cleanedQuickFilterResults = allQuickFilterResults.filter(isNotNull);\n\n // get result for filter items model\n if (cleanedFilterItemResults.length > 0) {\n // Return true if the item pass with one of the rows\n const filterItemPredicate = item => {\n return cleanedFilterItemResults.some(filterItemResult => filterItemResult[item.id]);\n };\n const logicOperator = filterModel.logicOperator ?? getDefaultGridFilterModel().logicOperator;\n if (logicOperator === GridLogicOperator.And) {\n const passesAllFilters = cleanedFilterItems.every(filterItemPredicate);\n if (!passesAllFilters) {\n return false;\n }\n } else {\n const passesSomeFilters = cleanedFilterItems.some(filterItemPredicate);\n if (!passesSomeFilters) {\n return false;\n }\n }\n }\n\n // get result for quick filter model\n if (cleanedQuickFilterResults.length > 0 && filterModel.quickFilterValues != null) {\n // Return true if the item pass with one of the rows\n const quickFilterValuePredicate = value => {\n return cleanedQuickFilterResults.some(quickFilterValueResult => quickFilterValueResult[value]);\n };\n const quickFilterLogicOperator = filterModel.quickFilterLogicOperator ?? getDefaultGridFilterModel().quickFilterLogicOperator;\n if (quickFilterLogicOperator === GridLogicOperator.And) {\n const passesAllQuickFilterValues = filterModel.quickFilterValues.every(quickFilterValuePredicate);\n if (!passesAllQuickFilterValues) {\n return false;\n }\n } else {\n const passesSomeQuickFilterValues = filterModel.quickFilterValues.some(quickFilterValuePredicate);\n if (!passesSomeQuickFilterValues) {\n return false;\n }\n }\n }\n return true;\n};","import { GridFilterInputValue } from \"../components/panel/filterPanel/GridFilterInputValue.js\";\nimport { escapeRegExp } from \"../utils/utils.js\";\nimport { GridFilterInputMultipleValue } from \"../components/panel/filterPanel/GridFilterInputMultipleValue.js\";\nimport { removeDiacritics } from \"../hooks/features/filter/gridFilterUtils.js\";\nexport const getGridStringQuickFilterFn = value => {\n if (!value) {\n return null;\n }\n const filterRegex = new RegExp(escapeRegExp(value), 'i');\n return (_, row, column, apiRef) => {\n let columnValue = apiRef.current.getRowFormattedValue(row, column);\n if (apiRef.current.ignoreDiacritics) {\n columnValue = removeDiacritics(columnValue);\n }\n return columnValue != null ? filterRegex.test(columnValue.toString()) : false;\n };\n};\nconst createContainsFilterFn = (disableTrim, negate) => filterItem => {\n if (!filterItem.value) {\n return null;\n }\n const trimmedValue = disableTrim ? filterItem.value : filterItem.value.trim();\n const filterRegex = new RegExp(escapeRegExp(trimmedValue), 'i');\n return value => {\n if (value == null) {\n return negate;\n }\n const matches = filterRegex.test(String(value));\n return negate ? !matches : matches;\n };\n};\nconst createEqualityFilterFn = (disableTrim, negate) => filterItem => {\n if (!filterItem.value) {\n return null;\n }\n const trimmedValue = disableTrim ? filterItem.value : filterItem.value.trim();\n const collator = new Intl.Collator(undefined, {\n sensitivity: 'base',\n usage: 'search'\n });\n return value => {\n if (value == null) {\n return negate;\n }\n const isEqual = collator.compare(trimmedValue, value.toString()) === 0;\n return negate ? !isEqual : isEqual;\n };\n};\nconst createEmptyFilterFn = negate => () => {\n return value => {\n const isEmpty = value === '' || value == null;\n return negate ? !isEmpty : isEmpty;\n };\n};\nexport const getGridStringOperators = (disableTrim = false) => [{\n value: 'contains',\n getApplyFilterFn: createContainsFilterFn(disableTrim, false),\n InputComponent: GridFilterInputValue\n}, {\n value: 'doesNotContain',\n getApplyFilterFn: createContainsFilterFn(disableTrim, true),\n InputComponent: GridFilterInputValue\n}, {\n value: 'equals',\n getApplyFilterFn: createEqualityFilterFn(disableTrim, false),\n InputComponent: GridFilterInputValue\n}, {\n value: 'doesNotEqual',\n getApplyFilterFn: createEqualityFilterFn(disableTrim, true),\n InputComponent: GridFilterInputValue\n}, {\n value: 'startsWith',\n getApplyFilterFn: filterItem => {\n if (!filterItem.value) {\n return null;\n }\n const filterItemValue = disableTrim ? filterItem.value : filterItem.value.trim();\n const filterRegex = new RegExp(`^${escapeRegExp(filterItemValue)}.*$`, 'i');\n return value => {\n return value != null ? filterRegex.test(value.toString()) : false;\n };\n },\n InputComponent: GridFilterInputValue\n}, {\n value: 'endsWith',\n getApplyFilterFn: filterItem => {\n if (!filterItem.value) {\n return null;\n }\n const filterItemValue = disableTrim ? filterItem.value : filterItem.value.trim();\n const filterRegex = new RegExp(`.*${escapeRegExp(filterItemValue)}$`, 'i');\n return value => {\n return value != null ? filterRegex.test(value.toString()) : false;\n };\n },\n InputComponent: GridFilterInputValue\n}, {\n value: 'isEmpty',\n getApplyFilterFn: createEmptyFilterFn(false),\n requiresFilterValue: false\n}, {\n value: 'isNotEmpty',\n getApplyFilterFn: createEmptyFilterFn(true),\n requiresFilterValue: false\n}, {\n value: 'isAnyOf',\n getApplyFilterFn: filterItem => {\n if (!Array.isArray(filterItem.value) || filterItem.value.length === 0) {\n return null;\n }\n const filterItemValue = disableTrim ? filterItem.value : filterItem.value.map(val => val.trim());\n const collator = new Intl.Collator(undefined, {\n sensitivity: 'base',\n usage: 'search'\n });\n return value => value != null ? filterItemValue.some(filterValue => {\n return collator.compare(filterValue, value.toString() || '') === 0;\n }) : false;\n },\n InputComponent: GridFilterInputMultipleValue\n}];","import { renderEditInputCell } from \"../components/cell/GridEditInputCell.js\";\nimport { gridStringOrNumberComparator } from \"../hooks/features/sorting/gridSortingUtils.js\";\nimport { getGridStringOperators, getGridStringQuickFilterFn } from \"./gridStringOperators.js\";\n\n/**\n * TODO: Move pro and premium properties outside of this Community file\n */\nexport const GRID_STRING_COL_DEF = {\n width: 100,\n minWidth: 50,\n maxWidth: Infinity,\n hideable: true,\n sortable: true,\n resizable: true,\n filterable: true,\n groupable: true,\n pinnable: true,\n // @ts-ignore\n aggregable: true,\n editable: false,\n sortComparator: gridStringOrNumberComparator,\n type: 'string',\n align: 'left',\n filterOperators: getGridStringOperators(),\n renderEditCell: renderEditInputCell,\n getApplyQuickFilterFn: getGridStringQuickFilterFn\n};","import { GridFilterInputValue } from \"../components/panel/filterPanel/GridFilterInputValue.js\";\nimport { GridFilterInputMultipleValue } from \"../components/panel/filterPanel/GridFilterInputMultipleValue.js\";\nconst parseNumericValue = value => {\n if (value == null) {\n return null;\n }\n return Number(value);\n};\nexport const getGridNumericQuickFilterFn = value => {\n if (value == null || Number.isNaN(value) || value === '') {\n return null;\n }\n return columnValue => {\n return parseNumericValue(columnValue) === parseNumericValue(value);\n };\n};\nexport const getGridNumericOperators = () => [{\n value: '=',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || Number.isNaN(filterItem.value)) {\n return null;\n }\n return value => {\n return parseNumericValue(value) === filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n InputComponentProps: {\n type: 'number'\n }\n}, {\n value: '!=',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || Number.isNaN(filterItem.value)) {\n return null;\n }\n return value => {\n return parseNumericValue(value) !== filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n InputComponentProps: {\n type: 'number'\n }\n}, {\n value: '>',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || Number.isNaN(filterItem.value)) {\n return null;\n }\n return value => {\n if (value == null) {\n return false;\n }\n return parseNumericValue(value) > filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n InputComponentProps: {\n type: 'number'\n }\n}, {\n value: '>=',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || Number.isNaN(filterItem.value)) {\n return null;\n }\n return value => {\n if (value == null) {\n return false;\n }\n return parseNumericValue(value) >= filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n InputComponentProps: {\n type: 'number'\n }\n}, {\n value: '<',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || Number.isNaN(filterItem.value)) {\n return null;\n }\n return value => {\n if (value == null) {\n return false;\n }\n return parseNumericValue(value) < filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n InputComponentProps: {\n type: 'number'\n }\n}, {\n value: '<=',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || Number.isNaN(filterItem.value)) {\n return null;\n }\n return value => {\n if (value == null) {\n return false;\n }\n return parseNumericValue(value) <= filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n InputComponentProps: {\n type: 'number'\n }\n}, {\n value: 'isEmpty',\n getApplyFilterFn: () => {\n return value => {\n return value == null;\n };\n },\n requiresFilterValue: false\n}, {\n value: 'isNotEmpty',\n getApplyFilterFn: () => {\n return value => {\n return value != null;\n };\n },\n requiresFilterValue: false\n}, {\n value: 'isAnyOf',\n getApplyFilterFn: filterItem => {\n if (!Array.isArray(filterItem.value) || filterItem.value.length === 0) {\n return null;\n }\n return value => {\n return value != null && filterItem.value.includes(Number(value));\n };\n },\n InputComponent: GridFilterInputMultipleValue,\n InputComponentProps: {\n type: 'number'\n }\n}];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { gridNumberComparator } from \"../hooks/features/sorting/gridSortingUtils.js\";\nimport { isNumber } from \"../utils/utils.js\";\nimport { getGridNumericOperators, getGridNumericQuickFilterFn } from \"./gridNumericOperators.js\";\nimport { GRID_STRING_COL_DEF } from \"./gridStringColDef.js\";\nexport const GRID_NUMERIC_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {\n type: 'number',\n align: 'right',\n headerAlign: 'right',\n sortComparator: gridNumberComparator,\n valueParser: value => value === '' ? null : Number(value),\n valueFormatter: value => isNumber(value) ? value.toLocaleString() : value || '',\n filterOperators: getGridNumericOperators(),\n getApplyQuickFilterFn: getGridNumericQuickFilterFn\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"item\", \"applyValue\", \"type\", \"apiRef\", \"focusElementRef\", \"InputProps\", \"isFilterActive\", \"clearButton\", \"tabIndex\", \"disabled\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useId as useId } from '@mui/utils';\nimport { useTimeout } from \"../../../hooks/utils/useTimeout.js\";\nimport { useGridRootProps } from \"../../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction convertFilterItemValueToInputValue(itemValue, inputType) {\n if (itemValue == null) {\n return '';\n }\n const dateCopy = new Date(itemValue);\n if (Number.isNaN(dateCopy.getTime())) {\n return '';\n }\n if (inputType === 'date') {\n return dateCopy.toISOString().substring(0, 10);\n }\n if (inputType === 'datetime-local') {\n // The date picker expects the date to be in the local timezone.\n // But .toISOString() converts it to UTC with zero offset.\n // So we need to subtract the timezone offset.\n dateCopy.setMinutes(dateCopy.getMinutes() - dateCopy.getTimezoneOffset());\n return dateCopy.toISOString().substring(0, 19);\n }\n return dateCopy.toISOString().substring(0, 10);\n}\nfunction GridFilterInputDate(props) {\n const {\n item,\n applyValue,\n type,\n apiRef,\n focusElementRef,\n InputProps,\n clearButton,\n tabIndex,\n disabled\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const filterTimeout = useTimeout();\n const [filterValueState, setFilterValueState] = React.useState(() => convertFilterItemValueToInputValue(item.value, type));\n const [applying, setIsApplying] = React.useState(false);\n const id = useId();\n const rootProps = useGridRootProps();\n const onFilterChange = React.useCallback(event => {\n filterTimeout.clear();\n const value = event.target.value;\n setFilterValueState(value);\n setIsApplying(true);\n filterTimeout.start(rootProps.filterDebounceMs, () => {\n const date = new Date(value);\n applyValue(_extends({}, item, {\n value: Number.isNaN(date.getTime()) ? undefined : date\n }));\n setIsApplying(false);\n });\n }, [applyValue, item, rootProps.filterDebounceMs, filterTimeout]);\n React.useEffect(() => {\n const value = convertFilterItemValueToInputValue(item.value, type);\n setFilterValueState(value);\n }, [item.value, type]);\n return /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({\n fullWidth: true,\n id: id,\n label: apiRef.current.getLocaleText('filterPanelInputLabel'),\n placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),\n value: filterValueState,\n onChange: onFilterChange,\n variant: \"standard\",\n type: type || 'text',\n InputLabelProps: {\n shrink: true\n },\n inputRef: focusElementRef,\n InputProps: _extends({}, applying || clearButton ? {\n endAdornment: applying ? /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {\n fontSize: \"small\",\n color: \"action\"\n }) : clearButton\n } : {}, {\n disabled\n }, InputProps, {\n inputProps: _extends({\n max: type === 'datetime-local' ? '9999-12-31T23:59' : '9999-12-31',\n tabIndex\n }, InputProps?.inputProps)\n })\n }, other, rootProps.slotProps?.baseTextField));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridFilterInputDate.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n apiRef: PropTypes.shape({\n current: PropTypes.object.isRequired\n }).isRequired,\n applyValue: PropTypes.func.isRequired,\n clearButton: PropTypes.node,\n focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),\n /**\n * It is `true` if the filter either has a value or an operator with no value\n * required is selected (for example `isEmpty`)\n */\n isFilterActive: PropTypes.bool,\n item: PropTypes.shape({\n field: PropTypes.string.isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n operator: PropTypes.string.isRequired,\n value: PropTypes.any\n }).isRequired\n} : void 0;\nexport { GridFilterInputDate };","import { GridFilterInputDate } from \"../components/panel/filterPanel/GridFilterInputDate.js\";\nfunction buildApplyFilterFn(filterItem, compareFn, showTime, keepHours) {\n if (!filterItem.value) {\n return null;\n }\n const date = new Date(filterItem.value);\n if (showTime) {\n date.setSeconds(0, 0);\n } else {\n // In GMT-X timezone, the date will be one day behind.\n // For 2022-08-16:\n // GMT+2: Tue Aug 16 2022 02:00:00 GMT+0200\n // GMT-4: Mon Aug 15 2022 20:00:00 GMT-0400\n //\n // We need to add the offset before resetting the hours.\n date.setMinutes(date.getMinutes() + date.getTimezoneOffset());\n date.setHours(0, 0, 0, 0);\n }\n const time = date.getTime();\n return value => {\n if (!value) {\n return false;\n }\n if (keepHours) {\n return compareFn(value.getTime(), time);\n }\n\n // Make a copy of the date to not reset the hours in the original object\n const dateCopy = new Date(value);\n if (showTime) {\n dateCopy.setSeconds(0, 0);\n } else {\n dateCopy.setHours(0, 0, 0, 0);\n }\n return compareFn(dateCopy.getTime(), time);\n };\n}\nexport const getGridDateOperators = showTime => [{\n value: 'is',\n getApplyFilterFn: filterItem => {\n return buildApplyFilterFn(filterItem, (value1, value2) => value1 === value2, showTime);\n },\n InputComponent: GridFilterInputDate,\n InputComponentProps: {\n type: showTime ? 'datetime-local' : 'date'\n }\n}, {\n value: 'not',\n getApplyFilterFn: filterItem => {\n return buildApplyFilterFn(filterItem, (value1, value2) => value1 !== value2, showTime);\n },\n InputComponent: GridFilterInputDate,\n InputComponentProps: {\n type: showTime ? 'datetime-local' : 'date'\n }\n}, {\n value: 'after',\n getApplyFilterFn: filterItem => {\n return buildApplyFilterFn(filterItem, (value1, value2) => value1 > value2, showTime);\n },\n InputComponent: GridFilterInputDate,\n InputComponentProps: {\n type: showTime ? 'datetime-local' : 'date'\n }\n}, {\n value: 'onOrAfter',\n getApplyFilterFn: filterItem => {\n return buildApplyFilterFn(filterItem, (value1, value2) => value1 >= value2, showTime);\n },\n InputComponent: GridFilterInputDate,\n InputComponentProps: {\n type: showTime ? 'datetime-local' : 'date'\n }\n}, {\n value: 'before',\n getApplyFilterFn: filterItem => {\n return buildApplyFilterFn(filterItem, (value1, value2) => value1 < value2, showTime, !showTime);\n },\n InputComponent: GridFilterInputDate,\n InputComponentProps: {\n type: showTime ? 'datetime-local' : 'date'\n }\n}, {\n value: 'onOrBefore',\n getApplyFilterFn: filterItem => {\n return buildApplyFilterFn(filterItem, (value1, value2) => value1 <= value2, showTime);\n },\n InputComponent: GridFilterInputDate,\n InputComponentProps: {\n type: showTime ? 'datetime-local' : 'date'\n }\n}, {\n value: 'isEmpty',\n getApplyFilterFn: () => {\n return value => {\n return value == null;\n };\n },\n requiresFilterValue: false\n}, {\n value: 'isNotEmpty',\n getApplyFilterFn: () => {\n return value => {\n return value != null;\n };\n },\n requiresFilterValue: false\n}];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"id\", \"value\", \"formattedValue\", \"api\", \"field\", \"row\", \"rowNode\", \"colDef\", \"cellMode\", \"isEditable\", \"tabIndex\", \"hasFocus\", \"inputProps\", \"isValidating\", \"isProcessingProps\", \"onValueChange\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport InputBase from '@mui/material/InputBase';\nimport { styled } from '@mui/material/styles';\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst StyledInputBase = styled(InputBase)({\n fontSize: 'inherit'\n});\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['editInputCell']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nfunction GridEditDateCell(props) {\n const {\n id,\n value: valueProp,\n field,\n colDef,\n hasFocus,\n inputProps,\n onValueChange\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const isDateTime = colDef.type === 'dateTime';\n const apiRef = useGridApiContext();\n const inputRef = React.useRef(null);\n const valueTransformed = React.useMemo(() => {\n let parsedDate;\n if (valueProp == null) {\n parsedDate = null;\n } else if (valueProp instanceof Date) {\n parsedDate = valueProp;\n } else {\n parsedDate = new Date((valueProp ?? '').toString());\n }\n let formattedDate;\n if (parsedDate == null || Number.isNaN(parsedDate.getTime())) {\n formattedDate = '';\n } else {\n const localDate = new Date(parsedDate.getTime() - parsedDate.getTimezoneOffset() * 60 * 1000);\n formattedDate = localDate.toISOString().substr(0, isDateTime ? 16 : 10);\n }\n return {\n parsed: parsedDate,\n formatted: formattedDate\n };\n }, [valueProp, isDateTime]);\n const [valueState, setValueState] = React.useState(valueTransformed);\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n const parseValueToDate = React.useCallback(value => {\n if (value === '') {\n return null;\n }\n const [date, time] = value.split('T');\n const [year, month, day] = date.split('-');\n const parsedDate = new Date();\n parsedDate.setFullYear(Number(year), Number(month) - 1, Number(day));\n parsedDate.setHours(0, 0, 0, 0);\n if (time) {\n const [hours, minutes] = time.split(':');\n parsedDate.setHours(Number(hours), Number(minutes), 0, 0);\n }\n return parsedDate;\n }, []);\n const handleChange = React.useCallback(async event => {\n const newFormattedDate = event.target.value;\n const newParsedDate = parseValueToDate(newFormattedDate);\n if (onValueChange) {\n await onValueChange(event, newParsedDate);\n }\n setValueState({\n parsed: newParsedDate,\n formatted: newFormattedDate\n });\n apiRef.current.setEditCellValue({\n id,\n field,\n value: newParsedDate\n }, event);\n }, [apiRef, field, id, onValueChange, parseValueToDate]);\n React.useEffect(() => {\n setValueState(state => {\n if (valueTransformed.parsed !== state.parsed && valueTransformed.parsed?.getTime() !== state.parsed?.getTime()) {\n return valueTransformed;\n }\n return state;\n });\n }, [valueTransformed]);\n useEnhancedEffect(() => {\n if (hasFocus) {\n inputRef.current.focus();\n }\n }, [hasFocus]);\n return /*#__PURE__*/_jsx(StyledInputBase, _extends({\n inputRef: inputRef,\n fullWidth: true,\n className: classes.root,\n type: isDateTime ? 'datetime-local' : 'date',\n inputProps: _extends({\n max: isDateTime ? '9999-12-31T23:59' : '9999-12-31'\n }, inputProps),\n value: valueState.formatted,\n onChange: handleChange\n }, other));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridEditDateCell.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * GridApi that let you manipulate the grid.\n */\n api: PropTypes.object.isRequired,\n /**\n * The mode of the cell.\n */\n cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,\n changeReason: PropTypes.oneOf(['debouncedSetEditCellValue', 'setEditCellValue']),\n /**\n * The column of the row that the current cell belongs to.\n */\n colDef: PropTypes.object.isRequired,\n /**\n * The column field of the cell that triggered the event.\n */\n field: PropTypes.string.isRequired,\n /**\n * The cell value formatted with the column valueFormatter.\n */\n formattedValue: PropTypes.any,\n /**\n * If true, the cell is the active element.\n */\n hasFocus: PropTypes.bool.isRequired,\n /**\n * The grid row id.\n */\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n /**\n * If true, the cell is editable.\n */\n isEditable: PropTypes.bool,\n isProcessingProps: PropTypes.bool,\n isValidating: PropTypes.bool,\n /**\n * Callback called when the value is changed by the user.\n * @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.\n * @param {Date | null} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.\n * @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`\n */\n onValueChange: PropTypes.func,\n /**\n * The row model of the row that the current cell belongs to.\n */\n row: PropTypes.any.isRequired,\n /**\n * The node of the row that the current cell belongs to.\n */\n rowNode: PropTypes.object.isRequired,\n /**\n * the tabIndex value.\n */\n tabIndex: PropTypes.oneOf([-1, 0]).isRequired,\n /**\n * The cell value.\n * If the column has `valueGetter`, use `params.row` to directly access the fields.\n */\n value: PropTypes.any\n} : void 0;\nexport { GridEditDateCell };\nexport const renderEditDateCell = params => /*#__PURE__*/_jsx(GridEditDateCell, _extends({}, params));","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { gridDateComparator } from \"../hooks/features/sorting/gridSortingUtils.js\";\nimport { getGridDateOperators } from \"./gridDateOperators.js\";\nimport { GRID_STRING_COL_DEF } from \"./gridStringColDef.js\";\nimport { renderEditDateCell } from \"../components/cell/GridEditDateCell.js\";\nfunction throwIfNotDateObject({\n value,\n columnType,\n rowId,\n field\n}) {\n if (!(value instanceof Date)) {\n throw new Error([`MUI X: \\`${columnType}\\` column type only accepts \\`Date\\` objects as values.`, 'Use `valueGetter` to transform the value into a `Date` object.', `Row ID: ${rowId}, field: \"${field}\".`].join('\\n'));\n }\n}\nexport const gridDateFormatter = (value, row, column, apiRef) => {\n if (!value) {\n return '';\n }\n const rowId = apiRef.current.getRowId(row);\n throwIfNotDateObject({\n value,\n columnType: 'date',\n rowId,\n field: column.field\n });\n return value.toLocaleDateString();\n};\nexport const gridDateTimeFormatter = (value, row, column, apiRef) => {\n if (!value) {\n return '';\n }\n const rowId = apiRef.current.getRowId(row);\n throwIfNotDateObject({\n value,\n columnType: 'dateTime',\n rowId,\n field: column.field\n });\n return value.toLocaleString();\n};\nexport const GRID_DATE_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {\n type: 'date',\n sortComparator: gridDateComparator,\n valueFormatter: gridDateFormatter,\n filterOperators: getGridDateOperators(),\n renderEditCell: renderEditDateCell,\n // @ts-ignore\n pastedValueParser: value => new Date(value)\n});\nexport const GRID_DATETIME_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {\n type: 'dateTime',\n sortComparator: gridDateComparator,\n valueFormatter: gridDateTimeFormatter,\n filterOperators: getGridDateOperators(true),\n renderEditCell: renderEditDateCell,\n // @ts-ignore\n pastedValueParser: value => new Date(value)\n});","import { createSelector, createSelectorMemoized } from \"../../../utils/createSelector.js\";\nconst gridRowsStateSelector = state => state.rows;\nexport const gridRowCountSelector = createSelector(gridRowsStateSelector, rows => rows.totalRowCount);\nexport const gridRowsLoadingSelector = createSelector(gridRowsStateSelector, rows => rows.loading);\nexport const gridTopLevelRowCountSelector = createSelector(gridRowsStateSelector, rows => rows.totalTopLevelRowCount);\n\n// TODO rows v6: Rename\nexport const gridRowsLookupSelector = createSelector(gridRowsStateSelector, rows => rows.dataRowIdToModelLookup);\nexport const gridRowsDataRowIdToIdLookupSelector = createSelector(gridRowsStateSelector, rows => rows.dataRowIdToIdLookup);\nexport const gridRowTreeSelector = createSelector(gridRowsStateSelector, rows => rows.tree);\nexport const gridRowGroupsToFetchSelector = createSelector(gridRowsStateSelector, rows => rows.groupsToFetch);\nexport const gridRowGroupingNameSelector = createSelector(gridRowsStateSelector, rows => rows.groupingName);\nexport const gridRowTreeDepthsSelector = createSelector(gridRowsStateSelector, rows => rows.treeDepths);\nexport const gridRowMaximumTreeDepthSelector = createSelectorMemoized(gridRowsStateSelector, rows => {\n const entries = Object.entries(rows.treeDepths);\n if (entries.length === 0) {\n return 1;\n }\n return entries.filter(([, nodeCount]) => nodeCount > 0).map(([depth]) => Number(depth)).sort((a, b) => b - a)[0] + 1;\n});\nexport const gridDataRowIdsSelector = createSelector(gridRowsStateSelector, rows => rows.dataRowIds);\n\n/**\n * @ignore - do not document.\n */\nexport const gridAdditionalRowGroupsSelector = createSelector(gridRowsStateSelector, rows => rows?.additionalRowGroups);\n\n/**\n * @ignore - do not document.\n */\nexport const gridPinnedRowsSelector = createSelectorMemoized(gridAdditionalRowGroupsSelector, additionalRowGroups => {\n const rawPinnedRows = additionalRowGroups?.pinnedRows;\n return {\n bottom: rawPinnedRows?.bottom?.map(rowEntry => ({\n id: rowEntry.id,\n model: rowEntry.model ?? {}\n })) ?? [],\n top: rawPinnedRows?.top?.map(rowEntry => ({\n id: rowEntry.id,\n model: rowEntry.model ?? {}\n })) ?? []\n };\n});\n\n/**\n * @ignore - do not document.\n */\nexport const gridPinnedRowsCountSelector = createSelector(gridPinnedRowsSelector, pinnedRows => {\n return (pinnedRows?.top?.length || 0) + (pinnedRows?.bottom?.length || 0);\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { gridPinnedRowsSelector } from \"./gridRowsSelector.js\";\nexport const GRID_ROOT_GROUP_ID = `auto-generated-group-node-root`;\nexport const GRID_ID_AUTOGENERATED = Symbol('mui.id_autogenerated');\nexport const buildRootGroup = () => ({\n type: 'group',\n id: GRID_ROOT_GROUP_ID,\n depth: -1,\n groupingField: null,\n groupingKey: null,\n isAutoGenerated: true,\n children: [],\n childrenFromPath: {},\n childrenExpanded: true,\n parent: null\n});\n\n/**\n * A helper function to check if the id provided is valid.\n * @param {GridRowId} id Id as [[GridRowId]].\n * @param {GridRowModel | Partial<GridRowModel>} row Row as [[GridRowModel]].\n * @param {string} detailErrorMessage A custom error message to display for invalid IDs\n */\nexport function checkGridRowIdIsValid(id, row, detailErrorMessage = 'A row was provided without id in the rows prop:') {\n if (id == null) {\n throw new Error(['MUI X: The Data Grid component requires all rows to have a unique `id` property.', 'Alternatively, you can use the `getRowId` prop to specify a custom id for each row.', detailErrorMessage, JSON.stringify(row)].join('\\n'));\n }\n}\nexport const getRowIdFromRowModel = (rowModel, getRowId, detailErrorMessage) => {\n const id = getRowId ? getRowId(rowModel) : rowModel.id;\n checkGridRowIdIsValid(id, rowModel, detailErrorMessage);\n return id;\n};\nexport const createRowsInternalCache = ({\n rows,\n getRowId,\n loading,\n rowCount\n}) => {\n const updates = {\n type: 'full',\n rows: []\n };\n const dataRowIdToModelLookup = {};\n const dataRowIdToIdLookup = {};\n for (let i = 0; i < rows.length; i += 1) {\n const model = rows[i];\n const id = getRowIdFromRowModel(model, getRowId);\n dataRowIdToModelLookup[id] = model;\n dataRowIdToIdLookup[id] = id;\n updates.rows.push(id);\n }\n return {\n rowsBeforePartialUpdates: rows,\n loadingPropBeforePartialUpdates: loading,\n rowCountPropBeforePartialUpdates: rowCount,\n updates,\n dataRowIdToIdLookup,\n dataRowIdToModelLookup\n };\n};\nexport const getTopLevelRowCount = ({\n tree,\n rowCountProp = 0\n}) => {\n const rootGroupNode = tree[GRID_ROOT_GROUP_ID];\n return Math.max(rowCountProp, rootGroupNode.children.length + (rootGroupNode.footerId == null ? 0 : 1));\n};\nexport const getRowsStateFromCache = ({\n apiRef,\n rowCountProp = 0,\n loadingProp,\n previousTree,\n previousTreeDepths,\n previousGroupsToFetch\n}) => {\n const cache = apiRef.current.caches.rows;\n\n // 1. Apply the \"rowTreeCreation\" family processing.\n const {\n tree: unProcessedTree,\n treeDepths: unProcessedTreeDepths,\n dataRowIds: unProcessedDataRowIds,\n groupingName,\n groupsToFetch = []\n } = apiRef.current.applyStrategyProcessor('rowTreeCreation', {\n previousTree,\n previousTreeDepths,\n updates: cache.updates,\n dataRowIdToIdLookup: cache.dataRowIdToIdLookup,\n dataRowIdToModelLookup: cache.dataRowIdToModelLookup,\n previousGroupsToFetch\n });\n\n // 2. Apply the \"hydrateRows\" pipe-processing.\n const groupingParamsWithHydrateRows = apiRef.current.unstable_applyPipeProcessors('hydrateRows', {\n tree: unProcessedTree,\n treeDepths: unProcessedTreeDepths,\n dataRowIdToIdLookup: cache.dataRowIdToIdLookup,\n dataRowIds: unProcessedDataRowIds,\n dataRowIdToModelLookup: cache.dataRowIdToModelLookup\n });\n\n // 3. Reset the cache updates\n apiRef.current.caches.rows.updates = {\n type: 'partial',\n actions: {\n insert: [],\n modify: [],\n remove: []\n },\n idToActionLookup: {}\n };\n return _extends({}, groupingParamsWithHydrateRows, {\n totalRowCount: Math.max(rowCountProp, groupingParamsWithHydrateRows.dataRowIds.length),\n totalTopLevelRowCount: getTopLevelRowCount({\n tree: groupingParamsWithHydrateRows.tree,\n rowCountProp\n }),\n groupingName,\n loading: loadingProp,\n groupsToFetch\n });\n};\nexport const isAutogeneratedRow = row => GRID_ID_AUTOGENERATED in row;\nexport const isAutogeneratedRowNode = rowNode => rowNode.type === 'skeletonRow' || rowNode.type === 'footer' || rowNode.type === 'group' && rowNode.isAutoGenerated || rowNode.type === 'pinnedRow' && rowNode.isAutoGenerated;\nexport const getTreeNodeDescendants = (tree, parentId, skipAutoGeneratedRows) => {\n const node = tree[parentId];\n if (node.type !== 'group') {\n return [];\n }\n const validDescendants = [];\n for (let i = 0; i < node.children.length; i += 1) {\n const child = node.children[i];\n if (!skipAutoGeneratedRows || !isAutogeneratedRowNode(tree[child])) {\n validDescendants.push(child);\n }\n const childDescendants = getTreeNodeDescendants(tree, child, skipAutoGeneratedRows);\n for (let j = 0; j < childDescendants.length; j += 1) {\n validDescendants.push(childDescendants[j]);\n }\n }\n if (!skipAutoGeneratedRows && node.footerId != null) {\n validDescendants.push(node.footerId);\n }\n return validDescendants;\n};\nexport const updateCacheWithNewRows = ({\n previousCache,\n getRowId,\n updates,\n groupKeys\n}) => {\n if (previousCache.updates.type === 'full') {\n throw new Error('MUI X: Unable to prepare a partial update if a full update is not applied yet.');\n }\n\n // Remove duplicate updates.\n // A server can batch updates, and send several updates for the same row in one fn call.\n const uniqueUpdates = new Map();\n updates.forEach(update => {\n const id = getRowIdFromRowModel(update, getRowId, 'A row was provided without id when calling updateRows():');\n if (uniqueUpdates.has(id)) {\n uniqueUpdates.set(id, _extends({}, uniqueUpdates.get(id), update));\n } else {\n uniqueUpdates.set(id, update);\n }\n });\n const partialUpdates = {\n type: 'partial',\n actions: {\n insert: [...(previousCache.updates.actions.insert ?? [])],\n modify: [...(previousCache.updates.actions.modify ?? [])],\n remove: [...(previousCache.updates.actions.remove ?? [])]\n },\n idToActionLookup: _extends({}, previousCache.updates.idToActionLookup),\n groupKeys\n };\n const dataRowIdToModelLookup = _extends({}, previousCache.dataRowIdToModelLookup);\n const dataRowIdToIdLookup = _extends({}, previousCache.dataRowIdToIdLookup);\n const alreadyAppliedActionsToRemove = {\n insert: {},\n modify: {},\n remove: {}\n };\n\n // Depending on the action already applied to the data row,\n // We might want drop the already-applied-update.\n // For instance:\n // - if you delete then insert, then you don't want to apply the deletion in the tree.\n // - if you insert, then modify, then you just want to apply the insertion in the tree.\n uniqueUpdates.forEach((partialRow, id) => {\n const actionAlreadyAppliedToRow = partialUpdates.idToActionLookup[id];\n\n // Action === \"delete\"\n // eslint-disable-next-line no-underscore-dangle\n if (partialRow._action === 'delete') {\n // If the data row has been removed since the last state update,\n // Then do nothing.\n if (actionAlreadyAppliedToRow === 'remove' || !dataRowIdToModelLookup[id]) {\n return;\n }\n\n // If the data row has been inserted / modified since the last state update,\n // Then drop this \"insert\" / \"modify\" update.\n if (actionAlreadyAppliedToRow != null) {\n alreadyAppliedActionsToRemove[actionAlreadyAppliedToRow][id] = true;\n }\n\n // Remove the data row from the lookups and add it to the \"delete\" update.\n partialUpdates.actions.remove.push(id);\n delete dataRowIdToModelLookup[id];\n delete dataRowIdToIdLookup[id];\n return;\n }\n const oldRow = dataRowIdToModelLookup[id];\n\n // Action === \"modify\"\n if (oldRow) {\n // If the data row has been removed since the last state update,\n // Then drop this \"remove\" update and add it to the \"modify\" update instead.\n if (actionAlreadyAppliedToRow === 'remove') {\n alreadyAppliedActionsToRemove.remove[id] = true;\n partialUpdates.actions.modify.push(id);\n }\n // If the date has not been inserted / modified since the last state update,\n // Then add it to the \"modify\" update (if it has been inserted it should just remain \"inserted\").\n else if (actionAlreadyAppliedToRow == null) {\n partialUpdates.actions.modify.push(id);\n }\n\n // Update the data row lookups.\n dataRowIdToModelLookup[id] = _extends({}, oldRow, partialRow);\n return;\n }\n\n // Action === \"insert\"\n // If the data row has been removed since the last state update,\n // Then drop the \"remove\" update and add it to the \"insert\" update instead.\n if (actionAlreadyAppliedToRow === 'remove') {\n alreadyAppliedActionsToRemove.remove[id] = true;\n partialUpdates.actions.insert.push(id);\n }\n // If the data row has not been inserted since the last state update,\n // Then add it to the \"insert\" update.\n // `actionAlreadyAppliedToRow` can't be equal to \"modify\", otherwise we would have an `oldRow` above.\n else if (actionAlreadyAppliedToRow == null) {\n partialUpdates.actions.insert.push(id);\n }\n\n // Update the data row lookups.\n dataRowIdToModelLookup[id] = partialRow;\n dataRowIdToIdLookup[id] = id;\n });\n const actionTypeWithActionsToRemove = Object.keys(alreadyAppliedActionsToRemove);\n for (let i = 0; i < actionTypeWithActionsToRemove.length; i += 1) {\n const actionType = actionTypeWithActionsToRemove[i];\n const idsToRemove = alreadyAppliedActionsToRemove[actionType];\n if (Object.keys(idsToRemove).length > 0) {\n partialUpdates.actions[actionType] = partialUpdates.actions[actionType].filter(id => !idsToRemove[id]);\n }\n }\n return {\n dataRowIdToModelLookup,\n dataRowIdToIdLookup,\n updates: partialUpdates,\n rowsBeforePartialUpdates: previousCache.rowsBeforePartialUpdates,\n loadingPropBeforePartialUpdates: previousCache.loadingPropBeforePartialUpdates,\n rowCountPropBeforePartialUpdates: previousCache.rowCountPropBeforePartialUpdates\n };\n};\nexport function calculatePinnedRowsHeight(apiRef) {\n const pinnedRows = gridPinnedRowsSelector(apiRef);\n const topPinnedRowsHeight = pinnedRows?.top?.reduce((acc, value) => {\n acc += apiRef.current.unstable_getRowHeight(value.id);\n return acc;\n }, 0) || 0;\n const bottomPinnedRowsHeight = pinnedRows?.bottom?.reduce((acc, value) => {\n acc += apiRef.current.unstable_getRowHeight(value.id);\n return acc;\n }, 0) || 0;\n return {\n top: topPinnedRowsHeight,\n bottom: bottomPinnedRowsHeight\n };\n}\nexport const minimalContentHeight = 'var(--DataGrid-overlayHeight, calc(var(--height) * 2))';\nexport function computeRowsUpdates(apiRef, updates, getRowId) {\n const nonPinnedRowsUpdates = [];\n updates.forEach(update => {\n const id = getRowIdFromRowModel(update, getRowId, 'A row was provided without id when calling updateRows():');\n const rowNode = apiRef.current.getRowNode(id);\n if (rowNode?.type === 'pinnedRow') {\n // @ts-ignore because otherwise `release:build` doesn't work\n const pinnedRowsCache = apiRef.current.caches.pinnedRows;\n const prevModel = pinnedRowsCache.idLookup[id];\n if (prevModel) {\n pinnedRowsCache.idLookup[id] = _extends({}, prevModel, update);\n }\n } else {\n nonPinnedRowsUpdates.push(update);\n }\n });\n return nonPinnedRowsUpdates;\n}\nlet warnedOnceInvalidRowHeight = false;\nexport const getValidRowHeight = (rowHeightProp, defaultRowHeight, warningMessage) => {\n if (typeof rowHeightProp === 'number' && rowHeightProp > 0) {\n return rowHeightProp;\n }\n if (process.env.NODE_ENV !== 'production' && !warnedOnceInvalidRowHeight && typeof rowHeightProp !== 'undefined' && rowHeightProp !== null) {\n console.warn(warningMessage);\n warnedOnceInvalidRowHeight = true;\n }\n return defaultRowHeight;\n};\nexport const rowHeightWarning = [`MUI X: The \\`rowHeight\\` prop should be a number greater than 0.`, `The default value will be used instead.`].join('\\n');\nexport const getRowHeightWarning = [`MUI X: The \\`getRowHeight\\` prop should return a number greater than 0 or 'auto'.`, `The default value will be used instead.`].join('\\n');","export const GRID_TREE_DATA_GROUPING_FIELD = '__tree_data_group__';\nexport const GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD = '__row_group_by_columns_group__';\nexport const GRID_DETAIL_PANEL_TOGGLE_FIELD = '__detail_panel_toggle__';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"id\", \"value\", \"formattedValue\", \"api\", \"field\", \"row\", \"rowNode\", \"colDef\", \"cellMode\", \"isEditable\", \"hasFocus\", \"tabIndex\", \"hideDescendantCount\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useGridSelector } from \"../../hooks/utils/useGridSelector.js\";\nimport { gridRowMaximumTreeDepthSelector } from \"../../hooks/features/rows/gridRowsSelector.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { isAutogeneratedRowNode } from \"../../hooks/features/rows/gridRowsUtils.js\";\nimport { GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD } from \"../../internals/constants.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['booleanCell']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nfunction GridBooleanCellRaw(props) {\n const {\n value,\n rowNode\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n const maxDepth = useGridSelector(apiRef, gridRowMaximumTreeDepthSelector);\n const isServerSideRowGroupingRow =\n // @ts-expect-error - Access tree data prop\n maxDepth > 0 && rowNode.type === 'group' && rootProps.treeData === false;\n const Icon = React.useMemo(() => value ? rootProps.slots.booleanCellTrueIcon : rootProps.slots.booleanCellFalseIcon, [rootProps.slots.booleanCellFalseIcon, rootProps.slots.booleanCellTrueIcon, value]);\n if (isServerSideRowGroupingRow && value === undefined) {\n return null;\n }\n return /*#__PURE__*/_jsx(Icon, _extends({\n fontSize: \"small\",\n className: classes.root,\n titleAccess: apiRef.current.getLocaleText(value ? 'booleanCellTrueLabel' : 'booleanCellFalseLabel'),\n \"data-value\": Boolean(value)\n }, other));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridBooleanCellRaw.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * GridApi that let you manipulate the grid.\n */\n api: PropTypes.object.isRequired,\n /**\n * The mode of the cell.\n */\n cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,\n /**\n * The column of the row that the current cell belongs to.\n */\n colDef: PropTypes.object.isRequired,\n /**\n * The column field of the cell that triggered the event.\n */\n field: PropTypes.string.isRequired,\n /**\n * A ref allowing to set imperative focus.\n * It can be passed to the element that should receive focus.\n * @ignore - do not document.\n */\n focusElementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.shape({\n focus: PropTypes.func.isRequired\n })\n })]),\n /**\n * The cell value formatted with the column valueFormatter.\n */\n formattedValue: PropTypes.any,\n /**\n * If true, the cell is the active element.\n */\n hasFocus: PropTypes.bool.isRequired,\n hideDescendantCount: PropTypes.bool,\n /**\n * The grid row id.\n */\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n /**\n * If true, the cell is editable.\n */\n isEditable: PropTypes.bool,\n /**\n * The row model of the row that the current cell belongs to.\n */\n row: PropTypes.any.isRequired,\n /**\n * The node of the row that the current cell belongs to.\n */\n rowNode: PropTypes.object.isRequired,\n /**\n * the tabIndex value.\n */\n tabIndex: PropTypes.oneOf([-1, 0]).isRequired,\n /**\n * The cell value.\n * If the column has `valueGetter`, use `params.row` to directly access the fields.\n */\n value: PropTypes.any\n} : void 0;\nconst GridBooleanCell = /*#__PURE__*/React.memo(GridBooleanCellRaw);\nexport { GridBooleanCell };\nexport const renderBooleanCell = params => {\n if (params.field !== GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD && isAutogeneratedRowNode(params.rowNode)) {\n return '';\n }\n return /*#__PURE__*/_jsx(GridBooleanCell, _extends({}, params));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"id\", \"value\", \"formattedValue\", \"api\", \"field\", \"row\", \"rowNode\", \"colDef\", \"cellMode\", \"isEditable\", \"tabIndex\", \"className\", \"hasFocus\", \"isValidating\", \"isProcessingProps\", \"error\", \"onValueChange\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['editBooleanCell']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nfunction GridEditBooleanCell(props) {\n const {\n id: idProp,\n value,\n field,\n className,\n hasFocus,\n onValueChange\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridApiContext();\n const inputRef = React.useRef(null);\n const id = useId();\n const [valueState, setValueState] = React.useState(value);\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n const handleChange = React.useCallback(async event => {\n const newValue = event.target.checked;\n if (onValueChange) {\n await onValueChange(event, newValue);\n }\n setValueState(newValue);\n await apiRef.current.setEditCellValue({\n id: idProp,\n field,\n value: newValue\n }, event);\n }, [apiRef, field, idProp, onValueChange]);\n React.useEffect(() => {\n setValueState(value);\n }, [value]);\n useEnhancedEffect(() => {\n if (hasFocus) {\n inputRef.current.focus();\n }\n }, [hasFocus]);\n return /*#__PURE__*/_jsx(\"label\", _extends({\n htmlFor: id,\n className: clsx(classes.root, className)\n }, other, {\n children: /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({\n id: id,\n inputRef: inputRef,\n checked: Boolean(valueState),\n onChange: handleChange,\n size: \"small\"\n }, rootProps.slotProps?.baseCheckbox))\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridEditBooleanCell.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * GridApi that let you manipulate the grid.\n */\n api: PropTypes.object.isRequired,\n /**\n * The mode of the cell.\n */\n cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,\n changeReason: PropTypes.oneOf(['debouncedSetEditCellValue', 'setEditCellValue']),\n /**\n * The column of the row that the current cell belongs to.\n */\n colDef: PropTypes.object.isRequired,\n /**\n * The column field of the cell that triggered the event.\n */\n field: PropTypes.string.isRequired,\n /**\n * The cell value formatted with the column valueFormatter.\n */\n formattedValue: PropTypes.any,\n /**\n * If true, the cell is the active element.\n */\n hasFocus: PropTypes.bool.isRequired,\n /**\n * The grid row id.\n */\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n /**\n * If true, the cell is editable.\n */\n isEditable: PropTypes.bool,\n isProcessingProps: PropTypes.bool,\n isValidating: PropTypes.bool,\n /**\n * Callback called when the value is changed by the user.\n * @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.\n * @param {boolean} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.\n * @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`\n */\n onValueChange: PropTypes.func,\n /**\n * The row model of the row that the current cell belongs to.\n */\n row: PropTypes.any.isRequired,\n /**\n * The node of the row that the current cell belongs to.\n */\n rowNode: PropTypes.object.isRequired,\n /**\n * the tabIndex value.\n */\n tabIndex: PropTypes.oneOf([-1, 0]).isRequired,\n /**\n * The cell value.\n * If the column has `valueGetter`, use `params.row` to directly access the fields.\n */\n value: PropTypes.any\n} : void 0;\nexport { GridEditBooleanCell };\nexport const renderEditBooleanCell = params => /*#__PURE__*/_jsx(GridEditBooleanCell, _extends({}, params));","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"item\", \"applyValue\", \"apiRef\", \"focusElementRef\", \"isFilterActive\", \"clearButton\", \"tabIndex\", \"label\", \"variant\", \"InputLabelProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType, unstable_useId as useId } from '@mui/utils';\nimport { styled } from '@mui/material/styles';\nimport { useGridRootProps } from \"../../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const sanitizeFilterItemValue = value => {\n if (String(value).toLowerCase() === 'true') {\n return true;\n }\n if (String(value).toLowerCase() === 'false') {\n return false;\n }\n return undefined;\n};\nconst BooleanOperatorContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n [`& button`]: {\n margin: 'auto 0px 5px 5px'\n }\n});\nfunction GridFilterInputBoolean(props) {\n const {\n item,\n applyValue,\n apiRef,\n focusElementRef,\n clearButton,\n tabIndex,\n label: labelProp,\n variant = 'standard'\n } = props,\n others = _objectWithoutPropertiesLoose(props, _excluded);\n const [filterValueState, setFilterValueState] = React.useState(sanitizeFilterItemValue(item.value));\n const rootProps = useGridRootProps();\n const labelId = useId();\n const selectId = useId();\n const baseSelectProps = rootProps.slotProps?.baseSelect || {};\n const isSelectNative = baseSelectProps.native ?? false;\n const baseSelectOptionProps = rootProps.slotProps?.baseSelectOption || {};\n const onFilterChange = React.useCallback(event => {\n const value = sanitizeFilterItemValue(event.target.value);\n setFilterValueState(value);\n applyValue(_extends({}, item, {\n value\n }));\n }, [applyValue, item]);\n React.useEffect(() => {\n setFilterValueState(sanitizeFilterItemValue(item.value));\n }, [item.value]);\n const label = labelProp ?? apiRef.current.getLocaleText('filterPanelInputLabel');\n return /*#__PURE__*/_jsxs(BooleanOperatorContainer, {\n children: [/*#__PURE__*/_jsxs(rootProps.slots.baseFormControl, {\n fullWidth: true,\n children: [/*#__PURE__*/_jsx(rootProps.slots.baseInputLabel, _extends({}, rootProps.slotProps?.baseInputLabel, {\n id: labelId,\n shrink: true,\n variant: variant,\n children: label\n })), /*#__PURE__*/_jsxs(rootProps.slots.baseSelect, _extends({\n labelId: labelId,\n id: selectId,\n label: label,\n value: filterValueState === undefined ? '' : String(filterValueState),\n onChange: onFilterChange,\n variant: variant,\n notched: variant === 'outlined' ? true : undefined,\n native: isSelectNative,\n displayEmpty: true,\n inputProps: {\n ref: focusElementRef,\n tabIndex\n }\n }, others /* FIXME: typing error */, baseSelectProps, {\n children: [/*#__PURE__*/_jsx(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {\n native: isSelectNative,\n value: \"\",\n children: apiRef.current.getLocaleText('filterValueAny')\n })), /*#__PURE__*/_jsx(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {\n native: isSelectNative,\n value: \"true\",\n children: apiRef.current.getLocaleText('filterValueTrue')\n })), /*#__PURE__*/_jsx(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {\n native: isSelectNative,\n value: \"false\",\n children: apiRef.current.getLocaleText('filterValueFalse')\n }))]\n }))]\n }), clearButton]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GridFilterInputBoolean.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n apiRef: PropTypes.shape({\n current: PropTypes.object.isRequired\n }).isRequired,\n applyValue: PropTypes.func.isRequired,\n clearButton: PropTypes.node,\n focusElementRef: refType,\n /**\n * It is `true` if the filter either has a value or an operator with no value\n * required is selected (for example `isEmpty`)\n */\n isFilterActive: PropTypes.bool,\n item: PropTypes.shape({\n field: PropTypes.string.isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n operator: PropTypes.string.isRequired,\n value: PropTypes.any\n }).isRequired\n} : void 0;\nexport { GridFilterInputBoolean };","import { GridFilterInputBoolean, sanitizeFilterItemValue } from \"../components/panel/filterPanel/GridFilterInputBoolean.js\";\nexport const getGridBooleanOperators = () => [{\n value: 'is',\n getApplyFilterFn: filterItem => {\n const sanitizedValue = sanitizeFilterItemValue(filterItem.value);\n if (sanitizedValue === undefined) {\n return null;\n }\n return value => Boolean(value) === sanitizedValue;\n },\n InputComponent: GridFilterInputBoolean\n}];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { GRID_STRING_COL_DEF } from \"./gridStringColDef.js\";\nimport { renderBooleanCell } from \"../components/cell/GridBooleanCell.js\";\nimport { renderEditBooleanCell } from \"../components/cell/GridEditBooleanCell.js\";\nimport { gridNumberComparator } from \"../hooks/features/sorting/gridSortingUtils.js\";\nimport { getGridBooleanOperators } from \"./gridBooleanOperators.js\";\nconst gridBooleanFormatter = (value, row, column, apiRef) => {\n return value ? apiRef.current.getLocaleText('booleanCellTrueLabel') : apiRef.current.getLocaleText('booleanCellFalseLabel');\n};\nconst stringToBoolean = value => {\n switch (value.toLowerCase().trim()) {\n case 'true':\n case 'yes':\n case '1':\n return true;\n case 'false':\n case 'no':\n case '0':\n case 'null':\n case 'undefined':\n return false;\n default:\n return undefined;\n }\n};\nexport const GRID_BOOLEAN_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {\n type: 'boolean',\n display: 'flex',\n align: 'center',\n headerAlign: 'center',\n renderCell: renderBooleanCell,\n renderEditCell: renderEditBooleanCell,\n sortComparator: gridNumberComparator,\n valueFormatter: gridBooleanFormatter,\n filterOperators: getGridBooleanOperators(),\n getApplyQuickFilterFn: undefined,\n // @ts-ignore\n aggregable: false,\n // @ts-ignore\n pastedValueParser: value => stringToBoolean(value)\n});","/**\n * Params passed to `apiRef.current.setEditCellValue`.\n */\nvar GridCellEditStartReasons = /*#__PURE__*/function (GridCellEditStartReasons) {\n GridCellEditStartReasons[\"enterKeyDown\"] = \"enterKeyDown\";\n GridCellEditStartReasons[\"cellDoubleClick\"] = \"cellDoubleClick\";\n GridCellEditStartReasons[\"printableKeyDown\"] = \"printableKeyDown\";\n GridCellEditStartReasons[\"deleteKeyDown\"] = \"deleteKeyDown\";\n GridCellEditStartReasons[\"pasteKeyDown\"] = \"pasteKeyDown\";\n return GridCellEditStartReasons;\n}(GridCellEditStartReasons || {});\n/**\n * Params passed to the `cellEditStart` event.\n */\nvar GridCellEditStopReasons = /*#__PURE__*/function (GridCellEditStopReasons) {\n GridCellEditStopReasons[\"cellFocusOut\"] = \"cellFocusOut\";\n GridCellEditStopReasons[\"escapeKeyDown\"] = \"escapeKeyDown\";\n GridCellEditStopReasons[\"enterKeyDown\"] = \"enterKeyDown\";\n GridCellEditStopReasons[\"tabKeyDown\"] = \"tabKeyDown\";\n GridCellEditStopReasons[\"shiftTabKeyDown\"] = \"shiftTabKeyDown\";\n return GridCellEditStopReasons;\n}(GridCellEditStopReasons || {});\n/**\n * Params passed to the `cellEditStop event.\n */\n// https://github.com/mui/mui-x/pull/3738#discussion_r798504277\nexport { GridCellEditStartReasons, GridCellEditStopReasons };","var GridEditModes = /*#__PURE__*/function (GridEditModes) {\n GridEditModes[\"Cell\"] = \"cell\";\n GridEditModes[\"Row\"] = \"row\";\n return GridEditModes;\n}(GridEditModes || {});\nvar GridCellModes = /*#__PURE__*/function (GridCellModes) {\n GridCellModes[\"Edit\"] = \"edit\";\n GridCellModes[\"View\"] = \"view\";\n return GridCellModes;\n}(GridCellModes || {});\nvar GridRowModes = /*#__PURE__*/function (GridRowModes) {\n GridRowModes[\"Edit\"] = \"edit\";\n GridRowModes[\"View\"] = \"view\";\n return GridRowModes;\n}(GridRowModes || {});\nexport { GridEditModes, GridCellModes, GridRowModes };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport function isSingleSelectColDef(colDef) {\n return colDef?.type === 'singleSelect';\n}\nexport function getValueOptions(column, additionalParams) {\n if (!column) {\n return undefined;\n }\n return typeof column.valueOptions === 'function' ? column.valueOptions(_extends({\n field: column.field\n }, additionalParams)) : column.valueOptions;\n}\nexport function getValueFromValueOptions(value, valueOptions, getOptionValue) {\n if (valueOptions === undefined) {\n return undefined;\n }\n const result = valueOptions.find(option => {\n const optionValue = getOptionValue(option);\n return String(optionValue) === String(value);\n });\n return getOptionValue(result);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"id\", \"value\", \"formattedValue\", \"api\", \"field\", \"row\", \"rowNode\", \"colDef\", \"cellMode\", \"isEditable\", \"tabIndex\", \"className\", \"hasFocus\", \"isValidating\", \"isProcessingProps\", \"error\", \"onValueChange\", \"initialOpen\"],\n _excluded2 = [\"MenuProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { GridCellEditStopReasons } from \"../../models/params/gridEditCellParams.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { GridEditModes } from \"../../models/gridEditRowModel.js\";\nimport { getValueFromValueOptions, getValueOptions, isSingleSelectColDef } from \"../panel/filterPanel/filterPanelUtils.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { createElement as _createElement } from \"react\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isKeyboardEvent(event) {\n return !!event.key;\n}\nfunction GridEditSingleSelectCell(props) {\n const rootProps = useGridRootProps();\n const {\n id,\n value: valueProp,\n field,\n row,\n colDef,\n hasFocus,\n error,\n onValueChange,\n initialOpen = rootProps.editMode === GridEditModes.Cell\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridApiContext();\n const ref = React.useRef(null);\n const inputRef = React.useRef(null);\n const [open, setOpen] = React.useState(initialOpen);\n const baseSelectProps = rootProps.slotProps?.baseSelect || {};\n const isSelectNative = baseSelectProps.native ?? false;\n const _ref = rootProps.slotProps?.baseSelect || {},\n {\n MenuProps\n } = _ref,\n otherBaseSelectProps = _objectWithoutPropertiesLoose(_ref, _excluded2);\n useEnhancedEffect(() => {\n if (hasFocus) {\n inputRef.current?.focus();\n }\n }, [hasFocus]);\n if (!isSingleSelectColDef(colDef)) {\n return null;\n }\n const valueOptions = getValueOptions(colDef, {\n id,\n row\n });\n if (!valueOptions) {\n return null;\n }\n const getOptionValue = colDef.getOptionValue;\n const getOptionLabel = colDef.getOptionLabel;\n const handleChange = async event => {\n if (!isSingleSelectColDef(colDef) || !valueOptions) {\n return;\n }\n setOpen(false);\n const target = event.target;\n // NativeSelect casts the value to a string.\n const formattedTargetValue = getValueFromValueOptions(target.value, valueOptions, getOptionValue);\n if (onValueChange) {\n await onValueChange(event, formattedTargetValue);\n }\n await apiRef.current.setEditCellValue({\n id,\n field,\n value: formattedTargetValue\n }, event);\n };\n const handleClose = (event, reason) => {\n if (rootProps.editMode === GridEditModes.Row) {\n setOpen(false);\n return;\n }\n if (reason === 'backdropClick' || event.key === 'Escape') {\n const params = apiRef.current.getCellParams(id, field);\n apiRef.current.publishEvent('cellEditStop', _extends({}, params, {\n reason: event.key === 'Escape' ? GridCellEditStopReasons.escapeKeyDown : GridCellEditStopReasons.cellFocusOut\n }));\n }\n };\n const handleOpen = event => {\n if (isKeyboardEvent(event) && event.key === 'Enter') {\n return;\n }\n setOpen(true);\n };\n if (!valueOptions || !colDef) {\n return null;\n }\n return /*#__PURE__*/_jsx(rootProps.slots.baseSelect, _extends({\n ref: ref,\n inputRef: inputRef,\n value: valueProp,\n onChange: handleChange,\n open: open,\n onOpen: handleOpen,\n MenuProps: _extends({\n onClose: handleClose\n }, MenuProps),\n error: error,\n native: isSelectNative,\n fullWidth: true\n }, other, otherBaseSelectProps, {\n children: valueOptions.map(valueOption => {\n const value = getOptionValue(valueOption);\n return /*#__PURE__*/_createElement(rootProps.slots.baseSelectOption, _extends({}, rootProps.slotProps?.baseSelectOption || {}, {\n native: isSelectNative,\n key: value,\n value: value\n }), getOptionLabel(valueOption));\n })\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridEditSingleSelectCell.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * GridApi that let you manipulate the grid.\n */\n api: PropTypes.object.isRequired,\n /**\n * The mode of the cell.\n */\n cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,\n changeReason: PropTypes.oneOf(['debouncedSetEditCellValue', 'setEditCellValue']),\n /**\n * The column of the row that the current cell belongs to.\n */\n colDef: PropTypes.object.isRequired,\n /**\n * The column field of the cell that triggered the event.\n */\n field: PropTypes.string.isRequired,\n /**\n * The cell value formatted with the column valueFormatter.\n */\n formattedValue: PropTypes.any,\n /**\n * If true, the cell is the active element.\n */\n hasFocus: PropTypes.bool.isRequired,\n /**\n * The grid row id.\n */\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n /**\n * If true, the select opens by default.\n */\n initialOpen: PropTypes.bool,\n /**\n * If true, the cell is editable.\n */\n isEditable: PropTypes.bool,\n isProcessingProps: PropTypes.bool,\n isValidating: PropTypes.bool,\n /**\n * Callback called when the value is changed by the user.\n * @param {SelectChangeEvent<any>} event The event source of the callback.\n * @param {any} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.\n * @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`\n */\n onValueChange: PropTypes.func,\n /**\n * The row model of the row that the current cell belongs to.\n */\n row: PropTypes.any.isRequired,\n /**\n * The node of the row that the current cell belongs to.\n */\n rowNode: PropTypes.object.isRequired,\n /**\n * the tabIndex value.\n */\n tabIndex: PropTypes.oneOf([-1, 0]).isRequired,\n /**\n * The cell value.\n * If the column has `valueGetter`, use `params.row` to directly access the fields.\n */\n value: PropTypes.any\n} : void 0;\nexport { GridEditSingleSelectCell };\nexport const renderEditSingleSelectCell = params => /*#__PURE__*/_jsx(GridEditSingleSelectCell, _extends({}, params));","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"item\", \"applyValue\", \"type\", \"apiRef\", \"focusElementRef\", \"placeholder\", \"tabIndex\", \"label\", \"variant\", \"isFilterActive\", \"clearButton\", \"InputLabelProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useId as useId } from '@mui/utils';\nimport { styled } from '@mui/material/styles';\nimport { useGridRootProps } from \"../../../hooks/utils/useGridRootProps.js\";\nimport { getValueFromValueOptions, getValueOptions, isSingleSelectColDef } from \"./filterPanelUtils.js\";\nimport { createElement as _createElement } from \"react\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst renderSingleSelectOptions = ({\n column,\n OptionComponent,\n getOptionLabel,\n getOptionValue,\n isSelectNative,\n baseSelectOptionProps\n}) => {\n const iterableColumnValues = ['', ...(getValueOptions(column) || [])];\n return iterableColumnValues.map(option => {\n const value = getOptionValue(option);\n let label = getOptionLabel(option);\n if (label === '') {\n label = ' '; // To force the height of the empty option\n }\n return /*#__PURE__*/_createElement(OptionComponent, _extends({}, baseSelectOptionProps, {\n native: isSelectNative,\n key: value,\n value: value\n }), label);\n });\n};\nconst SingleSelectOperatorContainer = styled('div')({\n display: 'flex',\n alignItems: 'flex-end',\n width: '100%',\n [`& button`]: {\n margin: 'auto 0px 5px 5px'\n }\n});\nfunction GridFilterInputSingleSelect(props) {\n const {\n item,\n applyValue,\n type,\n apiRef,\n focusElementRef,\n placeholder,\n tabIndex,\n label: labelProp,\n variant = 'standard',\n clearButton\n } = props,\n others = _objectWithoutPropertiesLoose(props, _excluded);\n const filterValue = item.value ?? '';\n const id = useId();\n const labelId = useId();\n const rootProps = useGridRootProps();\n const isSelectNative = rootProps.slotProps?.baseSelect?.native ?? false;\n let resolvedColumn = null;\n if (item.field) {\n const column = apiRef.current.getColumn(item.field);\n if (isSingleSelectColDef(column)) {\n resolvedColumn = column;\n }\n }\n const getOptionValue = resolvedColumn?.getOptionValue;\n const getOptionLabel = resolvedColumn?.getOptionLabel;\n const currentValueOptions = React.useMemo(() => {\n return getValueOptions(resolvedColumn);\n }, [resolvedColumn]);\n const onFilterChange = React.useCallback(event => {\n let value = event.target.value;\n\n // NativeSelect casts the value to a string.\n value = getValueFromValueOptions(value, currentValueOptions, getOptionValue);\n applyValue(_extends({}, item, {\n value\n }));\n }, [currentValueOptions, getOptionValue, applyValue, item]);\n if (!isSingleSelectColDef(resolvedColumn)) {\n return null;\n }\n const label = labelProp ?? apiRef.current.getLocaleText('filterPanelInputLabel');\n return /*#__PURE__*/_jsxs(SingleSelectOperatorContainer, {\n children: [/*#__PURE__*/_jsxs(rootProps.slots.baseFormControl, {\n fullWidth: true,\n children: [/*#__PURE__*/_jsx(rootProps.slots.baseInputLabel, _extends({}, rootProps.slotProps?.baseInputLabel, {\n id: labelId,\n htmlFor: id,\n shrink: true,\n variant: variant,\n children: label\n })), /*#__PURE__*/_jsx(rootProps.slots.baseSelect, _extends({\n id: id,\n label: label,\n labelId: labelId,\n value: filterValue,\n onChange: onFilterChange,\n variant: variant,\n type: type || 'text',\n inputProps: {\n tabIndex,\n ref: focusElementRef,\n placeholder: placeholder ?? apiRef.current.getLocaleText('filterPanelInputPlaceholder')\n },\n native: isSelectNative,\n notched: variant === 'outlined' ? true : undefined\n }, others /* FIXME: typing error */, rootProps.slotProps?.baseSelect, {\n children: renderSingleSelectOptions({\n column: resolvedColumn,\n OptionComponent: rootProps.slots.baseSelectOption,\n getOptionLabel,\n getOptionValue,\n isSelectNative,\n baseSelectOptionProps: rootProps.slotProps?.baseSelectOption\n })\n }))]\n }), clearButton]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GridFilterInputSingleSelect.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n apiRef: PropTypes.shape({\n current: PropTypes.object.isRequired\n }).isRequired,\n applyValue: PropTypes.func.isRequired,\n clearButton: PropTypes.node,\n focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),\n /**\n * It is `true` if the filter either has a value or an operator with no value\n * required is selected (for example `isEmpty`)\n */\n isFilterActive: PropTypes.bool,\n item: PropTypes.shape({\n field: PropTypes.string.isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n operator: PropTypes.string.isRequired,\n value: PropTypes.any\n }).isRequired\n} : void 0;\nexport { GridFilterInputSingleSelect };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"item\", \"applyValue\", \"type\", \"apiRef\", \"focusElementRef\", \"color\", \"error\", \"helperText\", \"size\", \"variant\"],\n _excluded2 = [\"key\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Autocomplete, { createFilterOptions } from '@mui/material/Autocomplete';\nimport { unstable_useId as useId } from '@mui/utils';\nimport { getValueOptions, isSingleSelectColDef } from \"./filterPanelUtils.js\";\nimport { useGridRootProps } from \"../../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst filter = createFilterOptions();\nfunction GridFilterInputMultipleSingleSelect(props) {\n const {\n item,\n applyValue,\n apiRef,\n focusElementRef,\n color,\n error,\n helperText,\n size,\n variant = 'standard'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const TextFieldProps = {\n color,\n error,\n helperText,\n size,\n variant\n };\n const id = useId();\n const rootProps = useGridRootProps();\n let resolvedColumn = null;\n if (item.field) {\n const column = apiRef.current.getColumn(item.field);\n if (isSingleSelectColDef(column)) {\n resolvedColumn = column;\n }\n }\n const getOptionValue = resolvedColumn?.getOptionValue;\n const getOptionLabel = resolvedColumn?.getOptionLabel;\n const isOptionEqualToValue = React.useCallback((option, value) => getOptionValue(option) === getOptionValue(value), [getOptionValue]);\n const resolvedValueOptions = React.useMemo(() => {\n return getValueOptions(resolvedColumn) || [];\n }, [resolvedColumn]);\n\n // The value is computed from the item.value and used directly\n // If it was done by a useEffect/useState, the Autocomplete could receive incoherent value and options\n const filteredValues = React.useMemo(() => {\n if (!Array.isArray(item.value)) {\n return [];\n }\n return item.value.reduce((acc, value) => {\n const resolvedValue = resolvedValueOptions.find(v => getOptionValue(v) === value);\n if (resolvedValue != null) {\n acc.push(resolvedValue);\n }\n return acc;\n }, []);\n }, [getOptionValue, item.value, resolvedValueOptions]);\n const handleChange = React.useCallback((event, value) => {\n applyValue(_extends({}, item, {\n value: value.map(getOptionValue)\n }));\n }, [applyValue, item, getOptionValue]);\n return /*#__PURE__*/_jsx(Autocomplete, _extends({\n multiple: true,\n options: resolvedValueOptions,\n isOptionEqualToValue: isOptionEqualToValue,\n filterOptions: filter,\n id: id,\n value: filteredValues,\n onChange: handleChange,\n getOptionLabel: getOptionLabel,\n renderTags: (value, getTagProps) => value.map((option, index) => {\n const _getTagProps = getTagProps({\n index\n }),\n {\n key\n } = _getTagProps,\n tagProps = _objectWithoutPropertiesLoose(_getTagProps, _excluded2);\n return /*#__PURE__*/_jsx(rootProps.slots.baseChip, _extends({\n variant: \"outlined\",\n size: \"small\",\n label: getOptionLabel(option)\n }, tagProps), key);\n }),\n renderInput: params => /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({}, params, {\n label: apiRef.current.getLocaleText('filterPanelInputLabel'),\n placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),\n InputLabelProps: _extends({}, params.InputLabelProps, {\n shrink: true\n }),\n inputRef: focusElementRef,\n type: \"singleSelect\"\n }, TextFieldProps, rootProps.slotProps?.baseTextField))\n }, other));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridFilterInputMultipleSingleSelect.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n apiRef: PropTypes.shape({\n current: PropTypes.object.isRequired\n }).isRequired,\n applyValue: PropTypes.func.isRequired,\n focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),\n item: PropTypes.shape({\n field: PropTypes.string.isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n operator: PropTypes.string.isRequired,\n value: PropTypes.any\n }).isRequired,\n type: PropTypes.oneOf(['singleSelect'])\n} : void 0;\nexport { GridFilterInputMultipleSingleSelect };","import { GridFilterInputSingleSelect } from \"../components/panel/filterPanel/GridFilterInputSingleSelect.js\";\nimport { GridFilterInputMultipleSingleSelect } from \"../components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js\";\nimport { isObject } from \"../utils/utils.js\";\nconst parseObjectValue = value => {\n if (value == null || !isObject(value)) {\n return value;\n }\n return value.value;\n};\nexport const getGridSingleSelectOperators = () => [{\n value: 'is',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || filterItem.value === '') {\n return null;\n }\n return value => parseObjectValue(value) === parseObjectValue(filterItem.value);\n },\n InputComponent: GridFilterInputSingleSelect\n}, {\n value: 'not',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || filterItem.value === '') {\n return null;\n }\n return value => parseObjectValue(value) !== parseObjectValue(filterItem.value);\n },\n InputComponent: GridFilterInputSingleSelect\n}, {\n value: 'isAnyOf',\n getApplyFilterFn: filterItem => {\n if (!Array.isArray(filterItem.value) || filterItem.value.length === 0) {\n return null;\n }\n const filterItemValues = filterItem.value.map(parseObjectValue);\n return value => filterItemValues.includes(parseObjectValue(value));\n },\n InputComponent: GridFilterInputMultipleSingleSelect\n}];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { GRID_STRING_COL_DEF } from \"./gridStringColDef.js\";\nimport { renderEditSingleSelectCell } from \"../components/cell/GridEditSingleSelectCell.js\";\nimport { getGridSingleSelectOperators } from \"./gridSingleSelectOperators.js\";\nimport { getValueOptions, isSingleSelectColDef } from \"../components/panel/filterPanel/filterPanelUtils.js\";\nimport { isObject } from \"../utils/utils.js\";\nconst isArrayOfObjects = options => {\n return typeof options[0] === 'object';\n};\nconst defaultGetOptionValue = value => {\n return isObject(value) ? value.value : value;\n};\nconst defaultGetOptionLabel = value => {\n return isObject(value) ? value.label : String(value);\n};\nexport const GRID_SINGLE_SELECT_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {\n type: 'singleSelect',\n getOptionLabel: defaultGetOptionLabel,\n getOptionValue: defaultGetOptionValue,\n valueFormatter(value, row, colDef, apiRef) {\n // const { id, field, value, api } = params;\n const rowId = apiRef.current.getRowId(row);\n if (!isSingleSelectColDef(colDef)) {\n return '';\n }\n const valueOptions = getValueOptions(colDef, {\n id: rowId,\n row\n });\n if (value == null) {\n return '';\n }\n if (!valueOptions) {\n return value;\n }\n if (!isArrayOfObjects(valueOptions)) {\n return colDef.getOptionLabel(value);\n }\n const valueOption = valueOptions.find(option => colDef.getOptionValue(option) === value);\n return valueOption ? colDef.getOptionLabel(valueOption) : '';\n },\n renderEditCell: renderEditSingleSelectCell,\n filterOperators: getGridSingleSelectOperators(),\n // @ts-ignore\n pastedValueParser: (value, row, column) => {\n const colDef = column;\n const valueOptions = getValueOptions(colDef) || [];\n const getOptionValue = colDef.getOptionValue;\n const valueOption = valueOptions.find(option => {\n if (getOptionValue(option) === value) {\n return true;\n }\n return false;\n });\n if (valueOption) {\n return value;\n }\n // do not paste the value if it is not in the valueOptions\n return undefined;\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"open\", \"target\", \"onClose\", \"children\", \"position\", \"className\", \"onExited\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport ClickAwayListener from '@mui/material/ClickAwayListener';\nimport { unstable_composeClasses as composeClasses, unstable_useEnhancedEffect as useEnhancedEffect, HTMLElementType } from '@mui/utils';\nimport Grow from '@mui/material/Grow';\nimport Paper from '@mui/material/Paper';\nimport Popper from '@mui/material/Popper';\nimport { styled } from '@mui/material/styles';\nimport { getDataGridUtilityClass, gridClasses } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['menu']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridMenuRoot = styled(Popper, {\n name: 'MuiDataGrid',\n slot: 'Menu',\n overridesResolver: (_, styles) => styles.menu\n})(({\n theme\n}) => ({\n zIndex: theme.zIndex.modal,\n [`& .${gridClasses.menuList}`]: {\n outline: 0\n }\n}));\nconst transformOrigin = {\n 'bottom-start': 'top left',\n 'bottom-end': 'top right'\n};\nfunction GridMenu(props) {\n const {\n open,\n target,\n onClose,\n children,\n position,\n className,\n onExited\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const classes = useUtilityClasses(rootProps);\n const savedFocusRef = React.useRef(null);\n useEnhancedEffect(() => {\n if (open) {\n savedFocusRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n } else {\n savedFocusRef.current?.focus?.();\n savedFocusRef.current = null;\n }\n }, [open]);\n React.useEffect(() => {\n // Emit menuOpen or menuClose events\n const eventName = open ? 'menuOpen' : 'menuClose';\n apiRef.current.publishEvent(eventName, {\n target\n });\n }, [apiRef, open, target]);\n const handleExited = popperOnExited => node => {\n if (popperOnExited) {\n popperOnExited();\n }\n if (onExited) {\n onExited(node);\n }\n };\n const handleClickAway = event => {\n if (event.target && (target === event.target || target?.contains(event.target))) {\n return;\n }\n onClose(event);\n };\n return /*#__PURE__*/_jsx(GridMenuRoot, _extends({\n as: rootProps.slots.basePopper,\n className: clsx(classes.root, className),\n ownerState: rootProps,\n open: open,\n anchorEl: target,\n transition: true,\n placement: position\n }, other, rootProps.slotProps?.basePopper, {\n children: ({\n TransitionProps,\n placement\n }) => /*#__PURE__*/_jsx(ClickAwayListener, {\n onClickAway: handleClickAway,\n mouseEvent: \"onMouseDown\",\n children: /*#__PURE__*/_jsx(Grow, _extends({}, TransitionProps, {\n style: {\n transformOrigin: transformOrigin[placement]\n },\n onExited: handleExited(TransitionProps?.onExited),\n children: /*#__PURE__*/_jsx(Paper, {\n children: children\n })\n }))\n })\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridMenu.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n children: PropTypes.node,\n onClose: PropTypes.func.isRequired,\n onExited: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n position: PropTypes.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n target: HTMLElementType\n} : void 0;\nexport { GridMenu };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"api\", \"colDef\", \"id\", \"hasFocus\", \"isEditable\", \"field\", \"value\", \"formattedValue\", \"row\", \"rowNode\", \"cellMode\", \"tabIndex\", \"position\", \"focusElementRef\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport MenuList from '@mui/material/MenuList';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { unstable_useId as useId } from '@mui/utils';\nimport { gridClasses } from \"../../constants/gridClasses.js\";\nimport { GridMenu } from \"../menu/GridMenu.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst hasActions = colDef => typeof colDef.getActions === 'function';\nfunction GridActionsCell(props) {\n const {\n colDef,\n id,\n hasFocus,\n tabIndex,\n position = 'bottom-end',\n focusElementRef\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [focusedButtonIndex, setFocusedButtonIndex] = React.useState(-1);\n const [open, setOpen] = React.useState(false);\n const apiRef = useGridApiContext();\n const rootRef = React.useRef(null);\n const buttonRef = React.useRef(null);\n const ignoreCallToFocus = React.useRef(false);\n const touchRippleRefs = React.useRef({});\n const isRtl = useRtl();\n const menuId = useId();\n const buttonId = useId();\n const rootProps = useGridRootProps();\n if (!hasActions(colDef)) {\n throw new Error('MUI X: Missing the `getActions` property in the `GridColDef`.');\n }\n const options = colDef.getActions(apiRef.current.getRowParams(id));\n const iconButtons = options.filter(option => !option.props.showInMenu);\n const menuButtons = options.filter(option => option.props.showInMenu);\n const numberOfButtons = iconButtons.length + (menuButtons.length ? 1 : 0);\n React.useLayoutEffect(() => {\n if (!hasFocus) {\n Object.entries(touchRippleRefs.current).forEach(([index, ref]) => {\n ref?.stop({}, () => {\n delete touchRippleRefs.current[index];\n });\n });\n }\n }, [hasFocus]);\n React.useEffect(() => {\n if (focusedButtonIndex < 0 || !rootRef.current) {\n return;\n }\n if (focusedButtonIndex >= rootRef.current.children.length) {\n return;\n }\n const child = rootRef.current.children[focusedButtonIndex];\n child.focus({\n preventScroll: true\n });\n }, [focusedButtonIndex]);\n React.useEffect(() => {\n if (!hasFocus) {\n setFocusedButtonIndex(-1);\n ignoreCallToFocus.current = false;\n }\n }, [hasFocus]);\n React.useImperativeHandle(focusElementRef, () => ({\n focus() {\n // If ignoreCallToFocus is true, then one of the buttons was clicked and the focus is already set\n if (!ignoreCallToFocus.current) {\n // find the first focusable button and pass the index to the state\n const focusableButtonIndex = options.findIndex(o => !o.props.disabled);\n setFocusedButtonIndex(focusableButtonIndex);\n }\n }\n }), [options]);\n React.useEffect(() => {\n if (focusedButtonIndex >= numberOfButtons) {\n setFocusedButtonIndex(numberOfButtons - 1);\n }\n }, [focusedButtonIndex, numberOfButtons]);\n const showMenu = () => {\n setOpen(true);\n setFocusedButtonIndex(numberOfButtons - 1);\n ignoreCallToFocus.current = true;\n };\n const hideMenu = () => {\n setOpen(false);\n };\n const toggleMenu = () => {\n if (open) {\n hideMenu();\n } else {\n showMenu();\n }\n };\n const handleTouchRippleRef = index => instance => {\n touchRippleRefs.current[index] = instance;\n };\n const handleButtonClick = (index, onClick) => event => {\n setFocusedButtonIndex(index);\n ignoreCallToFocus.current = true;\n if (onClick) {\n onClick(event);\n }\n };\n const handleRootKeyDown = event => {\n if (numberOfButtons <= 1) {\n return;\n }\n const getNewIndex = (index, direction) => {\n if (index < 0 || index > options.length) {\n return index;\n }\n\n // for rtl mode we need to reverse the direction\n const rtlMod = isRtl ? -1 : 1;\n const indexMod = (direction === 'left' ? -1 : 1) * rtlMod;\n\n // if the button that should receive focus is disabled go one more step\n return options[index + indexMod]?.props.disabled ? getNewIndex(index + indexMod, direction) : index + indexMod;\n };\n let newIndex = focusedButtonIndex;\n if (event.key === 'ArrowRight') {\n newIndex = getNewIndex(focusedButtonIndex, 'right');\n } else if (event.key === 'ArrowLeft') {\n newIndex = getNewIndex(focusedButtonIndex, 'left');\n }\n if (newIndex < 0 || newIndex >= numberOfButtons) {\n return; // We're already in the first or last item = do nothing and let the grid listen the event\n }\n if (newIndex !== focusedButtonIndex) {\n event.preventDefault(); // Prevent scrolling\n event.stopPropagation(); // Don't stop propagation for other keys, for example ArrowUp\n setFocusedButtonIndex(newIndex);\n }\n };\n const handleListKeyDown = event => {\n if (event.key === 'Tab') {\n event.preventDefault();\n }\n if (['Tab', 'Escape'].includes(event.key)) {\n hideMenu();\n }\n };\n return /*#__PURE__*/_jsxs(\"div\", _extends({\n role: \"menu\",\n ref: rootRef,\n tabIndex: -1,\n className: gridClasses.actionsCell,\n onKeyDown: handleRootKeyDown\n }, other, {\n children: [iconButtons.map((button, index) => /*#__PURE__*/React.cloneElement(button, {\n key: index,\n touchRippleRef: handleTouchRippleRef(index),\n onClick: handleButtonClick(index, button.props.onClick),\n tabIndex: focusedButtonIndex === index ? tabIndex : -1\n })), menuButtons.length > 0 && buttonId && /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({\n ref: buttonRef,\n id: buttonId,\n \"aria-label\": apiRef.current.getLocaleText('actionsCellMore'),\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n \"aria-controls\": open ? menuId : undefined,\n role: \"menuitem\",\n size: \"small\",\n onClick: toggleMenu,\n touchRippleRef: handleTouchRippleRef(buttonId),\n tabIndex: focusedButtonIndex === iconButtons.length ? tabIndex : -1\n }, rootProps.slotProps?.baseIconButton, {\n children: /*#__PURE__*/_jsx(rootProps.slots.moreActionsIcon, {\n fontSize: \"small\"\n })\n })), menuButtons.length > 0 && /*#__PURE__*/_jsx(GridMenu, {\n open: open,\n target: buttonRef.current,\n position: position,\n onClose: hideMenu,\n children: /*#__PURE__*/_jsx(MenuList, {\n id: menuId,\n className: gridClasses.menuList,\n onKeyDown: handleListKeyDown,\n \"aria-labelledby\": buttonId,\n variant: \"menu\",\n autoFocusItem: true,\n children: menuButtons.map((button, index) => /*#__PURE__*/React.cloneElement(button, {\n key: index,\n closeMenu: hideMenu\n }))\n })\n })]\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridActionsCell.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n api: PropTypes.object,\n /**\n * The mode of the cell.\n */\n cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,\n /**\n * The column of the row that the current cell belongs to.\n */\n colDef: PropTypes.object.isRequired,\n /**\n * The column field of the cell that triggered the event.\n */\n field: PropTypes.string.isRequired,\n /**\n * A ref allowing to set imperative focus.\n * It can be passed to the element that should receive focus.\n * @ignore - do not document.\n */\n focusElementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.shape({\n focus: PropTypes.func.isRequired\n })\n })]),\n /**\n * The cell value formatted with the column valueFormatter.\n */\n formattedValue: PropTypes.any,\n /**\n * If true, the cell is the active element.\n */\n hasFocus: PropTypes.bool.isRequired,\n /**\n * The grid row id.\n */\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n /**\n * If true, the cell is editable.\n */\n isEditable: PropTypes.bool,\n position: PropTypes.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n /**\n * The row model of the row that the current cell belongs to.\n */\n row: PropTypes.any.isRequired,\n /**\n * The node of the row that the current cell belongs to.\n */\n rowNode: PropTypes.object.isRequired,\n /**\n * the tabIndex value.\n */\n tabIndex: PropTypes.oneOf([-1, 0]).isRequired,\n /**\n * The cell value.\n * If the column has `valueGetter`, use `params.row` to directly access the fields.\n */\n value: PropTypes.any\n} : void 0;\nexport { GridActionsCell };\nexport const renderActionsCell = params => /*#__PURE__*/_jsx(GridActionsCell, _extends({}, params));","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { GRID_STRING_COL_DEF } from \"./gridStringColDef.js\";\nimport { renderActionsCell } from \"../components/cell/GridActionsCell.js\";\nexport const GRID_ACTIONS_COLUMN_TYPE = 'actions';\nexport const GRID_ACTIONS_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {\n sortable: false,\n filterable: false,\n // @ts-ignore\n aggregable: false,\n width: 100,\n display: 'flex',\n align: 'center',\n headerAlign: 'center',\n headerName: '',\n disableColumnMenu: true,\n disableExport: true,\n renderCell: renderActionsCell,\n getApplyQuickFilterFn: undefined\n});","import { createSelector } from \"../../../utils/createSelector.js\";\nexport const gridHeaderFilteringStateSelector = state => state.headerFiltering;\nexport const gridHeaderFilteringEnabledSelector = createSelector(gridHeaderFilteringStateSelector,\n// No initialization in MIT, so we need to default to false to be used by `getTotalHeaderHeight`\nheaderFilteringState => headerFilteringState?.enabled ?? false);\nexport const gridHeaderFilteringEditFieldSelector = createSelector(gridHeaderFilteringStateSelector, headerFilteringState => headerFilteringState.editing);\nexport const gridHeaderFilteringMenuSelector = createSelector(gridHeaderFilteringStateSelector, headerFilteringState => headerFilteringState.menuOpen);","import { createSelector, createSelectorMemoized } from \"../../../utils/createSelector.js\";\n/**\n * @category ColumnGrouping\n * @ignore - do not document.\n */\nexport const gridColumnGroupingSelector = state => state.columnGrouping;\nexport const gridColumnGroupsUnwrappedModelSelector = createSelectorMemoized(gridColumnGroupingSelector, columnGrouping => columnGrouping?.unwrappedGroupingModel ?? {});\nexport const gridColumnGroupsLookupSelector = createSelectorMemoized(gridColumnGroupingSelector, columnGrouping => columnGrouping?.lookup ?? {});\nexport const gridColumnGroupsHeaderStructureSelector = createSelectorMemoized(gridColumnGroupingSelector, columnGrouping => columnGrouping?.headerStructure ?? []);\nexport const gridColumnGroupsHeaderMaxDepthSelector = createSelector(gridColumnGroupingSelector, columnGrouping => columnGrouping?.maxDepth ?? 0);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport resolveProps from '@mui/utils/resolveProps';\nimport { DEFAULT_GRID_COL_TYPE_KEY, GRID_STRING_COL_DEF, getGridDefaultColumnTypes } from \"../../../colDef/index.js\";\nimport { gridColumnsStateSelector, gridColumnVisibilityModelSelector } from \"./gridColumnsSelector.js\";\nimport { clamp } from \"../../../utils/utils.js\";\nimport { gridDensityFactorSelector } from \"../density/densitySelector.js\";\nimport { gridHeaderFilteringEnabledSelector } from \"../headerFiltering/gridHeaderFilteringSelectors.js\";\nimport { gridColumnGroupsHeaderMaxDepthSelector } from \"../columnGrouping/gridColumnGroupsSelector.js\";\nexport const COLUMNS_DIMENSION_PROPERTIES = ['maxWidth', 'minWidth', 'width', 'flex'];\nconst COLUMN_TYPES = getGridDefaultColumnTypes();\n\n/**\n * Computes width for flex columns.\n * Based on CSS Flexbox specification:\n * https://drafts.csswg.org/css-flexbox-1/#resolve-flexible-lengths\n */\nexport function computeFlexColumnsWidth({\n initialFreeSpace,\n totalFlexUnits,\n flexColumns\n}) {\n const uniqueFlexColumns = new Set(flexColumns.map(col => col.field));\n const flexColumnsLookup = {\n all: {},\n frozenFields: [],\n freeze: field => {\n const value = flexColumnsLookup.all[field];\n if (value && value.frozen !== true) {\n flexColumnsLookup.all[field].frozen = true;\n flexColumnsLookup.frozenFields.push(field);\n }\n }\n };\n\n // Step 5 of https://drafts.csswg.org/css-flexbox-1/#resolve-flexible-lengths\n function loopOverFlexItems() {\n // 5a: If all the flex items on the line are frozen, free space has been distributed.\n if (flexColumnsLookup.frozenFields.length === uniqueFlexColumns.size) {\n return;\n }\n const violationsLookup = {\n min: {},\n max: {}\n };\n let remainingFreeSpace = initialFreeSpace;\n let flexUnits = totalFlexUnits;\n let totalViolation = 0;\n\n // 5b: Calculate the remaining free space\n flexColumnsLookup.frozenFields.forEach(field => {\n remainingFreeSpace -= flexColumnsLookup.all[field].computedWidth;\n flexUnits -= flexColumnsLookup.all[field].flex;\n });\n for (let i = 0; i < flexColumns.length; i += 1) {\n const column = flexColumns[i];\n if (flexColumnsLookup.all[column.field] && flexColumnsLookup.all[column.field].frozen === true) {\n continue;\n }\n\n // 5c: Distribute remaining free space proportional to the flex factors\n const widthPerFlexUnit = remainingFreeSpace / flexUnits;\n let computedWidth = widthPerFlexUnit * column.flex;\n\n // 5d: Fix min/max violations\n if (computedWidth < column.minWidth) {\n totalViolation += column.minWidth - computedWidth;\n computedWidth = column.minWidth;\n violationsLookup.min[column.field] = true;\n } else if (computedWidth > column.maxWidth) {\n totalViolation += column.maxWidth - computedWidth;\n computedWidth = column.maxWidth;\n violationsLookup.max[column.field] = true;\n }\n flexColumnsLookup.all[column.field] = {\n frozen: false,\n computedWidth,\n flex: column.flex\n };\n }\n\n // 5e: Freeze over-flexed items\n if (totalViolation < 0) {\n // Freeze all the items with max violations\n Object.keys(violationsLookup.max).forEach(field => {\n flexColumnsLookup.freeze(field);\n });\n } else if (totalViolation > 0) {\n // Freeze all the items with min violations\n Object.keys(violationsLookup.min).forEach(field => {\n flexColumnsLookup.freeze(field);\n });\n } else {\n // Freeze all items\n flexColumns.forEach(({\n field\n }) => {\n flexColumnsLookup.freeze(field);\n });\n }\n\n // 5f: Return to the start of this loop\n loopOverFlexItems();\n }\n loopOverFlexItems();\n return flexColumnsLookup.all;\n}\n\n/**\n * Compute the `computedWidth` (ie: the width the column should have during rendering) based on the `width` / `flex` / `minWidth` / `maxWidth` properties of `GridColDef`.\n * The columns already have been merged with there `type` default values for `minWidth`, `maxWidth` and `width`, thus the `!` for those properties below.\n * TODO: Unit test this function in depth and only keep basic cases for the whole grid testing.\n * TODO: Improve the `GridColDef` typing to reflect the fact that `minWidth` / `maxWidth` and `width` can't be null after the merge with the `type` default values.\n */\nexport const hydrateColumnsWidth = (rawState, dimensions) => {\n const columnsLookup = {};\n let totalFlexUnits = 0;\n let widthAllocatedBeforeFlex = 0;\n const flexColumns = [];\n\n // For the non-flex columns, compute their width\n // For the flex columns, compute their minimum width and how much width must be allocated during the flex allocation\n rawState.orderedFields.forEach(columnField => {\n let column = rawState.lookup[columnField];\n let computedWidth = 0;\n let isFlex = false;\n if (rawState.columnVisibilityModel[columnField] !== false) {\n if (column.flex && column.flex > 0) {\n totalFlexUnits += column.flex;\n isFlex = true;\n } else {\n computedWidth = clamp(column.width || GRID_STRING_COL_DEF.width, column.minWidth || GRID_STRING_COL_DEF.minWidth, column.maxWidth || GRID_STRING_COL_DEF.maxWidth);\n }\n widthAllocatedBeforeFlex += computedWidth;\n }\n if (column.computedWidth !== computedWidth) {\n column = _extends({}, column, {\n computedWidth\n });\n }\n if (isFlex) {\n flexColumns.push(column);\n }\n columnsLookup[columnField] = column;\n });\n const availableWidth = dimensions === undefined ? 0 : dimensions.viewportOuterSize.width - (dimensions.hasScrollY ? dimensions.scrollbarSize : 0);\n const initialFreeSpace = Math.max(availableWidth - widthAllocatedBeforeFlex, 0);\n\n // Allocate the remaining space to the flex columns\n if (totalFlexUnits > 0 && availableWidth > 0) {\n const computedColumnWidths = computeFlexColumnsWidth({\n initialFreeSpace,\n totalFlexUnits,\n flexColumns\n });\n Object.keys(computedColumnWidths).forEach(field => {\n columnsLookup[field].computedWidth = computedColumnWidths[field].computedWidth;\n });\n }\n return _extends({}, rawState, {\n lookup: columnsLookup\n });\n};\n\n/**\n * Apply the order and the dimensions of the initial state.\n * The columns not registered in `orderedFields` will be placed after the imported columns.\n */\nexport const applyInitialState = (columnsState, initialState) => {\n if (!initialState) {\n return columnsState;\n }\n const {\n orderedFields = [],\n dimensions = {}\n } = initialState;\n const columnsWithUpdatedDimensions = Object.keys(dimensions);\n if (columnsWithUpdatedDimensions.length === 0 && orderedFields.length === 0) {\n return columnsState;\n }\n const orderedFieldsLookup = {};\n const cleanOrderedFields = [];\n for (let i = 0; i < orderedFields.length; i += 1) {\n const field = orderedFields[i];\n\n // Ignores the fields in the initialState that matches no field on the current column state\n if (columnsState.lookup[field]) {\n orderedFieldsLookup[field] = true;\n cleanOrderedFields.push(field);\n }\n }\n const newOrderedFields = cleanOrderedFields.length === 0 ? columnsState.orderedFields : [...cleanOrderedFields, ...columnsState.orderedFields.filter(field => !orderedFieldsLookup[field])];\n const newColumnLookup = _extends({}, columnsState.lookup);\n for (let i = 0; i < columnsWithUpdatedDimensions.length; i += 1) {\n const field = columnsWithUpdatedDimensions[i];\n const newColDef = _extends({}, newColumnLookup[field], {\n hasBeenResized: true\n });\n Object.entries(dimensions[field]).forEach(([key, value]) => {\n newColDef[key] = value === -1 ? Infinity : value;\n });\n newColumnLookup[field] = newColDef;\n }\n const newColumnsState = _extends({}, columnsState, {\n orderedFields: newOrderedFields,\n lookup: newColumnLookup\n });\n return newColumnsState;\n};\nfunction getDefaultColTypeDef(type) {\n let colDef = COLUMN_TYPES[DEFAULT_GRID_COL_TYPE_KEY];\n if (type && COLUMN_TYPES[type]) {\n colDef = COLUMN_TYPES[type];\n }\n return colDef;\n}\nexport const createColumnsState = ({\n apiRef,\n columnsToUpsert,\n initialState,\n columnVisibilityModel = gridColumnVisibilityModelSelector(apiRef),\n keepOnlyColumnsToUpsert = false\n}) => {\n const isInsideStateInitializer = !apiRef.current.state.columns;\n let columnsState;\n if (isInsideStateInitializer) {\n columnsState = {\n orderedFields: [],\n lookup: {},\n columnVisibilityModel\n };\n } else {\n const currentState = gridColumnsStateSelector(apiRef.current.state);\n columnsState = {\n orderedFields: keepOnlyColumnsToUpsert ? [] : [...currentState.orderedFields],\n lookup: _extends({}, currentState.lookup),\n // Will be cleaned later if keepOnlyColumnsToUpsert=true\n columnVisibilityModel\n };\n }\n let columnsToKeep = {};\n if (keepOnlyColumnsToUpsert && !isInsideStateInitializer) {\n columnsToKeep = Object.keys(columnsState.lookup).reduce((acc, key) => _extends({}, acc, {\n [key]: false\n }), {});\n }\n const columnsToUpsertLookup = {};\n columnsToUpsert.forEach(newColumn => {\n const {\n field\n } = newColumn;\n columnsToUpsertLookup[field] = true;\n columnsToKeep[field] = true;\n let existingState = columnsState.lookup[field];\n if (existingState == null) {\n existingState = _extends({}, getDefaultColTypeDef(newColumn.type), {\n field,\n hasBeenResized: false\n });\n columnsState.orderedFields.push(field);\n } else if (keepOnlyColumnsToUpsert) {\n columnsState.orderedFields.push(field);\n }\n\n // If the column type has changed - merge the existing state with the default column type definition\n if (existingState && existingState.type !== newColumn.type) {\n existingState = _extends({}, getDefaultColTypeDef(newColumn.type), {\n field\n });\n }\n let hasBeenResized = existingState.hasBeenResized;\n COLUMNS_DIMENSION_PROPERTIES.forEach(key => {\n if (newColumn[key] !== undefined) {\n hasBeenResized = true;\n if (newColumn[key] === -1) {\n newColumn[key] = Infinity;\n }\n }\n });\n columnsState.lookup[field] = resolveProps(existingState, _extends({}, newColumn, {\n hasBeenResized\n }));\n });\n if (keepOnlyColumnsToUpsert && !isInsideStateInitializer) {\n Object.keys(columnsState.lookup).forEach(field => {\n if (!columnsToKeep[field]) {\n delete columnsState.lookup[field];\n }\n });\n }\n const columnsStateWithPreProcessing = apiRef.current.unstable_applyPipeProcessors('hydrateColumns', columnsState);\n const columnsStateWithPortableColumns = applyInitialState(columnsStateWithPreProcessing, initialState);\n return hydrateColumnsWidth(columnsStateWithPortableColumns, apiRef.current.getRootDimensions?.() ?? undefined);\n};\nexport function getFirstNonSpannedColumnToRender({\n firstColumnToRender,\n apiRef,\n firstRowToRender,\n lastRowToRender,\n visibleRows\n}) {\n let firstNonSpannedColumnToRender = firstColumnToRender;\n for (let i = firstRowToRender; i < lastRowToRender; i += 1) {\n const row = visibleRows[i];\n if (row) {\n const rowId = visibleRows[i].id;\n const cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, firstColumnToRender);\n if (cellColSpanInfo && cellColSpanInfo.spannedByColSpan) {\n firstNonSpannedColumnToRender = cellColSpanInfo.leftVisibleCellIndex;\n }\n }\n }\n return firstNonSpannedColumnToRender;\n}\nexport function getTotalHeaderHeight(apiRef, props) {\n if (props.unstable_listView) {\n return 0;\n }\n const densityFactor = gridDensityFactorSelector(apiRef);\n const maxDepth = gridColumnGroupsHeaderMaxDepthSelector(apiRef);\n const isHeaderFilteringEnabled = gridHeaderFilteringEnabledSelector(apiRef);\n const columnHeadersHeight = Math.floor(props.columnHeaderHeight * densityFactor);\n const columnGroupHeadersHeight = Math.floor((props.columnGroupHeaderHeight ?? props.columnHeaderHeight) * densityFactor);\n const filterHeadersHeight = isHeaderFilteringEnabled ? Math.floor((props.headerFilterHeight ?? props.columnHeaderHeight) * densityFactor) : 0;\n return columnHeadersHeight + columnGroupHeadersHeight * maxDepth + filterHeadersHeight;\n}","import { GRID_STRING_COL_DEF } from \"./gridStringColDef.js\";\nimport { GRID_NUMERIC_COL_DEF } from \"./gridNumericColDef.js\";\nimport { GRID_DATE_COL_DEF, GRID_DATETIME_COL_DEF } from \"./gridDateColDef.js\";\nimport { GRID_BOOLEAN_COL_DEF } from \"./gridBooleanColDef.js\";\nimport { GRID_SINGLE_SELECT_COL_DEF } from \"./gridSingleSelectColDef.js\";\nimport { GRID_ACTIONS_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from \"./gridActionsColDef.js\";\nexport const DEFAULT_GRID_COL_TYPE_KEY = 'string';\nexport const getGridDefaultColumnTypes = () => {\n const nativeColumnTypes = {\n string: GRID_STRING_COL_DEF,\n number: GRID_NUMERIC_COL_DEF,\n date: GRID_DATE_COL_DEF,\n dateTime: GRID_DATETIME_COL_DEF,\n boolean: GRID_BOOLEAN_COL_DEF,\n singleSelect: GRID_SINGLE_SELECT_COL_DEF,\n [GRID_ACTIONS_COLUMN_TYPE]: GRID_ACTIONS_COL_DEF,\n custom: GRID_STRING_COL_DEF\n };\n return nativeColumnTypes;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport { styled } from '@mui/system';\nimport { fastMemo } from '@mui/x-internals/fastMemo';\nimport { useGridRootProps } from \"../hooks/utils/useGridRootProps.js\";\nimport { getDataGridUtilityClass, gridClasses } from \"../constants/index.js\";\nimport { useGridApiContext } from \"../hooks/utils/useGridApiContext.js\";\nimport { useGridApiEventHandler } from \"../hooks/utils/useGridApiEventHandler.js\";\nimport { useGridSelector } from \"../hooks/utils/useGridSelector.js\";\nimport { gridDimensionsSelector } from \"../hooks/features/dimensions/gridDimensionsSelectors.js\";\nimport { gridDensityFactorSelector } from \"../hooks/features/density/densitySelector.js\";\nimport { gridColumnsTotalWidthSelector } from \"../hooks/features/columns/gridColumnsSelector.js\";\nimport { useTimeout } from \"../hooks/utils/useTimeout.js\";\nimport { getTotalHeaderHeight } from \"../hooks/features/columns/gridColumnsUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CLIFF = 1;\nconst SLOP = 1.5;\nconst useUtilityClasses = ownerState => {\n const {\n scrollDirection,\n classes\n } = ownerState;\n const slots = {\n root: ['scrollArea', `scrollArea--${scrollDirection}`]\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridScrollAreaRawRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'ScrollArea',\n overridesResolver: (props, styles) => [{\n [`&.${gridClasses['scrollArea--left']}`]: styles['scrollArea--left']\n }, {\n [`&.${gridClasses['scrollArea--right']}`]: styles['scrollArea--right']\n }, styles.scrollArea]\n})(() => ({\n position: 'absolute',\n top: 0,\n zIndex: 101,\n width: 20,\n bottom: 0,\n [`&.${gridClasses['scrollArea--left']}`]: {\n left: 0\n },\n [`&.${gridClasses['scrollArea--right']}`]: {\n right: 0\n }\n}));\nfunction GridScrollAreaRaw(props) {\n const {\n scrollDirection\n } = props;\n const rootRef = React.useRef(null);\n const apiRef = useGridApiContext();\n const timeout = useTimeout();\n const densityFactor = useGridSelector(apiRef, gridDensityFactorSelector);\n const columnsTotalWidth = useGridSelector(apiRef, gridColumnsTotalWidthSelector);\n const dimensions = useGridSelector(apiRef, gridDimensionsSelector);\n const scrollPosition = React.useRef({\n left: 0,\n top: 0\n });\n const getCanScrollMore = () => {\n if (scrollDirection === 'left') {\n // Only render if the user has not reached yet the start of the list\n return scrollPosition.current.left > 0;\n }\n if (scrollDirection === 'right') {\n // Only render if the user has not reached yet the end of the list\n const maxScrollLeft = columnsTotalWidth - dimensions.viewportInnerSize.width;\n return scrollPosition.current.left < maxScrollLeft;\n }\n return false;\n };\n const [dragging, setDragging] = React.useState(false);\n const [canScrollMore, setCanScrollMore] = React.useState(getCanScrollMore);\n const rootProps = useGridRootProps();\n const ownerState = _extends({}, rootProps, {\n scrollDirection\n });\n const classes = useUtilityClasses(ownerState);\n const totalHeaderHeight = getTotalHeaderHeight(apiRef, rootProps);\n const headerHeight = Math.floor(rootProps.columnHeaderHeight * densityFactor);\n const style = {\n height: headerHeight,\n top: totalHeaderHeight - headerHeight\n };\n if (scrollDirection === 'left') {\n style.left = dimensions.leftPinnedWidth;\n } else if (scrollDirection === 'right') {\n style.right = dimensions.rightPinnedWidth + (dimensions.hasScrollX ? dimensions.scrollbarSize : 0);\n }\n const handleScrolling = newScrollPosition => {\n scrollPosition.current = newScrollPosition;\n setCanScrollMore(getCanScrollMore);\n };\n const handleDragOver = useEventCallback(event => {\n let offset;\n\n // Prevents showing the forbidden cursor\n event.preventDefault();\n if (scrollDirection === 'left') {\n offset = event.clientX - rootRef.current.getBoundingClientRect().right;\n } else if (scrollDirection === 'right') {\n offset = Math.max(1, event.clientX - rootRef.current.getBoundingClientRect().left);\n } else {\n throw new Error('MUI X: Wrong drag direction');\n }\n offset = (offset - CLIFF) * SLOP + CLIFF;\n\n // Avoid freeze and inertia.\n timeout.start(0, () => {\n apiRef.current.scroll({\n left: scrollPosition.current.left + offset,\n top: scrollPosition.current.top\n });\n });\n });\n const handleColumnHeaderDragStart = useEventCallback(() => {\n setDragging(true);\n });\n const handleColumnHeaderDragEnd = useEventCallback(() => {\n setDragging(false);\n });\n useGridApiEventHandler(apiRef, 'scrollPositionChange', handleScrolling);\n useGridApiEventHandler(apiRef, 'columnHeaderDragStart', handleColumnHeaderDragStart);\n useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', handleColumnHeaderDragEnd);\n if (!dragging || !canScrollMore) {\n return null;\n }\n return /*#__PURE__*/_jsx(GridScrollAreaRawRoot, {\n ref: rootRef,\n className: clsx(classes.root),\n ownerState: ownerState,\n onDragOver: handleDragOver,\n style: style\n });\n}\nexport const GridScrollArea = fastMemo(GridScrollAreaRaw);","import * as React from 'react';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nconst noop = () => {};\n\n/**\n * Runs an effect once, when `condition` is true.\n */\nexport const useRunOnce = (condition, effect) => {\n const didRun = React.useRef(false);\n useEnhancedEffect(() => {\n if (didRun.current || !condition) {\n return noop;\n }\n didRun.current = true;\n return effect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [didRun.current || condition]);\n};","import { createSelector } from \"../../../utils/createSelector.js\";\nexport const gridFocusStateSelector = state => state.focus;\nexport const gridFocusCellSelector = createSelector(gridFocusStateSelector, focusState => focusState.cell);\nexport const gridFocusColumnHeaderSelector = createSelector(gridFocusStateSelector, focusState => focusState.columnHeader);\nexport const gridFocusColumnHeaderFilterSelector = createSelector(gridFocusStateSelector, focusState => focusState.columnHeaderFilter);\nexport const gridFocusColumnGroupHeaderSelector = createSelector(gridFocusStateSelector, focusState => focusState.columnGroupHeader);\nexport const gridTabIndexStateSelector = state => state.tabIndex;\nexport const gridTabIndexCellSelector = createSelector(gridTabIndexStateSelector, state => state.cell);\nexport const gridTabIndexColumnHeaderSelector = createSelector(gridTabIndexStateSelector, state => state.columnHeader);\nexport const gridTabIndexColumnHeaderFilterSelector = createSelector(gridTabIndexStateSelector, state => state.columnHeaderFilter);\nexport const gridTabIndexColumnGroupHeaderSelector = createSelector(gridTabIndexStateSelector, state => state.columnGroupHeader);","import { createSelector, createSelectorMemoized } from \"../../../utils/createSelector.js\";\nimport { gridRowTreeSelector, gridRowsLookupSelector } from \"../rows/gridRowsSelector.js\";\nimport { GRID_ID_AUTOGENERATED, isAutogeneratedRowNode } from \"../rows/gridRowsUtils.js\";\n/**\n * @category Sorting\n * @ignore - do not document.\n */\nconst gridSortingStateSelector = state => state.sorting;\n\n/**\n * Get the id of the rows after the sorting process.\n * @category Sorting\n */\nexport const gridSortedRowIdsSelector = createSelector(gridSortingStateSelector, sortingState => sortingState.sortedRows);\n\n/**\n * Get the id and the model of the rows after the sorting process.\n * @category Sorting\n */\nexport const gridSortedRowEntriesSelector = createSelectorMemoized(gridSortedRowIdsSelector, gridRowsLookupSelector, gridRowTreeSelector, (sortedIds, idRowsLookup, rowTree) => sortedIds.reduce((acc, id) => {\n const model = idRowsLookup[id];\n if (model) {\n acc.push({\n id,\n model\n });\n }\n const rowNode = rowTree[id];\n if (rowNode && isAutogeneratedRowNode(rowNode)) {\n acc.push({\n id,\n model: {\n [GRID_ID_AUTOGENERATED]: id\n }\n });\n }\n return acc;\n}, []));\n\n/**\n * Get the current sorting model.\n * @category Sorting\n */\nexport const gridSortModelSelector = createSelector(gridSortingStateSelector, sorting => sorting.sortModel);\n/**\n * @category Sorting\n * @ignore - do not document.\n */\nexport const gridSortColumnLookupSelector = createSelectorMemoized(gridSortModelSelector, sortModel => {\n const result = sortModel.reduce((res, sortItem, index) => {\n res[sortItem.field] = {\n sortDirection: sortItem.sort,\n sortIndex: sortModel.length > 1 ? index + 1 : undefined\n };\n return res;\n }, {});\n return result;\n});\n\n/**\n * @category Sorting\n * @ignore - do not document.\n */\nexport const gridSortedRowIndexLookupSelector = createSelectorMemoized(gridSortedRowIdsSelector, sortedIds => {\n return sortedIds.reduce((acc, id, index) => {\n acc[id] = index;\n return acc;\n }, Object.create(null));\n});","import { createSelector, createSelectorMemoized } from \"../../../utils/createSelector.js\";\nimport { gridSortedRowEntriesSelector } from \"../sorting/gridSortingSelector.js\";\nimport { gridColumnLookupSelector } from \"../columns/gridColumnsSelector.js\";\nimport { gridRowMaximumTreeDepthSelector, gridRowTreeSelector } from \"../rows/gridRowsSelector.js\";\n\n/**\n * @category Filtering\n */\nconst gridFilterStateSelector = state => state.filter;\n\n/**\n * Get the current filter model.\n * @category Filtering\n */\nexport const gridFilterModelSelector = createSelector(gridFilterStateSelector, filterState => filterState.filterModel);\n\n/**\n * Get the current quick filter values.\n * @category Filtering\n */\nexport const gridQuickFilterValuesSelector = createSelector(gridFilterModelSelector, filterModel => filterModel.quickFilterValues);\n\n/**\n * @category Visible rows\n * @ignore - do not document.\n */\nexport const gridVisibleRowsLookupSelector = state => state.visibleRowsLookup;\n\n/**\n * @category Filtering\n * @ignore - do not document.\n */\nexport const gridFilteredRowsLookupSelector = createSelector(gridFilterStateSelector, filterState => filterState.filteredRowsLookup);\n\n/**\n * @category Filtering\n * @ignore - do not document.\n */\nexport const gridFilteredChildrenCountLookupSelector = createSelector(gridFilterStateSelector, filterState => filterState.filteredChildrenCountLookup);\n\n/**\n * @category Filtering\n * @ignore - do not document.\n */\nexport const gridFilteredDescendantCountLookupSelector = createSelector(gridFilterStateSelector, filterState => filterState.filteredDescendantCountLookup);\n\n/**\n * Get the id and the model of the rows accessible after the filtering process.\n * Does not contain the collapsed children.\n * @category Filtering\n */\nexport const gridExpandedSortedRowEntriesSelector = createSelectorMemoized(gridVisibleRowsLookupSelector, gridSortedRowEntriesSelector, (visibleRowsLookup, sortedRows) => sortedRows.filter(row => visibleRowsLookup[row.id] !== false));\n\n/**\n * Get the id of the rows accessible after the filtering process.\n * Does not contain the collapsed children.\n * @category Filtering\n */\nexport const gridExpandedSortedRowIdsSelector = createSelectorMemoized(gridExpandedSortedRowEntriesSelector, visibleSortedRowEntries => visibleSortedRowEntries.map(row => row.id));\n\n/**\n * Get the id and the model of the rows accessible after the filtering process.\n * Contains the collapsed children.\n * @category Filtering\n */\nexport const gridFilteredSortedRowEntriesSelector = createSelectorMemoized(gridFilteredRowsLookupSelector, gridSortedRowEntriesSelector, (filteredRowsLookup, sortedRows) => sortedRows.filter(row => filteredRowsLookup[row.id] !== false));\n\n/**\n * Get the id of the rows accessible after the filtering process.\n * Contains the collapsed children.\n * @category Filtering\n */\nexport const gridFilteredSortedRowIdsSelector = createSelectorMemoized(gridFilteredSortedRowEntriesSelector, filteredSortedRowEntries => filteredSortedRowEntries.map(row => row.id));\n\n/**\n * Get the ids to position in the current tree level lookup of the rows accessible after the filtering process.\n * Does not contain the collapsed children.\n * @category Filtering\n * @ignore - do not document.\n */\nexport const gridExpandedSortedRowTreeLevelPositionLookupSelector = createSelectorMemoized(gridExpandedSortedRowIdsSelector, gridRowTreeSelector, (visibleSortedRowIds, rowTree) => {\n const depthPositionCounter = {};\n let lastDepth = 0;\n return visibleSortedRowIds.reduce((acc, rowId) => {\n const rowNode = rowTree[rowId];\n if (!depthPositionCounter[rowNode.depth]) {\n depthPositionCounter[rowNode.depth] = 0;\n }\n\n // going deeper in the tree should reset the counter\n // since it might have been used in some other branch at the same level, up in the tree\n // going back up should keep the counter and continue where it left off\n if (rowNode.depth > lastDepth) {\n depthPositionCounter[rowNode.depth] = 0;\n }\n lastDepth = rowNode.depth;\n depthPositionCounter[rowNode.depth] += 1;\n acc[rowId] = depthPositionCounter[rowNode.depth];\n return acc;\n }, {});\n});\n\n/**\n * Get the id and the model of the top level rows accessible after the filtering process.\n * @category Filtering\n */\nexport const gridFilteredSortedTopLevelRowEntriesSelector = createSelectorMemoized(gridExpandedSortedRowEntriesSelector, gridRowTreeSelector, gridRowMaximumTreeDepthSelector, (visibleSortedRows, rowTree, rowTreeDepth) => {\n if (rowTreeDepth < 2) {\n return visibleSortedRows;\n }\n return visibleSortedRows.filter(row => rowTree[row.id]?.depth === 0);\n});\n\n/**\n * Get the amount of rows accessible after the filtering process.\n * @category Filtering\n */\nexport const gridExpandedRowCountSelector = createSelector(gridExpandedSortedRowEntriesSelector, visibleSortedRows => visibleSortedRows.length);\n\n/**\n * Get the amount of top level rows accessible after the filtering process.\n * @category Filtering\n */\nexport const gridFilteredTopLevelRowCountSelector = createSelector(gridFilteredSortedTopLevelRowEntriesSelector, visibleSortedTopLevelRows => visibleSortedTopLevelRows.length);\n\n/**\n * Get the amount of rows accessible after the filtering process.\n * Includes top level and descendant rows.\n * @category Filtering\n */\nexport const gridFilteredRowCountSelector = createSelector(gridFilteredSortedRowEntriesSelector, filteredSortedRowEntries => filteredSortedRowEntries.length);\n\n/**\n * Get the amount of descendant rows accessible after the filtering process.\n * @category Filtering\n */\nexport const gridFilteredDescendantRowCountSelector = createSelector(gridFilteredRowCountSelector, gridFilteredTopLevelRowCountSelector, (totalRowCount, topLevelRowCount) => totalRowCount - topLevelRowCount);\n\n/**\n * @category Filtering\n * @ignore - do not document.\n */\nexport const gridFilterActiveItemsSelector = createSelectorMemoized(gridFilterModelSelector, gridColumnLookupSelector, (filterModel, columnLookup) => filterModel.items?.filter(item => {\n if (!item.field) {\n return false;\n }\n const column = columnLookup[item.field];\n if (!column?.filterOperators || column?.filterOperators?.length === 0) {\n return false;\n }\n const filterOperator = column.filterOperators.find(operator => operator.value === item.operator);\n if (!filterOperator) {\n return false;\n }\n return !filterOperator.InputComponent || item.value != null && item.value?.toString() !== '';\n}));\n/**\n * @category Filtering\n * @ignore - do not document.\n */\nexport const gridFilterActiveItemsLookupSelector = createSelectorMemoized(gridFilterActiveItemsSelector, activeFilters => {\n const result = activeFilters.reduce((res, filterItem) => {\n if (!res[filterItem.field]) {\n res[filterItem.field] = [filterItem];\n } else {\n res[filterItem.field].push(filterItem);\n }\n return res;\n }, {});\n return result;\n});","import { GridSignature } from \"../../utils/index.js\";\nconst MAX_PAGE_SIZE = 100;\nexport const defaultPageSize = autoPageSize => autoPageSize ? 0 : 100;\nexport const getPageCount = (rowCount, pageSize, page) => {\n if (pageSize > 0 && rowCount > 0) {\n return Math.ceil(rowCount / pageSize);\n }\n if (rowCount === -1) {\n // With unknown row-count, we can assume a page after the current one\n return page + 2;\n }\n return 0;\n};\nexport const getDefaultGridPaginationModel = autoPageSize => ({\n page: 0,\n pageSize: autoPageSize ? 0 : 100\n});\nexport const getValidPage = (page, pageCount = 0) => {\n if (pageCount === 0) {\n return page;\n }\n return Math.max(Math.min(page, pageCount - 1), 0);\n};\nexport const throwIfPageSizeExceedsTheLimit = (pageSize, signatureProp) => {\n if (signatureProp === GridSignature.DataGrid && pageSize > MAX_PAGE_SIZE) {\n throw new Error(['MUI X: `pageSize` cannot exceed 100 in the MIT version of the DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\\n'));\n }\n};","import { createSelector, createSelectorMemoized } from \"../../../utils/createSelector.js\";\nimport { gridExpandedSortedRowEntriesSelector, gridExpandedSortedRowIdsSelector, gridFilteredSortedTopLevelRowEntriesSelector } from \"../filter/gridFilterSelector.js\";\nimport { gridRowMaximumTreeDepthSelector, gridRowTreeSelector } from \"../rows/gridRowsSelector.js\";\nimport { getPageCount } from \"./gridPaginationUtils.js\";\nconst ALL_RESULTS_PAGE_VALUE = -1;\n\n/**\n * @category Pagination\n * @ignore - do not document.\n */\nexport const gridPaginationSelector = state => state.pagination;\n\n/**\n * Get the pagination model\n * @category Pagination\n */\nexport const gridPaginationModelSelector = createSelector(gridPaginationSelector, pagination => pagination.paginationModel);\n\n/**\n * Get the row count\n * @category Pagination\n */\nexport const gridPaginationRowCountSelector = createSelector(gridPaginationSelector, pagination => pagination.rowCount);\n\n/**\n * Get the pagination meta\n * @category Pagination\n */\nexport const gridPaginationMetaSelector = createSelector(gridPaginationSelector, pagination => pagination.meta);\n\n/**\n * Get the index of the page to render if the pagination is enabled\n * @category Pagination\n */\nexport const gridPageSelector = createSelector(gridPaginationModelSelector, paginationModel => paginationModel.page);\n\n/**\n * Get the maximum amount of rows to display on a single page if the pagination is enabled\n * @category Pagination\n */\nexport const gridPageSizeSelector = createSelector(gridPaginationModelSelector, paginationModel => paginationModel.pageSize);\n\n/**\n * Get the amount of pages needed to display all the rows if the pagination is enabled\n * @category Pagination\n */\nexport const gridPageCountSelector = createSelector(gridPaginationModelSelector, gridPaginationRowCountSelector, (paginationModel, rowCount) => getPageCount(rowCount, paginationModel.pageSize, paginationModel.page));\n\n/**\n * Get the index of the first and the last row to include in the current page if the pagination is enabled.\n * @category Pagination\n */\nexport const gridPaginationRowRangeSelector = createSelectorMemoized(gridPaginationModelSelector, gridRowTreeSelector, gridRowMaximumTreeDepthSelector, gridExpandedSortedRowEntriesSelector, gridFilteredSortedTopLevelRowEntriesSelector, (paginationModel, rowTree, rowTreeDepth, visibleSortedRowEntries, visibleSortedTopLevelRowEntries) => {\n const visibleTopLevelRowCount = visibleSortedTopLevelRowEntries.length;\n const topLevelFirstRowIndex = Math.min(paginationModel.pageSize * paginationModel.page, visibleTopLevelRowCount - 1);\n const topLevelLastRowIndex = paginationModel.pageSize === ALL_RESULTS_PAGE_VALUE ? visibleTopLevelRowCount - 1 : Math.min(topLevelFirstRowIndex + paginationModel.pageSize - 1, visibleTopLevelRowCount - 1);\n\n // The range contains no element\n if (topLevelFirstRowIndex === -1 || topLevelLastRowIndex === -1) {\n return null;\n }\n\n // The tree is flat, there is no need to look for children\n if (rowTreeDepth < 2) {\n return {\n firstRowIndex: topLevelFirstRowIndex,\n lastRowIndex: topLevelLastRowIndex\n };\n }\n const topLevelFirstRow = visibleSortedTopLevelRowEntries[topLevelFirstRowIndex];\n const topLevelRowsInCurrentPageCount = topLevelLastRowIndex - topLevelFirstRowIndex + 1;\n const firstRowIndex = visibleSortedRowEntries.findIndex(row => row.id === topLevelFirstRow.id);\n let lastRowIndex = firstRowIndex;\n let topLevelRowAdded = 0;\n while (lastRowIndex < visibleSortedRowEntries.length && topLevelRowAdded <= topLevelRowsInCurrentPageCount) {\n const row = visibleSortedRowEntries[lastRowIndex];\n const depth = rowTree[row.id]?.depth;\n if (depth === undefined) {\n lastRowIndex += 1;\n } else {\n if (topLevelRowAdded < topLevelRowsInCurrentPageCount || depth > 0) {\n lastRowIndex += 1;\n }\n if (depth === 0) {\n topLevelRowAdded += 1;\n }\n }\n }\n return {\n firstRowIndex,\n lastRowIndex: lastRowIndex - 1\n };\n});\n\n/**\n * Get the id and the model of each row to include in the current page if the pagination is enabled.\n * @category Pagination\n */\nexport const gridPaginatedVisibleSortedGridRowEntriesSelector = createSelectorMemoized(gridExpandedSortedRowEntriesSelector, gridPaginationRowRangeSelector, (visibleSortedRowEntries, paginationRange) => {\n if (!paginationRange) {\n return [];\n }\n return visibleSortedRowEntries.slice(paginationRange.firstRowIndex, paginationRange.lastRowIndex + 1);\n});\n\n/**\n * Get the id of each row to include in the current page if the pagination is enabled.\n * @category Pagination\n */\nexport const gridPaginatedVisibleSortedGridRowIdsSelector = createSelectorMemoized(gridExpandedSortedRowIdsSelector, gridPaginationRowRangeSelector, (visibleSortedRowIds, paginationRange) => {\n if (!paginationRange) {\n return [];\n }\n return visibleSortedRowIds.slice(paginationRange.firstRowIndex, paginationRange.lastRowIndex + 1);\n});","import * as React from 'react';\nimport { gridPaginationRowRangeSelector, gridPaginatedVisibleSortedGridRowEntriesSelector } from \"../features/pagination/gridPaginationSelector.js\";\nimport { gridExpandedSortedRowEntriesSelector } from \"../features/filter/gridFilterSelector.js\";\nexport const getVisibleRows = (apiRef, props) => {\n let rows;\n let range;\n if (props.pagination && props.paginationMode === 'client') {\n range = gridPaginationRowRangeSelector(apiRef);\n rows = gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef);\n } else {\n rows = gridExpandedSortedRowEntriesSelector(apiRef);\n if (rows.length === 0) {\n range = null;\n } else {\n range = {\n firstRowIndex: 0,\n lastRowIndex: rows.length - 1\n };\n }\n }\n return {\n rows,\n range\n };\n};\n\n/**\n * Computes the list of rows that are reachable by scroll.\n * Depending on whether pagination is enabled, it will return the rows in the current page.\n * - If the pagination is disabled or in server mode, it equals all the visible rows.\n * - If the row tree has several layers, it contains up to `state.pageSize` top level rows and all their descendants.\n * - If the row tree is flat, it only contains up to `state.pageSize` rows.\n */\nexport const useGridVisibleRows = (apiRef, props) => {\n const response = getVisibleRows(apiRef, props);\n return React.useMemo(() => ({\n rows: response.rows,\n range: response.range\n }), [response.rows, response.range]);\n};","const userAgent = typeof navigator !== 'undefined' ? navigator.userAgent.toLowerCase() : 'empty';\nexport const isFirefox = userAgent.includes('firefox');","import { createSelector, createSelectorMemoized } from \"../../../utils/createSelector.js\";\nimport { gridRowsLookupSelector } from \"../rows/gridRowsSelector.js\";\nexport const gridRowSelectionStateSelector = state => state.rowSelection;\nexport const selectedGridRowsCountSelector = createSelector(gridRowSelectionStateSelector, selection => selection.length);\nexport const selectedGridRowsSelector = createSelectorMemoized(gridRowSelectionStateSelector, gridRowsLookupSelector, (selectedRows, rowsLookup) => new Map(selectedRows.map(id => [id, rowsLookup[id]])));\nexport const selectedIdsLookupSelector = createSelectorMemoized(gridRowSelectionStateSelector, selection => selection.reduce((lookup, rowId) => {\n lookup[rowId] = rowId;\n return lookup;\n}, {}));","export const gridRowsMetaSelector = state => state.rowsMeta;","import { createSelector, createSelectorMemoized } from \"../../../utils/createSelector.js\";\n/**\n * Get the columns state\n * @category Virtualization\n */\nexport const gridVirtualizationSelector = state => state.virtualization;\n\n/**\n * Get the enabled state for virtualization\n * @category Virtualization\n * @deprecated Use `gridVirtualizationColumnEnabledSelector` and `gridVirtualizationRowEnabledSelector`\n */\nexport const gridVirtualizationEnabledSelector = createSelector(gridVirtualizationSelector, state => state.enabled);\n\n/**\n * Get the enabled state for column virtualization\n * @category Virtualization\n */\nexport const gridVirtualizationColumnEnabledSelector = createSelector(gridVirtualizationSelector, state => state.enabledForColumns);\n\n/**\n * Get the enabled state for row virtualization\n * @category Virtualization\n */\nexport const gridVirtualizationRowEnabledSelector = createSelector(gridVirtualizationSelector, state => state.enabledForRows);\n\n/**\n * Get the render context\n * @category Virtualization\n * @ignore - do not document.\n */\nexport const gridRenderContextSelector = createSelector(gridVirtualizationSelector, state => state.renderContext);\n\n/**\n * Get the render context, with only columns filled in.\n * This is cached, so it can be used to only re-render when the column interval changes.\n * @category Virtualization\n * @ignore - do not document.\n */\nexport const gridRenderContextColumnsSelector = createSelectorMemoized(state => state.virtualization.renderContext.firstColumnIndex, state => state.virtualization.renderContext.lastColumnIndex, (firstColumnIndex, lastColumnIndex) => ({\n firstColumnIndex,\n lastColumnIndex\n}));","import * as React from 'react';\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nexport function useGridApiMethod(privateApiRef, apiMethods, visibility) {\n const isFirstRender = React.useRef(true);\n useEnhancedEffect(() => {\n isFirstRender.current = false;\n privateApiRef.current.register(visibility, apiMethods);\n }, [privateApiRef, visibility, apiMethods]);\n if (isFirstRender.current) {\n privateApiRef.current.register(visibility, apiMethods);\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nexport const EMPTY_RENDER_CONTEXT = {\n firstRowIndex: 0,\n lastRowIndex: 0,\n firstColumnIndex: 0,\n lastColumnIndex: 0\n};\nexport const virtualizationStateInitializer = (state, props) => {\n const {\n disableVirtualization,\n autoHeight\n } = props;\n const virtualization = {\n enabled: !disableVirtualization,\n enabledForColumns: !disableVirtualization,\n enabledForRows: !disableVirtualization && !autoHeight,\n renderContext: EMPTY_RENDER_CONTEXT\n };\n return _extends({}, state, {\n virtualization\n });\n};\nexport function useGridVirtualization(apiRef, props) {\n /*\n * API METHODS\n */\n\n const setVirtualization = enabled => {\n apiRef.current.setState(state => _extends({}, state, {\n virtualization: _extends({}, state.virtualization, {\n enabled,\n enabledForColumns: enabled,\n enabledForRows: enabled && !props.autoHeight\n })\n }));\n };\n const setColumnVirtualization = enabled => {\n apiRef.current.setState(state => _extends({}, state, {\n virtualization: _extends({}, state.virtualization, {\n enabledForColumns: enabled\n })\n }));\n };\n const api = {\n unstable_setVirtualization: setVirtualization,\n unstable_setColumnVirtualization: setColumnVirtualization\n };\n useGridApiMethod(apiRef, api, 'public');\n\n /*\n * EFFECTS\n */\n\n /* eslint-disable react-hooks/exhaustive-deps */\n React.useEffect(() => {\n setVirtualization(!props.disableVirtualization);\n }, [props.disableVirtualization, props.autoHeight]);\n /* eslint-enable react-hooks/exhaustive-deps */\n}","import { createSelector } from \"../../../utils/createSelector.js\";\nconst gridRowSpanningStateSelector = state => state.rowSpanning;\nexport const gridRowSpanningHiddenCellsSelector = createSelector(gridRowSpanningStateSelector, rowSpanning => rowSpanning.hiddenCells);\nexport const gridRowSpanningSpannedCellsSelector = createSelector(gridRowSpanningStateSelector, rowSpanning => rowSpanning.spannedCells);\nexport const gridRowSpanningHiddenCellsOriginMapSelector = createSelector(gridRowSpanningStateSelector, rowSpanning => rowSpanning.hiddenCellOriginMap);","/**\n * Get the list column definition\n * @category List View\n * @ignore - Do not document\n */\nexport const gridListColumnSelector = state => state.listViewColumn;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { unstable_useEnhancedEffect as useEnhancedEffect, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport useLazyRef from '@mui/utils/useLazyRef';\nimport useTimeout from '@mui/utils/useTimeout';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport reactMajor from '@mui/x-internals/reactMajor';\nimport { useGridPrivateApiContext } from \"../../utils/useGridPrivateApiContext.js\";\nimport { useGridRootProps } from \"../../utils/useGridRootProps.js\";\nimport { useGridSelector } from \"../../utils/useGridSelector.js\";\nimport { useRunOnce } from \"../../utils/useRunOnce.js\";\nimport { gridVisibleColumnDefinitionsSelector, gridVisiblePinnedColumnDefinitionsSelector, gridColumnPositionsSelector, gridHasColSpanSelector } from \"../columns/gridColumnsSelector.js\";\nimport { gridDimensionsSelector } from \"../dimensions/gridDimensionsSelectors.js\";\nimport { gridPinnedRowsSelector } from \"../rows/gridRowsSelector.js\";\nimport { gridFocusCellSelector, gridTabIndexCellSelector } from \"../focus/gridFocusStateSelector.js\";\nimport { useGridVisibleRows, getVisibleRows } from \"../../utils/useGridVisibleRows.js\";\nimport { useGridApiEventHandler } from \"../../utils/index.js\";\nimport * as platform from \"../../../utils/platform.js\";\nimport { clamp, range } from \"../../../utils/utils.js\";\nimport { selectedIdsLookupSelector } from \"../rowSelection/gridRowSelectionSelector.js\";\nimport { gridRowsMetaSelector } from \"../rows/gridRowsMetaSelector.js\";\nimport { getFirstNonSpannedColumnToRender } from \"../columns/gridColumnsUtils.js\";\nimport { gridRenderContextSelector, gridVirtualizationRowEnabledSelector, gridVirtualizationColumnEnabledSelector } from \"./gridVirtualizationSelectors.js\";\nimport { EMPTY_RENDER_CONTEXT } from \"./useGridVirtualization.js\";\nimport { gridRowSpanningHiddenCellsOriginMapSelector } from \"../rows/gridRowSpanningSelectors.js\";\nimport { gridListColumnSelector } from \"../listView/gridListViewSelectors.js\";\nimport { minimalContentHeight } from \"../rows/gridRowsUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst MINIMUM_COLUMN_WIDTH = 50;\nvar ScrollDirection = /*#__PURE__*/function (ScrollDirection) {\n ScrollDirection[ScrollDirection[\"NONE\"] = 0] = \"NONE\";\n ScrollDirection[ScrollDirection[\"UP\"] = 1] = \"UP\";\n ScrollDirection[ScrollDirection[\"DOWN\"] = 2] = \"DOWN\";\n ScrollDirection[ScrollDirection[\"LEFT\"] = 3] = \"LEFT\";\n ScrollDirection[ScrollDirection[\"RIGHT\"] = 4] = \"RIGHT\";\n return ScrollDirection;\n}(ScrollDirection || {});\nconst EMPTY_SCROLL_POSITION = {\n top: 0,\n left: 0\n};\nexport const EMPTY_DETAIL_PANELS = Object.freeze(new Map());\nconst createScrollCache = (isRtl, rowBufferPx, columnBufferPx, verticalBuffer, horizontalBuffer) => ({\n direction: ScrollDirection.NONE,\n buffer: bufferForDirection(isRtl, ScrollDirection.NONE, rowBufferPx, columnBufferPx, verticalBuffer, horizontalBuffer)\n});\nlet isJSDOM = false;\ntry {\n if (typeof window !== 'undefined') {\n isJSDOM = /jsdom|HappyDOM/.test(window.navigator.userAgent);\n }\n} catch (_) {\n /* ignore */\n}\nexport const useGridVirtualScroller = () => {\n const apiRef = useGridPrivateApiContext();\n const rootProps = useGridRootProps();\n const {\n unstable_listView: listView\n } = rootProps;\n const visibleColumns = useGridSelector(apiRef, () => listView ? [gridListColumnSelector(apiRef.current.state)] : gridVisibleColumnDefinitionsSelector(apiRef));\n const enabledForRows = useGridSelector(apiRef, gridVirtualizationRowEnabledSelector) && !isJSDOM;\n const enabledForColumns = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector) && !isJSDOM;\n const dimensions = useGridSelector(apiRef, gridDimensionsSelector);\n const outerSize = dimensions.viewportOuterSize;\n const pinnedRows = useGridSelector(apiRef, gridPinnedRowsSelector);\n const pinnedColumnDefinitions = useGridSelector(apiRef, gridVisiblePinnedColumnDefinitionsSelector);\n const pinnedColumns = listView ? {\n left: [],\n right: []\n } : pinnedColumnDefinitions;\n const hasBottomPinnedRows = pinnedRows.bottom.length > 0;\n const [panels, setPanels] = React.useState(EMPTY_DETAIL_PANELS);\n const isRtl = useRtl();\n const cellFocus = useGridSelector(apiRef, gridFocusCellSelector);\n const cellTabIndex = useGridSelector(apiRef, gridTabIndexCellSelector);\n const rowsMeta = useGridSelector(apiRef, gridRowsMetaSelector);\n const selectedRowsLookup = useGridSelector(apiRef, selectedIdsLookupSelector);\n const currentPage = useGridVisibleRows(apiRef, rootProps);\n const gridRootRef = apiRef.current.rootElementRef;\n const mainRef = apiRef.current.mainElementRef;\n const scrollerRef = apiRef.current.virtualScrollerRef;\n const scrollbarVerticalRef = apiRef.current.virtualScrollbarVerticalRef;\n const scrollbarHorizontalRef = apiRef.current.virtualScrollbarHorizontalRef;\n const contentHeight = dimensions.contentSize.height;\n const columnsTotalWidth = dimensions.columnsTotalWidth;\n const hasColSpan = useGridSelector(apiRef, gridHasColSpanSelector);\n const previousSize = React.useRef(null);\n const mainRefCallback = React.useCallback(node => {\n mainRef.current = node;\n if (!node) {\n return undefined;\n }\n const initialRect = node.getBoundingClientRect();\n let lastSize = roundDimensions(initialRect);\n if (!previousSize.current || lastSize.width !== previousSize.current.width && lastSize.height !== previousSize.current.height) {\n previousSize.current = lastSize;\n apiRef.current.publishEvent('resize', lastSize);\n }\n if (typeof ResizeObserver === 'undefined') {\n return undefined;\n }\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n if (!entry) {\n return;\n }\n const newSize = roundDimensions(entry.contentRect);\n if (newSize.width === lastSize.width && newSize.height === lastSize.height) {\n return;\n }\n apiRef.current.publishEvent('resize', newSize);\n lastSize = newSize;\n });\n observer.observe(node);\n if (reactMajor >= 19) {\n return () => {\n mainRef.current = null;\n observer.disconnect();\n };\n }\n return undefined;\n }, [apiRef, mainRef]);\n\n /*\n * Scroll context logic\n * ====================\n * We only render the cells contained in the `renderContext`. However, when the user starts scrolling the grid\n * in a direction, we want to render as many cells as possible in that direction, as to avoid presenting white\n * areas if the user scrolls too fast/far and the viewport ends up in a region we haven't rendered yet. To render\n * more cells, we store some offsets to add to the viewport in `scrollCache.buffer`. Those offsets make the render\n * context wider in the direction the user is going, but also makes the buffer around the viewport `0` for the\n * dimension (horizontal or vertical) in which the user is not scrolling. So if the normal viewport is 8 columns\n * wide, with a 1 column buffer (10 columns total), then we want it to be exactly 8 columns wide during vertical\n * scroll.\n * However, we don't want the rows in the old context to re-render from e.g. 10 columns to 8 columns, because that's\n * work that's not necessary. Thus we store the context at the start of the scroll in `frozenContext`, and the rows\n * that are part of this old context will keep their same render context as to avoid re-rendering.\n */\n const scrollPosition = React.useRef(EMPTY_SCROLL_POSITION);\n const previousContextScrollPosition = React.useRef(EMPTY_SCROLL_POSITION);\n const previousRowContext = React.useRef(EMPTY_RENDER_CONTEXT);\n const renderContext = useGridSelector(apiRef, gridRenderContextSelector);\n const scrollTimeout = useTimeout();\n const frozenContext = React.useRef(undefined);\n const scrollCache = useLazyRef(() => createScrollCache(isRtl, rootProps.rowBufferPx, rootProps.columnBufferPx, dimensions.rowHeight * 15, MINIMUM_COLUMN_WIDTH * 6)).current;\n const focusedCell = {\n rowIndex: React.useMemo(() => cellFocus ? currentPage.rows.findIndex(row => row.id === cellFocus.id) : -1, [cellFocus, currentPage.rows]),\n columnIndex: React.useMemo(() => cellFocus ? visibleColumns.findIndex(column => column.field === cellFocus.field) : -1, [cellFocus, visibleColumns])\n };\n const updateRenderContext = React.useCallback(nextRenderContext => {\n if (areRenderContextsEqual(nextRenderContext, apiRef.current.state.virtualization.renderContext)) {\n return;\n }\n const didRowsIntervalChange = nextRenderContext.firstRowIndex !== previousRowContext.current.firstRowIndex || nextRenderContext.lastRowIndex !== previousRowContext.current.lastRowIndex;\n apiRef.current.setState(state => {\n return _extends({}, state, {\n virtualization: _extends({}, state.virtualization, {\n renderContext: nextRenderContext\n })\n });\n });\n\n // The lazy-loading hook is listening to `renderedRowsIntervalChange`,\n // but only does something if the dimensions are also available.\n // So we wait until we have valid dimensions before publishing the first event.\n if (dimensions.isReady && didRowsIntervalChange) {\n previousRowContext.current = nextRenderContext;\n apiRef.current.publishEvent('renderedRowsIntervalChange', nextRenderContext);\n }\n previousContextScrollPosition.current = scrollPosition.current;\n }, [apiRef, dimensions.isReady]);\n const triggerUpdateRenderContext = useEventCallback(() => {\n const scroller = scrollerRef.current;\n if (!scroller) {\n return undefined;\n }\n const newScroll = {\n top: scroller.scrollTop,\n left: scroller.scrollLeft\n };\n const dx = newScroll.left - scrollPosition.current.left;\n const dy = newScroll.top - scrollPosition.current.top;\n const isScrolling = dx !== 0 || dy !== 0;\n scrollPosition.current = newScroll;\n const direction = isScrolling ? directionForDelta(dx, dy) : ScrollDirection.NONE;\n\n // Since previous render, we have scrolled...\n const rowScroll = Math.abs(scrollPosition.current.top - previousContextScrollPosition.current.top);\n const columnScroll = Math.abs(scrollPosition.current.left - previousContextScrollPosition.current.left);\n\n // PERF: use the computed minimum column width instead of a static one\n const didCrossThreshold = rowScroll >= dimensions.rowHeight || columnScroll >= MINIMUM_COLUMN_WIDTH;\n const didChangeDirection = scrollCache.direction !== direction;\n const shouldUpdate = didCrossThreshold || didChangeDirection;\n if (!shouldUpdate) {\n return renderContext;\n }\n\n // Render a new context\n\n if (didChangeDirection) {\n switch (direction) {\n case ScrollDirection.NONE:\n case ScrollDirection.LEFT:\n case ScrollDirection.RIGHT:\n frozenContext.current = undefined;\n break;\n default:\n frozenContext.current = renderContext;\n break;\n }\n }\n scrollCache.direction = direction;\n scrollCache.buffer = bufferForDirection(isRtl, direction, rootProps.rowBufferPx, rootProps.columnBufferPx, dimensions.rowHeight * 15, MINIMUM_COLUMN_WIDTH * 6);\n const inputs = inputsSelector(apiRef, rootProps, enabledForRows, enabledForColumns);\n const nextRenderContext = computeRenderContext(inputs, scrollPosition.current, scrollCache);\n\n // Prevents batching render context changes\n ReactDOM.flushSync(() => {\n updateRenderContext(nextRenderContext);\n });\n scrollTimeout.start(1000, triggerUpdateRenderContext);\n return nextRenderContext;\n });\n const forceUpdateRenderContext = () => {\n const inputs = inputsSelector(apiRef, rootProps, enabledForRows, enabledForColumns);\n const nextRenderContext = computeRenderContext(inputs, scrollPosition.current, scrollCache);\n // Reset the frozen context when the render context changes, see the illustration in https://github.com/mui/mui-x/pull/12353\n frozenContext.current = undefined;\n updateRenderContext(nextRenderContext);\n };\n const handleScroll = useEventCallback(event => {\n const {\n scrollTop,\n scrollLeft\n } = event.currentTarget;\n\n // On iOS and macOS, negative offsets are possible when swiping past the start\n if (scrollTop < 0) {\n return;\n }\n if (!isRtl) {\n if (scrollLeft < 0) {\n return;\n }\n }\n if (isRtl) {\n if (scrollLeft > 0) {\n return;\n }\n }\n const nextRenderContext = triggerUpdateRenderContext();\n apiRef.current.publishEvent('scrollPositionChange', {\n top: scrollTop,\n left: scrollLeft,\n renderContext: nextRenderContext\n });\n });\n const handleWheel = useEventCallback(event => {\n apiRef.current.publishEvent('virtualScrollerWheel', {}, event);\n });\n const handleTouchMove = useEventCallback(event => {\n apiRef.current.publishEvent('virtualScrollerTouchMove', {}, event);\n });\n const getRows = (params = {}) => {\n if (!params.rows && !currentPage.range) {\n return [];\n }\n const baseRenderContext = params.renderContext ?? renderContext;\n const isLastSection = !hasBottomPinnedRows && params.position === undefined || hasBottomPinnedRows && params.position === 'bottom';\n const isPinnedSection = params.position !== undefined;\n let rowIndexOffset;\n // FIXME: Why is the switch check exhaustiveness not validated with typescript-eslint?\n // eslint-disable-next-line default-case\n switch (params.position) {\n case 'top':\n rowIndexOffset = 0;\n break;\n case 'bottom':\n rowIndexOffset = pinnedRows.top.length + currentPage.rows.length;\n break;\n case undefined:\n rowIndexOffset = pinnedRows.top.length;\n break;\n }\n const rowModels = params.rows ?? currentPage.rows;\n const firstRowToRender = baseRenderContext.firstRowIndex;\n const lastRowToRender = Math.min(baseRenderContext.lastRowIndex, rowModels.length);\n const rowIndexes = params.rows ? range(0, params.rows.length) : range(firstRowToRender, lastRowToRender);\n let virtualRowIndex = -1;\n if (!isPinnedSection && focusedCell.rowIndex !== -1) {\n if (focusedCell.rowIndex < firstRowToRender) {\n virtualRowIndex = focusedCell.rowIndex;\n rowIndexes.unshift(virtualRowIndex);\n }\n if (focusedCell.rowIndex >= lastRowToRender) {\n virtualRowIndex = focusedCell.rowIndex;\n rowIndexes.push(virtualRowIndex);\n }\n }\n const rows = [];\n const rowProps = rootProps.slotProps?.row;\n const columnPositions = gridColumnPositionsSelector(apiRef);\n rowIndexes.forEach(rowIndexInPage => {\n const {\n id,\n model\n } = rowModels[rowIndexInPage];\n const rowIndex = (currentPage?.range?.firstRowIndex || 0) + rowIndexOffset + rowIndexInPage;\n\n // NOTE: This is an expensive feature, the colSpan code could be optimized.\n if (hasColSpan) {\n const minFirstColumn = pinnedColumns.left.length;\n const maxLastColumn = visibleColumns.length - pinnedColumns.right.length;\n apiRef.current.calculateColSpan({\n rowId: id,\n minFirstColumn,\n maxLastColumn,\n columns: visibleColumns\n });\n if (pinnedColumns.left.length > 0) {\n apiRef.current.calculateColSpan({\n rowId: id,\n minFirstColumn: 0,\n maxLastColumn: pinnedColumns.left.length,\n columns: visibleColumns\n });\n }\n if (pinnedColumns.right.length > 0) {\n apiRef.current.calculateColSpan({\n rowId: id,\n minFirstColumn: visibleColumns.length - pinnedColumns.right.length,\n maxLastColumn: visibleColumns.length,\n columns: visibleColumns\n });\n }\n }\n const hasFocus = cellFocus?.id === id;\n const baseRowHeight = !apiRef.current.rowHasAutoHeight(id) ? apiRef.current.unstable_getRowHeight(id) : 'auto';\n let isSelected;\n if (selectedRowsLookup[id] == null) {\n isSelected = false;\n } else {\n isSelected = apiRef.current.isRowSelectable(id);\n }\n let isFirstVisible = false;\n if (params.position === undefined) {\n isFirstVisible = rowIndexInPage === 0;\n }\n let isLastVisible = false;\n const isLastVisibleInSection = rowIndexInPage === rowModels.length - 1;\n if (isLastSection) {\n if (!isPinnedSection) {\n const lastIndex = currentPage.rows.length - 1;\n const isLastVisibleRowIndex = rowIndexInPage === lastIndex;\n if (isLastVisibleRowIndex) {\n isLastVisible = true;\n }\n } else {\n isLastVisible = isLastVisibleInSection;\n }\n }\n const isVirtualRow = rowIndexInPage === virtualRowIndex;\n const isNotVisible = isVirtualRow;\n let tabbableCell = null;\n if (cellTabIndex !== null && cellTabIndex.id === id) {\n const cellParams = apiRef.current.getCellParams(id, cellTabIndex.field);\n tabbableCell = cellParams.cellMode === 'view' ? cellTabIndex.field : null;\n }\n let currentRenderContext = baseRenderContext;\n if (!isPinnedSection && frozenContext.current && rowIndexInPage >= frozenContext.current.firstRowIndex && rowIndexInPage < frozenContext.current.lastRowIndex) {\n currentRenderContext = frozenContext.current;\n }\n const offsetLeft = computeOffsetLeft(columnPositions, currentRenderContext, pinnedColumns.left.length);\n const showBottomBorder = isLastVisibleInSection && params.position === 'top';\n rows.push(/*#__PURE__*/_jsx(rootProps.slots.row, _extends({\n row: model,\n rowId: id,\n index: rowIndex,\n selected: isSelected,\n offsetTop: params.rows ? undefined : rowsMeta.positions[rowIndexInPage],\n offsetLeft: offsetLeft,\n dimensions: dimensions,\n rowHeight: baseRowHeight,\n tabbableCell: tabbableCell,\n pinnedColumns: pinnedColumns,\n visibleColumns: visibleColumns,\n renderContext: currentRenderContext,\n focusedColumnIndex: hasFocus ? focusedCell.columnIndex : undefined,\n isFirstVisible: isFirstVisible,\n isLastVisible: isLastVisible,\n isNotVisible: isNotVisible,\n showBottomBorder: showBottomBorder\n }, rowProps), id));\n if (isNotVisible) {\n return;\n }\n const panel = panels.get(id);\n if (panel) {\n rows.push(panel);\n }\n if (params.position === undefined && isLastVisibleInSection) {\n rows.push(apiRef.current.getInfiniteLoadingTriggerElement?.({\n lastRowId: id\n }));\n }\n });\n return rows;\n };\n const needsHorizontalScrollbar = outerSize.width && columnsTotalWidth > outerSize.width;\n const scrollerStyle = React.useMemo(() => ({\n overflowX: !needsHorizontalScrollbar || listView ? 'hidden' : undefined,\n overflowY: rootProps.autoHeight ? 'hidden' : undefined\n }), [needsHorizontalScrollbar, rootProps.autoHeight, listView]);\n const contentSize = React.useMemo(() => {\n const size = {\n width: needsHorizontalScrollbar ? columnsTotalWidth : 'auto',\n flexBasis: contentHeight,\n flexShrink: 0\n };\n if (size.flexBasis === 0) {\n size.flexBasis = minimalContentHeight; // Give room to show the overlay when there no rows.\n }\n return size;\n }, [columnsTotalWidth, contentHeight, needsHorizontalScrollbar]);\n React.useEffect(() => {\n apiRef.current.publishEvent('virtualScrollerContentSizeChange');\n }, [apiRef, contentSize]);\n useEnhancedEffect(() => {\n // TODO a scroll reset should not be necessary\n if (enabledForColumns) {\n scrollerRef.current.scrollLeft = 0;\n }\n if (enabledForRows) {\n scrollerRef.current.scrollTop = 0;\n }\n }, [enabledForColumns, enabledForRows, gridRootRef, scrollerRef]);\n useEnhancedEffect(() => {\n if (listView) {\n scrollerRef.current.scrollLeft = 0;\n }\n }, [listView, scrollerRef]);\n useRunOnce(outerSize.width !== 0, () => {\n const inputs = inputsSelector(apiRef, rootProps, enabledForRows, enabledForColumns);\n const initialRenderContext = computeRenderContext(inputs, scrollPosition.current, scrollCache);\n updateRenderContext(initialRenderContext);\n apiRef.current.publishEvent('scrollPositionChange', {\n top: scrollPosition.current.top,\n left: scrollPosition.current.left,\n renderContext: initialRenderContext\n });\n });\n apiRef.current.register('private', {\n updateRenderContext: forceUpdateRenderContext\n });\n useGridApiEventHandler(apiRef, 'columnsChange', forceUpdateRenderContext);\n useGridApiEventHandler(apiRef, 'filteredRowsSet', forceUpdateRenderContext);\n useGridApiEventHandler(apiRef, 'rowExpansionChange', forceUpdateRenderContext);\n return {\n renderContext,\n setPanels,\n getRows,\n getContainerProps: () => ({\n ref: mainRefCallback\n }),\n getScrollerProps: () => ({\n ref: scrollerRef,\n onScroll: handleScroll,\n onWheel: handleWheel,\n onTouchMove: handleTouchMove,\n style: scrollerStyle,\n role: 'presentation',\n // `tabIndex` shouldn't be used along role=presentation, but it fixes a Firefox bug\n // https://github.com/mui/mui-x/pull/13891#discussion_r1683416024\n tabIndex: platform.isFirefox ? -1 : undefined\n }),\n getContentProps: () => ({\n style: contentSize,\n role: 'presentation'\n }),\n getRenderZoneProps: () => ({\n role: 'rowgroup'\n }),\n getScrollbarVerticalProps: () => ({\n ref: scrollbarVerticalRef,\n role: 'presentation'\n }),\n getScrollbarHorizontalProps: () => ({\n ref: scrollbarHorizontalRef,\n role: 'presentation'\n })\n };\n};\nfunction inputsSelector(apiRef, rootProps, enabledForRows, enabledForColumns) {\n const dimensions = gridDimensionsSelector(apiRef.current.state);\n const currentPage = getVisibleRows(apiRef, rootProps);\n const visibleColumns = rootProps.unstable_listView ? [gridListColumnSelector(apiRef.current.state)] : gridVisibleColumnDefinitionsSelector(apiRef);\n const hiddenCellsOriginMap = gridRowSpanningHiddenCellsOriginMapSelector(apiRef);\n const lastRowId = apiRef.current.state.rows.dataRowIds.at(-1);\n const lastColumn = visibleColumns.at(-1);\n return {\n enabledForRows,\n enabledForColumns,\n apiRef,\n autoHeight: rootProps.autoHeight,\n rowBufferPx: rootProps.rowBufferPx,\n columnBufferPx: rootProps.columnBufferPx,\n leftPinnedWidth: dimensions.leftPinnedWidth,\n columnsTotalWidth: dimensions.columnsTotalWidth,\n viewportInnerWidth: dimensions.viewportInnerSize.width,\n viewportInnerHeight: dimensions.viewportInnerSize.height,\n lastRowHeight: lastRowId !== undefined ? apiRef.current.unstable_getRowHeight(lastRowId) : 0,\n lastColumnWidth: lastColumn?.computedWidth ?? 0,\n rowsMeta: gridRowsMetaSelector(apiRef.current.state),\n columnPositions: gridColumnPositionsSelector(apiRef),\n rows: currentPage.rows,\n range: currentPage.range,\n pinnedColumns: gridVisiblePinnedColumnDefinitionsSelector(apiRef),\n visibleColumns,\n hiddenCellsOriginMap,\n listView: rootProps.unstable_listView ?? false,\n virtualizeColumnsWithAutoRowHeight: rootProps.virtualizeColumnsWithAutoRowHeight\n };\n}\nfunction computeRenderContext(inputs, scrollPosition, scrollCache) {\n const renderContext = {\n firstRowIndex: 0,\n lastRowIndex: inputs.rows.length,\n firstColumnIndex: 0,\n lastColumnIndex: inputs.visibleColumns.length\n };\n const {\n top,\n left\n } = scrollPosition;\n const realLeft = Math.abs(left) + inputs.leftPinnedWidth;\n if (inputs.enabledForRows) {\n // Clamp the value because the search may return an index out of bounds.\n // In the last index, this is not needed because Array.slice doesn't include it.\n let firstRowIndex = Math.min(getNearestIndexToRender(inputs, top, {\n atStart: true,\n lastPosition: inputs.rowsMeta.positions[inputs.rowsMeta.positions.length - 1] + inputs.lastRowHeight\n }), inputs.rowsMeta.positions.length - 1);\n\n // If any of the cells in the `firstRowIndex` is hidden due to an extended row span,\n // Make sure the row from where the rowSpan is originated is visible.\n const rowSpanHiddenCellOrigin = inputs.hiddenCellsOriginMap[firstRowIndex];\n if (rowSpanHiddenCellOrigin) {\n const minSpannedRowIndex = Math.min(...Object.values(rowSpanHiddenCellOrigin));\n firstRowIndex = Math.min(firstRowIndex, minSpannedRowIndex);\n }\n const lastRowIndex = inputs.autoHeight ? firstRowIndex + inputs.rows.length : getNearestIndexToRender(inputs, top + inputs.viewportInnerHeight);\n renderContext.firstRowIndex = firstRowIndex;\n renderContext.lastRowIndex = lastRowIndex;\n }\n if (inputs.enabledForColumns) {\n let firstColumnIndex = 0;\n let lastColumnIndex = inputs.columnPositions.length;\n let hasRowWithAutoHeight = false;\n const [firstRowToRender, lastRowToRender] = getIndexesToRender({\n firstIndex: renderContext.firstRowIndex,\n lastIndex: renderContext.lastRowIndex,\n minFirstIndex: 0,\n maxLastIndex: inputs.rows.length,\n bufferBefore: scrollCache.buffer.rowBefore,\n bufferAfter: scrollCache.buffer.rowAfter,\n positions: inputs.rowsMeta.positions,\n lastSize: inputs.lastRowHeight\n });\n if (!inputs.virtualizeColumnsWithAutoRowHeight) {\n for (let i = firstRowToRender; i < lastRowToRender && !hasRowWithAutoHeight; i += 1) {\n const row = inputs.rows[i];\n hasRowWithAutoHeight = inputs.apiRef.current.rowHasAutoHeight(row.id);\n }\n }\n if (!hasRowWithAutoHeight || inputs.virtualizeColumnsWithAutoRowHeight) {\n firstColumnIndex = binarySearch(realLeft, inputs.columnPositions, {\n atStart: true,\n lastPosition: inputs.columnsTotalWidth\n });\n lastColumnIndex = binarySearch(realLeft + inputs.viewportInnerWidth, inputs.columnPositions);\n }\n renderContext.firstColumnIndex = firstColumnIndex;\n renderContext.lastColumnIndex = lastColumnIndex;\n }\n const actualRenderContext = deriveRenderContext(inputs, renderContext, scrollCache);\n return actualRenderContext;\n}\nfunction getNearestIndexToRender(inputs, offset, options) {\n const lastMeasuredIndexRelativeToAllRows = inputs.apiRef.current.getLastMeasuredRowIndex();\n let allRowsMeasured = lastMeasuredIndexRelativeToAllRows === Infinity;\n if (inputs.range?.lastRowIndex && !allRowsMeasured) {\n // Check if all rows in this page are already measured\n allRowsMeasured = lastMeasuredIndexRelativeToAllRows >= inputs.range.lastRowIndex;\n }\n const lastMeasuredIndexRelativeToCurrentPage = clamp(lastMeasuredIndexRelativeToAllRows - (inputs.range?.firstRowIndex || 0), 0, inputs.rowsMeta.positions.length);\n if (allRowsMeasured || inputs.rowsMeta.positions[lastMeasuredIndexRelativeToCurrentPage] >= offset) {\n // If all rows were measured (when no row has \"auto\" as height) or all rows before the offset\n // were measured, then use a binary search because it's faster.\n return binarySearch(offset, inputs.rowsMeta.positions, options);\n }\n\n // Otherwise, use an exponential search.\n // If rows have \"auto\" as height, their positions will be based on estimated heights.\n // In this case, we can skip several steps until we find a position higher than the offset.\n // Inspired by https://github.com/bvaughn/react-virtualized/blob/master/source/Grid/utils/CellSizeAndPositionManager.js\n return exponentialSearch(offset, inputs.rowsMeta.positions, lastMeasuredIndexRelativeToCurrentPage, options);\n}\n\n/**\n * Accepts as input a raw render context (the area visible in the viewport) and adds\n * computes the actual render context based on pinned elements, buffer dimensions and\n * spanning.\n */\nfunction deriveRenderContext(inputs, nextRenderContext, scrollCache) {\n const [firstRowToRender, lastRowToRender] = getIndexesToRender({\n firstIndex: nextRenderContext.firstRowIndex,\n lastIndex: nextRenderContext.lastRowIndex,\n minFirstIndex: 0,\n maxLastIndex: inputs.rows.length,\n bufferBefore: scrollCache.buffer.rowBefore,\n bufferAfter: scrollCache.buffer.rowAfter,\n positions: inputs.rowsMeta.positions,\n lastSize: inputs.lastRowHeight\n });\n const [initialFirstColumnToRender, lastColumnToRender] = getIndexesToRender({\n firstIndex: nextRenderContext.firstColumnIndex,\n lastIndex: nextRenderContext.lastColumnIndex,\n minFirstIndex: inputs.pinnedColumns.left.length,\n maxLastIndex: inputs.visibleColumns.length - inputs.pinnedColumns.right.length,\n bufferBefore: scrollCache.buffer.columnBefore,\n bufferAfter: scrollCache.buffer.columnAfter,\n positions: inputs.columnPositions,\n lastSize: inputs.lastColumnWidth\n });\n const firstColumnToRender = getFirstNonSpannedColumnToRender({\n firstColumnToRender: initialFirstColumnToRender,\n apiRef: inputs.apiRef,\n firstRowToRender,\n lastRowToRender,\n visibleRows: inputs.rows\n });\n return {\n firstRowIndex: firstRowToRender,\n lastRowIndex: lastRowToRender,\n firstColumnIndex: firstColumnToRender,\n lastColumnIndex: lastColumnToRender\n };\n}\n/**\n * Use binary search to avoid looping through all possible positions.\n * The `options.atStart` provides the possibility to match for the first element that\n * intersects the screen, even if said element's start position is before `offset`. In\n * other words, we search for `offset + width`.\n */\nfunction binarySearch(offset, positions, options = undefined, sliceStart = 0, sliceEnd = positions.length) {\n if (positions.length <= 0) {\n return -1;\n }\n if (sliceStart >= sliceEnd) {\n return sliceStart;\n }\n const pivot = sliceStart + Math.floor((sliceEnd - sliceStart) / 2);\n const position = positions[pivot];\n let isBefore;\n if (options?.atStart) {\n const width = (pivot === positions.length - 1 ? options.lastPosition : positions[pivot + 1]) - position;\n isBefore = offset - width < position;\n } else {\n isBefore = offset <= position;\n }\n return isBefore ? binarySearch(offset, positions, options, sliceStart, pivot) : binarySearch(offset, positions, options, pivot + 1, sliceEnd);\n}\nfunction exponentialSearch(offset, positions, index, options = undefined) {\n let interval = 1;\n while (index < positions.length && Math.abs(positions[index]) < offset) {\n index += interval;\n interval *= 2;\n }\n return binarySearch(offset, positions, options, Math.floor(index / 2), Math.min(index, positions.length));\n}\nfunction getIndexesToRender({\n firstIndex,\n lastIndex,\n bufferBefore,\n bufferAfter,\n minFirstIndex,\n maxLastIndex,\n positions,\n lastSize\n}) {\n const firstPosition = positions[firstIndex] - bufferBefore;\n const lastPosition = positions[lastIndex] + bufferAfter;\n const firstIndexPadded = binarySearch(firstPosition, positions, {\n atStart: true,\n lastPosition: positions[positions.length - 1] + lastSize\n });\n const lastIndexPadded = binarySearch(lastPosition, positions);\n return [clamp(firstIndexPadded, minFirstIndex, maxLastIndex), clamp(lastIndexPadded, minFirstIndex, maxLastIndex)];\n}\nexport function areRenderContextsEqual(context1, context2) {\n if (context1 === context2) {\n return true;\n }\n return context1.firstRowIndex === context2.firstRowIndex && context1.lastRowIndex === context2.lastRowIndex && context1.firstColumnIndex === context2.firstColumnIndex && context1.lastColumnIndex === context2.lastColumnIndex;\n}\nexport function computeOffsetLeft(columnPositions, renderContext, pinnedLeftLength) {\n const left = (columnPositions[renderContext.firstColumnIndex] ?? 0) - (columnPositions[pinnedLeftLength] ?? 0);\n return Math.abs(left);\n}\nfunction directionForDelta(dx, dy) {\n if (dx === 0 && dy === 0) {\n return ScrollDirection.NONE;\n }\n /* eslint-disable */\n if (Math.abs(dy) >= Math.abs(dx)) {\n if (dy > 0) {\n return ScrollDirection.DOWN;\n } else {\n return ScrollDirection.UP;\n }\n } else {\n if (dx > 0) {\n return ScrollDirection.RIGHT;\n } else {\n return ScrollDirection.LEFT;\n }\n }\n /* eslint-enable */\n}\nfunction bufferForDirection(isRtl, direction, rowBufferPx, columnBufferPx, verticalBuffer, horizontalBuffer) {\n if (isRtl) {\n switch (direction) {\n case ScrollDirection.LEFT:\n direction = ScrollDirection.RIGHT;\n break;\n case ScrollDirection.RIGHT:\n direction = ScrollDirection.LEFT;\n break;\n default:\n }\n }\n switch (direction) {\n case ScrollDirection.NONE:\n return {\n rowAfter: rowBufferPx,\n rowBefore: rowBufferPx,\n columnAfter: columnBufferPx,\n columnBefore: columnBufferPx\n };\n case ScrollDirection.LEFT:\n return {\n rowAfter: 0,\n rowBefore: 0,\n columnAfter: 0,\n columnBefore: horizontalBuffer\n };\n case ScrollDirection.RIGHT:\n return {\n rowAfter: 0,\n rowBefore: 0,\n columnAfter: horizontalBuffer,\n columnBefore: 0\n };\n case ScrollDirection.UP:\n return {\n rowAfter: 0,\n rowBefore: verticalBuffer,\n columnAfter: 0,\n columnBefore: 0\n };\n case ScrollDirection.DOWN:\n return {\n rowAfter: verticalBuffer,\n rowBefore: 0,\n columnAfter: 0,\n columnBefore: 0\n };\n default:\n // eslint unable to figure out enum exhaustiveness\n throw new Error('unreachable');\n }\n}\n\n// Round to avoid issues with subpixel rendering\n// https://github.com/mui/mui-x/issues/15721\nfunction roundDimensions(dimensions) {\n return {\n width: Math.round(dimensions.width * 10) / 10,\n height: Math.round(dimensions.height * 10) / 10\n };\n}","import { useGridSelector } from \"../../utils/index.js\";\nimport { useGridApiContext } from \"../../utils/useGridApiContext.js\";\nimport { useGridRootProps } from \"../../utils/useGridRootProps.js\";\nimport { gridExpandedRowCountSelector } from \"../filter/index.js\";\nimport { gridRowCountSelector, gridRowsLoadingSelector } from \"../rows/index.js\";\nimport { gridPinnedRowsCountSelector } from \"../rows/gridRowsSelector.js\";\n/**\n * Uses the grid state to determine which overlay to display.\n * Returns the active overlay type and the active loading overlay variant.\n */\nexport const useGridOverlays = () => {\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const totalRowCount = useGridSelector(apiRef, gridRowCountSelector);\n const visibleRowCount = useGridSelector(apiRef, gridExpandedRowCountSelector);\n const pinnedRowsCount = useGridSelector(apiRef, gridPinnedRowsCountSelector);\n const noRows = totalRowCount === 0 && pinnedRowsCount === 0;\n const loading = useGridSelector(apiRef, gridRowsLoadingSelector);\n const showNoRowsOverlay = !loading && noRows;\n const showNoResultsOverlay = !loading && totalRowCount > 0 && visibleRowCount === 0;\n let overlayType = null;\n let loadingOverlayVariant = null;\n if (showNoRowsOverlay) {\n overlayType = 'noRowsOverlay';\n }\n if (showNoResultsOverlay) {\n overlayType = 'noResultsOverlay';\n }\n if (loading) {\n overlayType = 'loadingOverlay';\n loadingOverlayVariant = rootProps.slotProps?.loadingOverlay?.[noRows ? 'noRowsVariant' : 'variant'] || null;\n }\n return {\n overlayType,\n loadingOverlayVariant\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/system';\nimport composeClasses from '@mui/utils/composeClasses';\nimport clsx from 'clsx';\nimport { minimalContentHeight } from \"../../hooks/features/rows/gridRowsUtils.js\";\nimport { useGridSelector } from \"../../hooks/utils/useGridSelector.js\";\nimport { gridDimensionsSelector } from \"../../hooks/features/dimensions/index.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst GridOverlayWrapperRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'OverlayWrapper',\n shouldForwardProp: prop => prop !== 'overlayType' && prop !== 'loadingOverlayVariant',\n overridesResolver: (props, styles) => styles.overlayWrapper\n})(({\n overlayType,\n loadingOverlayVariant\n}) =>\n// Skeleton overlay should flow with the scroll container and not be sticky\nloadingOverlayVariant !== 'skeleton' ? {\n position: 'sticky',\n // To stay in place while scrolling\n top: 'var(--DataGrid-headersTotalHeight)',\n // TODO: take pinned rows into account\n left: 0,\n width: 0,\n // To stay above the content instead of shifting it down\n height: 0,\n // To stay above the content instead of shifting it down\n zIndex: overlayType === 'loadingOverlay' ? 5 // Should be above pinned columns, pinned rows, and detail panel\n : 4 // Should be above pinned columns and detail panel\n} : {});\nconst GridOverlayWrapperInner = styled('div', {\n name: 'MuiDataGrid',\n slot: 'OverlayWrapperInner',\n shouldForwardProp: prop => prop !== 'overlayType' && prop !== 'loadingOverlayVariant',\n overridesResolver: (props, styles) => styles.overlayWrapperInner\n})({});\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['overlayWrapper'],\n inner: ['overlayWrapperInner']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nfunction GridOverlayWrapper(props) {\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const dimensions = useGridSelector(apiRef, gridDimensionsSelector);\n let height = Math.max(dimensions.viewportOuterSize.height - dimensions.topContainerHeight - dimensions.bottomContainerHeight - (dimensions.hasScrollX ? dimensions.scrollbarSize : 0), 0);\n if (height === 0) {\n height = minimalContentHeight;\n }\n const classes = useUtilityClasses(_extends({}, props, {\n classes: rootProps.classes\n }));\n return /*#__PURE__*/_jsx(GridOverlayWrapperRoot, _extends({\n className: clsx(classes.root)\n }, props, {\n children: /*#__PURE__*/_jsx(GridOverlayWrapperInner, _extends({\n className: clsx(classes.inner),\n style: {\n height,\n width: dimensions.viewportOuterSize.width\n }\n }, props))\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridOverlayWrapper.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n loadingOverlayVariant: PropTypes.oneOf(['circular-progress', 'linear-progress', 'skeleton']),\n overlayType: PropTypes.oneOf(['loadingOverlay', 'noResultsOverlay', 'noRowsOverlay'])\n} : void 0;\nprocess.env.NODE_ENV !== \"production\" ? GridOverlays.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n loadingOverlayVariant: PropTypes.oneOf(['circular-progress', 'linear-progress', 'skeleton']),\n overlayType: PropTypes.oneOf(['loadingOverlay', 'noResultsOverlay', 'noRowsOverlay'])\n} : void 0;\nexport function GridOverlays(props) {\n const {\n overlayType\n } = props;\n const rootProps = useGridRootProps();\n if (!overlayType) {\n return null;\n }\n const Overlay = rootProps.slots?.[overlayType];\n const overlayProps = rootProps.slotProps?.[overlayType];\n return /*#__PURE__*/_jsx(GridOverlayWrapper, _extends({}, props, {\n children: /*#__PURE__*/_jsx(Overlay, _extends({}, overlayProps))\n }));\n}","export const gridColumnMenuSelector = state => state.columnMenu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { fastMemo } from '@mui/x-internals/fastMemo';\nimport { useGridPrivateApiContext } from \"../hooks/utils/useGridPrivateApiContext.js\";\nimport { useGridSelector } from \"../hooks/utils/useGridSelector.js\";\nimport { useGridRootProps } from \"../hooks/utils/useGridRootProps.js\";\nimport { gridColumnVisibilityModelSelector, gridVisibleColumnDefinitionsSelector } from \"../hooks/features/columns/gridColumnsSelector.js\";\nimport { gridFilterActiveItemsLookupSelector } from \"../hooks/features/filter/gridFilterSelector.js\";\nimport { gridSortColumnLookupSelector } from \"../hooks/features/sorting/gridSortingSelector.js\";\nimport { gridTabIndexColumnHeaderSelector, gridTabIndexCellSelector, gridFocusColumnHeaderSelector, gridTabIndexColumnGroupHeaderSelector, gridFocusColumnGroupHeaderSelector } from \"../hooks/features/focus/gridFocusStateSelector.js\";\nimport { gridColumnGroupsHeaderMaxDepthSelector, gridColumnGroupsHeaderStructureSelector } from \"../hooks/features/columnGrouping/gridColumnGroupsSelector.js\";\nimport { gridColumnMenuSelector } from \"../hooks/features/columnMenu/columnMenuSelector.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction GridHeaders() {\n const apiRef = useGridPrivateApiContext();\n const rootProps = useGridRootProps();\n const visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);\n const filterColumnLookup = useGridSelector(apiRef, gridFilterActiveItemsLookupSelector);\n const sortColumnLookup = useGridSelector(apiRef, gridSortColumnLookupSelector);\n const columnHeaderTabIndexState = useGridSelector(apiRef, gridTabIndexColumnHeaderSelector);\n const cellTabIndexState = useGridSelector(apiRef, gridTabIndexCellSelector);\n const columnGroupHeaderTabIndexState = useGridSelector(apiRef, gridTabIndexColumnGroupHeaderSelector);\n const columnHeaderFocus = useGridSelector(apiRef, gridFocusColumnHeaderSelector);\n const columnGroupHeaderFocus = useGridSelector(apiRef, gridFocusColumnGroupHeaderSelector);\n const headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector);\n const columnMenuState = useGridSelector(apiRef, gridColumnMenuSelector);\n const columnVisibility = useGridSelector(apiRef, gridColumnVisibilityModelSelector);\n const columnGroupsHeaderStructure = useGridSelector(apiRef, gridColumnGroupsHeaderStructureSelector);\n const hasOtherElementInTabSequence = !(columnGroupHeaderTabIndexState === null && columnHeaderTabIndexState === null && cellTabIndexState === null);\n const columnsContainerRef = apiRef.current.columnHeadersContainerRef;\n return /*#__PURE__*/_jsx(rootProps.slots.columnHeaders, _extends({\n ref: columnsContainerRef,\n visibleColumns: visibleColumns,\n filterColumnLookup: filterColumnLookup,\n sortColumnLookup: sortColumnLookup,\n columnHeaderTabIndexState: columnHeaderTabIndexState,\n columnGroupHeaderTabIndexState: columnGroupHeaderTabIndexState,\n columnHeaderFocus: columnHeaderFocus,\n columnGroupHeaderFocus: columnGroupHeaderFocus,\n headerGroupingMaxDepth: headerGroupingMaxDepth,\n columnMenuState: columnMenuState,\n columnVisibility: columnVisibility,\n columnGroupsHeaderStructure: columnGroupsHeaderStructure,\n hasOtherElementInTabSequence: hasOtherElementInTabSequence\n }, rootProps.slotProps?.columnHeaders));\n}\nconst MemoizedGridHeaders = fastMemo(GridHeaders);\nexport { MemoizedGridHeaders as GridHeaders };","import * as React from 'react';\nexport const GridConfigurationContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n GridConfigurationContext.displayName = 'GridConfigurationContext';\n}","import * as React from 'react';\nimport { GridConfigurationContext } from \"../../components/GridConfigurationContext.js\";\nexport const useGridConfiguration = () => {\n const configuration = React.useContext(GridConfigurationContext);\n if (configuration === undefined) {\n throw new Error(['MUI X: Could not find the Data Grid configuration context.', 'It looks like you rendered your component outside of a DataGrid, DataGridPro or DataGridPremium parent component.', 'This can also happen if you are bundling multiple versions of the Data Grid.'].join('\\n'));\n }\n return configuration;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { styled } from '@mui/system';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { useGridConfiguration } from \"../../hooks/utils/useGridConfiguration.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst GridPanelAnchor = styled('div')({\n position: 'absolute',\n top: `var(--DataGrid-headersTotalHeight)`,\n left: 0,\n width: 'calc(100% - (var(--DataGrid-hasScrollY) * var(--DataGrid-scrollbarSize)))'\n});\nconst Element = styled('div', {\n name: 'MuiDataGrid',\n slot: 'Main',\n overridesResolver: (props, styles) => styles.main\n})({\n flexGrow: 1,\n position: 'relative',\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column'\n});\nexport const GridMainContainer = forwardRef((props, ref) => {\n const rootProps = useGridRootProps();\n const configuration = useGridConfiguration();\n const ariaAttributes = configuration.hooks.useGridAriaAttributes();\n return /*#__PURE__*/_jsxs(Element, _extends({\n ownerState: rootProps,\n className: props.className,\n tabIndex: -1\n }, ariaAttributes, rootProps.slotProps?.main, {\n ref: ref,\n children: [/*#__PURE__*/_jsx(GridPanelAnchor, {\n role: \"presentation\",\n \"data-id\": \"gridPanelAnchor\"\n }), props.children]\n }));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/system';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { gridClasses, getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = () => {\n const slots = {\n root: ['topContainer']\n };\n return composeClasses(slots, getDataGridUtilityClass, {});\n};\nconst Element = styled('div')({\n position: 'sticky',\n zIndex: 4,\n top: 0\n});\nexport function GridTopContainer(props) {\n const classes = useUtilityClasses();\n return /*#__PURE__*/_jsx(Element, _extends({}, props, {\n className: clsx(classes.root, gridClasses['container--top']),\n role: \"presentation\"\n }));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/system';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { gridClasses, getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = () => {\n const slots = {\n root: ['bottomContainer']\n };\n return composeClasses(slots, getDataGridUtilityClass, {});\n};\nconst Element = styled('div')({\n position: 'sticky',\n zIndex: 4,\n bottom: 'calc(var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize))'\n});\nexport function GridBottomContainer(props) {\n const classes = useUtilityClasses();\n return /*#__PURE__*/_jsx(Element, _extends({}, props, {\n className: clsx(classes.root, gridClasses['container--bottom']),\n role: \"presentation\"\n }));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/system';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = (props, overflowedContent) => {\n const {\n classes\n } = props;\n const slots = {\n root: ['virtualScrollerContent', overflowedContent && 'virtualScrollerContent--overflowed']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst VirtualScrollerContentRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'VirtualScrollerContent',\n overridesResolver: (props, styles) => styles.virtualScrollerContent\n})({});\nconst GridVirtualScrollerContent = forwardRef(function GridVirtualScrollerContent(props, ref) {\n const rootProps = useGridRootProps();\n const overflowedContent = !rootProps.autoHeight && props.style?.minHeight === 'auto';\n const classes = useUtilityClasses(rootProps, overflowedContent);\n return /*#__PURE__*/_jsx(VirtualScrollerContentRoot, _extends({}, props, {\n ownerState: rootProps,\n className: clsx(classes.root, props.className),\n ref: ref\n }));\n});\nexport { GridVirtualScrollerContent };","import * as React from 'react';\nimport { styled } from '@mui/system';\nimport { fastMemo } from '@mui/x-internals/fastMemo';\nimport { useGridSelector } from \"../../hooks/utils/useGridSelector.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { gridDimensionsSelector } from \"../../hooks/features/dimensions/index.js\";\nimport { gridClasses } from \"../../constants/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst Filler = styled('div')({\n display: 'flex',\n flexDirection: 'row',\n width: 'var(--DataGrid-rowWidth)',\n boxSizing: 'border-box'\n});\nconst Pinned = styled('div')({\n position: 'sticky',\n height: '100%',\n boxSizing: 'border-box',\n borderTop: '1px solid var(--rowBorderColor)',\n backgroundColor: 'var(--DataGrid-pinnedBackground)'\n});\nconst PinnedLeft = styled(Pinned)({\n left: 0,\n borderRight: '1px solid var(--rowBorderColor)'\n});\nconst PinnedRight = styled(Pinned)({\n right: 0,\n borderLeft: '1px solid var(--rowBorderColor)'\n});\nconst Main = styled('div')({\n flexGrow: 1,\n borderTop: '1px solid var(--rowBorderColor)'\n});\nfunction GridVirtualScrollerFiller({\n rowsLength\n}) {\n const apiRef = useGridApiContext();\n const {\n viewportOuterSize,\n minimumSize,\n hasScrollX,\n hasScrollY,\n scrollbarSize,\n leftPinnedWidth,\n rightPinnedWidth\n } = useGridSelector(apiRef, gridDimensionsSelector);\n const height = hasScrollX ? scrollbarSize : 0;\n const needsLastRowBorder = viewportOuterSize.height - minimumSize.height > 0;\n if (height === 0 && !needsLastRowBorder) {\n return null;\n }\n return /*#__PURE__*/_jsxs(Filler, {\n className: gridClasses.filler,\n role: \"presentation\",\n style: {\n height,\n '--rowBorderColor': rowsLength === 0 ? 'transparent' : 'var(--DataGrid-rowBorderColor)'\n },\n children: [leftPinnedWidth > 0 && /*#__PURE__*/_jsx(PinnedLeft, {\n className: gridClasses['filler--pinnedLeft'],\n style: {\n width: leftPinnedWidth\n }\n }), /*#__PURE__*/_jsx(Main, {}), rightPinnedWidth > 0 && /*#__PURE__*/_jsx(PinnedRight, {\n className: gridClasses['filler--pinnedRight'],\n style: {\n width: rightPinnedWidth + (hasScrollY ? scrollbarSize : 0)\n }\n })]\n });\n}\nconst Memoized = fastMemo(GridVirtualScrollerFiller);\nexport { Memoized as GridVirtualScrollerFiller };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/system';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { useGridSelector } from \"../../hooks/utils/useGridSelector.js\";\nimport { gridRowsMetaSelector } from \"../../hooks/features/rows/index.js\";\nimport { gridRenderContextSelector } from \"../../hooks/features/virtualization/index.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['virtualScrollerRenderZone']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst VirtualScrollerRenderZoneRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'VirtualScrollerRenderZone',\n overridesResolver: (props, styles) => styles.virtualScrollerRenderZone\n})({\n position: 'absolute',\n display: 'flex',\n // Prevents margin collapsing when using `getRowSpacing`\n flexDirection: 'column'\n});\nconst GridVirtualScrollerRenderZone = forwardRef(function GridVirtualScrollerRenderZone(props, ref) {\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const classes = useUtilityClasses(rootProps);\n const offsetTop = useGridSelector(apiRef, () => {\n const renderContext = gridRenderContextSelector(apiRef);\n const rowsMeta = gridRowsMetaSelector(apiRef.current.state);\n return rowsMeta.positions[renderContext.firstRowIndex] ?? 0;\n });\n return /*#__PURE__*/_jsx(VirtualScrollerRenderZoneRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: rootProps,\n style: {\n transform: `translate3d(0, ${offsetTop}px, 0)`\n }\n }, other, {\n ref: ref\n }));\n});\nexport { GridVirtualScrollerRenderZone };","import * as React from 'react';\nimport { styled } from '@mui/system';\nimport { unstable_composeClasses as composeClasses, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useOnMount } from \"../../hooks/utils/useOnMount.js\";\nimport { useGridPrivateApiContext } from \"../../hooks/utils/useGridPrivateApiContext.js\";\nimport { gridDimensionsSelector, useGridSelector } from \"../../hooks/index.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = (ownerState, position) => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['scrollbar', `scrollbar--${position}`],\n content: ['scrollbarContent']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst Scrollbar = styled('div')({\n position: 'absolute',\n display: 'inline-block',\n zIndex: 6,\n // In macOS Safari and Gnome Web, scrollbars are overlaid and don't affect the layout. So we consider\n // their size to be 0px throughout all the calculations, but the floating scrollbar container does need\n // to appear and have a real size. We set it to 14px because it seems like an acceptable value and we\n // don't have a method to find the required size for scrollbars on those platforms.\n '--size': 'calc(max(var(--DataGrid-scrollbarSize), 14px))'\n});\nconst ScrollbarVertical = styled(Scrollbar)({\n width: 'var(--size)',\n height: 'calc(var(--DataGrid-hasScrollY) * (100% - var(--DataGrid-topContainerHeight) - var(--DataGrid-bottomContainerHeight) - var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize)))',\n overflowY: 'auto',\n overflowX: 'hidden',\n // Disable focus-visible style, it's a scrollbar.\n outline: 0,\n '& > div': {\n width: 'var(--size)'\n },\n top: 'var(--DataGrid-topContainerHeight)',\n right: '0px'\n});\nconst ScrollbarHorizontal = styled(Scrollbar)({\n width: '100%',\n height: 'var(--size)',\n overflowY: 'hidden',\n overflowX: 'auto',\n // Disable focus-visible style, it's a scrollbar.\n outline: 0,\n '& > div': {\n height: 'var(--size)'\n },\n bottom: '0px'\n});\nconst GridVirtualScrollbar = forwardRef(function GridVirtualScrollbar(props, ref) {\n const apiRef = useGridPrivateApiContext();\n const rootProps = useGridRootProps();\n const isLocked = React.useRef(false);\n const lastPosition = React.useRef(0);\n const scrollbarRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const classes = useUtilityClasses(rootProps, props.position);\n const dimensions = useGridSelector(apiRef, gridDimensionsSelector);\n const propertyDimension = props.position === 'vertical' ? 'height' : 'width';\n const propertyScroll = props.position === 'vertical' ? 'scrollTop' : 'scrollLeft';\n const hasScroll = props.position === 'vertical' ? dimensions.hasScrollX : dimensions.hasScrollY;\n const contentSize = dimensions.minimumSize[propertyDimension] + (hasScroll ? dimensions.scrollbarSize : 0);\n const scrollbarSize = props.position === 'vertical' ? dimensions.viewportInnerSize.height : dimensions.viewportOuterSize.width;\n const scrollbarInnerSize = scrollbarSize * (contentSize / dimensions.viewportOuterSize[propertyDimension]);\n const onScrollerScroll = useEventCallback(() => {\n const scroller = apiRef.current.virtualScrollerRef.current;\n const scrollbar = scrollbarRef.current;\n if (!scrollbar) {\n return;\n }\n if (scroller[propertyScroll] === lastPosition.current) {\n return;\n }\n lastPosition.current = scroller[propertyScroll];\n if (isLocked.current) {\n isLocked.current = false;\n return;\n }\n isLocked.current = true;\n const value = scroller[propertyScroll] / contentSize;\n scrollbar[propertyScroll] = value * scrollbarInnerSize;\n });\n const onScrollbarScroll = useEventCallback(() => {\n const scroller = apiRef.current.virtualScrollerRef.current;\n const scrollbar = scrollbarRef.current;\n if (!scrollbar) {\n return;\n }\n if (isLocked.current) {\n isLocked.current = false;\n return;\n }\n isLocked.current = true;\n const value = scrollbar[propertyScroll] / scrollbarInnerSize;\n scroller[propertyScroll] = value * contentSize;\n });\n useOnMount(() => {\n const scroller = apiRef.current.virtualScrollerRef.current;\n const scrollbar = scrollbarRef.current;\n scroller.addEventListener('scroll', onScrollerScroll, {\n capture: true\n });\n scrollbar.addEventListener('scroll', onScrollbarScroll, {\n capture: true\n });\n return () => {\n scroller.removeEventListener('scroll', onScrollerScroll, {\n capture: true\n });\n scrollbar.removeEventListener('scroll', onScrollbarScroll, {\n capture: true\n });\n };\n });\n React.useEffect(() => {\n const content = contentRef.current;\n content.style.setProperty(propertyDimension, `${scrollbarInnerSize}px`);\n }, [scrollbarInnerSize, propertyDimension]);\n const Container = props.position === 'vertical' ? ScrollbarVertical : ScrollbarHorizontal;\n return /*#__PURE__*/_jsx(Container, {\n ref: useForkRef(ref, scrollbarRef),\n className: classes.root,\n style: props.position === 'vertical' && rootProps.unstable_listView ? {\n height: '100%',\n top: 0\n } : undefined,\n tabIndex: -1,\n \"aria-hidden\": \"true\",\n children: /*#__PURE__*/_jsx(\"div\", {\n ref: contentRef,\n className: classes.content\n })\n });\n});\nexport { GridVirtualScrollbar };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { styled } from '@mui/system';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { GridScrollArea } from \"../GridScrollArea.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { useGridSelector } from \"../../hooks/utils/useGridSelector.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { gridDimensionsSelector } from \"../../hooks/features/dimensions/index.js\";\nimport { useGridVirtualScroller } from \"../../hooks/features/virtualization/useGridVirtualScroller.js\";\nimport { useGridOverlays } from \"../../hooks/features/overlays/useGridOverlays.js\";\nimport { GridOverlays as Overlays } from \"../base/GridOverlays.js\";\nimport { GridHeaders } from \"../GridHeaders.js\";\nimport { GridMainContainer as Container } from \"./GridMainContainer.js\";\nimport { GridTopContainer as TopContainer } from \"./GridTopContainer.js\";\nimport { GridBottomContainer as BottomContainer } from \"./GridBottomContainer.js\";\nimport { GridVirtualScrollerContent as Content } from \"./GridVirtualScrollerContent.js\";\nimport { GridVirtualScrollerFiller as SpaceFiller } from \"./GridVirtualScrollerFiller.js\";\nimport { GridVirtualScrollerRenderZone as RenderZone } from \"./GridVirtualScrollerRenderZone.js\";\nimport { GridVirtualScrollbar as Scrollbar } from \"./GridVirtualScrollbar.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = (ownerState, dimensions, loadingOverlayVariant) => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['main', dimensions.rightPinnedWidth > 0 && 'main--hasPinnedRight', loadingOverlayVariant === 'skeleton' && 'main--hasSkeletonLoadingOverlay'],\n scroller: ['virtualScroller', dimensions.hasScrollX && 'virtualScroller--hasScrollX']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst Scroller = styled('div', {\n name: 'MuiDataGrid',\n slot: 'VirtualScroller',\n overridesResolver: (props, styles) => styles.virtualScroller\n})({\n position: 'relative',\n height: '100%',\n flexGrow: 1,\n overflow: 'scroll',\n scrollbarWidth: 'none' /* Firefox */,\n display: 'flex',\n flexDirection: 'column',\n '&::-webkit-scrollbar': {\n display: 'none' /* Safari and Chrome */\n },\n '@media print': {\n overflow: 'hidden'\n },\n // See https://github.com/mui/mui-x/issues/10547\n zIndex: 0\n});\nfunction GridVirtualScroller(props) {\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const dimensions = useGridSelector(apiRef, gridDimensionsSelector);\n const overlaysProps = useGridOverlays();\n const classes = useUtilityClasses(rootProps, dimensions, overlaysProps.loadingOverlayVariant);\n const virtualScroller = useGridVirtualScroller();\n const {\n getContainerProps,\n getScrollerProps,\n getContentProps,\n getRenderZoneProps,\n getScrollbarVerticalProps,\n getScrollbarHorizontalProps,\n getRows\n } = virtualScroller;\n const rows = getRows();\n return /*#__PURE__*/_jsxs(Container, _extends({\n className: classes.root\n }, getContainerProps(), {\n children: [/*#__PURE__*/_jsx(GridScrollArea, {\n scrollDirection: \"left\"\n }), /*#__PURE__*/_jsx(GridScrollArea, {\n scrollDirection: \"right\"\n }), /*#__PURE__*/_jsxs(Scroller, _extends({\n className: classes.scroller\n }, getScrollerProps(), {\n ownerState: rootProps,\n children: [/*#__PURE__*/_jsxs(TopContainer, {\n children: [!rootProps.unstable_listView && /*#__PURE__*/_jsx(GridHeaders, {}), /*#__PURE__*/_jsx(rootProps.slots.pinnedRows, {\n position: \"top\",\n virtualScroller: virtualScroller\n })]\n }), /*#__PURE__*/_jsx(Overlays, _extends({}, overlaysProps)), /*#__PURE__*/_jsx(Content, _extends({}, getContentProps(), {\n children: /*#__PURE__*/_jsxs(RenderZone, _extends({}, getRenderZoneProps(), {\n children: [rows, /*#__PURE__*/_jsx(rootProps.slots.detailPanels, {\n virtualScroller: virtualScroller\n })]\n }))\n })), /*#__PURE__*/_jsx(SpaceFiller, {\n rowsLength: rows.length\n }), /*#__PURE__*/_jsx(BottomContainer, {\n children: /*#__PURE__*/_jsx(rootProps.slots.pinnedRows, {\n position: \"bottom\",\n virtualScroller: virtualScroller\n })\n })]\n })), dimensions.hasScrollY && /*#__PURE__*/_jsx(Scrollbar, _extends({\n position: \"vertical\"\n }, getScrollbarVerticalProps())), dimensions.hasScrollX && !rootProps.unstable_listView && /*#__PURE__*/_jsx(Scrollbar, _extends({\n position: \"horizontal\"\n }, getScrollbarHorizontalProps())), props.children]\n }));\n}\nexport { GridVirtualScroller };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function GridFooterPlaceholder() {\n const rootProps = useGridRootProps();\n if (rootProps.hideFooter) {\n return null;\n }\n return /*#__PURE__*/_jsx(rootProps.slots.footer, _extends({}, rootProps.slotProps?.footer /* FIXME: typing error */));\n}","import { GridSignature } from \"../../utils/useGridApiEventHandler.js\";\nimport { GRID_ROOT_GROUP_ID } from \"../rows/gridRowsUtils.js\";\nimport { gridFilteredRowsLookupSelector } from \"../filter/gridFilterSelector.js\";\nimport { gridSortedRowIdsSelector } from \"../sorting/gridSortingSelector.js\";\nimport { selectedIdsLookupSelector } from \"./gridRowSelectionSelector.js\";\nimport { gridRowTreeSelector } from \"../rows/gridRowsSelector.js\";\nimport { createSelector } from \"../../../utils/createSelector.js\";\nexport const ROW_SELECTION_PROPAGATION_DEFAULT = {\n parents: false,\n descendants: false\n};\nfunction getGridRowGroupSelectableDescendants(apiRef, groupId) {\n const rowTree = gridRowTreeSelector(apiRef);\n const sortedRowIds = gridSortedRowIdsSelector(apiRef);\n const filteredRowsLookup = gridFilteredRowsLookupSelector(apiRef);\n const groupNode = rowTree[groupId];\n if (!groupNode || groupNode.type !== 'group') {\n return [];\n }\n const descendants = [];\n const startIndex = sortedRowIds.findIndex(id => id === groupId) + 1;\n for (let index = startIndex; index < sortedRowIds.length && rowTree[sortedRowIds[index]]?.depth > groupNode.depth; index += 1) {\n const id = sortedRowIds[index];\n if (filteredRowsLookup[id] !== false && apiRef.current.isRowSelectable(id)) {\n descendants.push(id);\n }\n }\n return descendants;\n}\n\n// TODO v8: Use `createSelectorV8`\nexport function getCheckboxPropsSelector(groupId, autoSelectParents) {\n return createSelector(gridRowTreeSelector, gridSortedRowIdsSelector, gridFilteredRowsLookupSelector, selectedIdsLookupSelector, (rowTree, sortedRowIds, filteredRowsLookup, rowSelectionLookup) => {\n const groupNode = rowTree[groupId];\n if (!groupNode || groupNode.type !== 'group') {\n return {\n isIndeterminate: false,\n isChecked: rowSelectionLookup[groupId] === groupId\n };\n }\n if (rowSelectionLookup[groupId] === groupId) {\n return {\n isIndeterminate: false,\n isChecked: true\n };\n }\n let selectableDescendantsCount = 0;\n let selectedDescendantsCount = 0;\n const startIndex = sortedRowIds.findIndex(id => id === groupId) + 1;\n for (let index = startIndex; index < sortedRowIds.length && rowTree[sortedRowIds[index]]?.depth > groupNode.depth; index += 1) {\n const id = sortedRowIds[index];\n if (filteredRowsLookup[id] !== false) {\n selectableDescendantsCount += 1;\n if (rowSelectionLookup[id] !== undefined) {\n selectedDescendantsCount += 1;\n }\n }\n }\n return {\n isIndeterminate: selectedDescendantsCount > 0 && (selectedDescendantsCount < selectableDescendantsCount || rowSelectionLookup[groupId] === undefined),\n isChecked: autoSelectParents ? selectedDescendantsCount > 0 : rowSelectionLookup[groupId] === groupId\n };\n });\n}\nexport function isMultipleRowSelectionEnabled(props) {\n if (props.signature === GridSignature.DataGrid) {\n // DataGrid Community has multiple row selection enabled only if checkbox selection is enabled.\n return props.checkboxSelection && props.disableMultipleRowSelection !== true;\n }\n return !props.disableMultipleRowSelection;\n}\nconst getRowNodeParents = (tree, id) => {\n const parents = [];\n let parent = id;\n while (parent != null && parent !== GRID_ROOT_GROUP_ID) {\n const node = tree[parent];\n if (!node) {\n return parents;\n }\n parents.push(parent);\n parent = node.parent;\n }\n return parents;\n};\nconst getFilteredRowNodeSiblings = (tree, filteredRows, id) => {\n const node = tree[id];\n if (!node) {\n return [];\n }\n const parent = node.parent;\n if (parent == null) {\n return [];\n }\n const parentNode = tree[parent];\n return parentNode.children.filter(childId => childId !== id && filteredRows[childId]);\n};\nexport const findRowsToSelect = (apiRef, tree, selectedRow, autoSelectDescendants, autoSelectParents, addRow) => {\n const filteredRows = gridFilteredRowsLookupSelector(apiRef);\n const selectedIdsLookup = selectedIdsLookupSelector(apiRef);\n const selectedDescendants = new Set([]);\n if (!autoSelectDescendants && !autoSelectParents) {\n return;\n }\n if (autoSelectDescendants) {\n const rowNode = tree[selectedRow];\n if (rowNode?.type === 'group') {\n const descendants = getGridRowGroupSelectableDescendants(apiRef, selectedRow);\n descendants.forEach(rowId => {\n addRow(rowId);\n selectedDescendants.add(rowId);\n });\n }\n }\n if (autoSelectParents) {\n const checkAllDescendantsSelected = rowId => {\n if (selectedIdsLookup[rowId] !== rowId && !selectedDescendants.has(rowId)) {\n return false;\n }\n const node = tree[rowId];\n if (node?.type !== 'group') {\n return true;\n }\n return node.children.every(checkAllDescendantsSelected);\n };\n const traverseParents = rowId => {\n const siblings = getFilteredRowNodeSiblings(tree, filteredRows, rowId);\n if (siblings.length === 0 || siblings.every(checkAllDescendantsSelected)) {\n const rowNode = tree[rowId];\n const parent = rowNode.parent;\n if (parent != null && parent !== GRID_ROOT_GROUP_ID && apiRef.current.isRowSelectable(parent)) {\n addRow(parent);\n selectedDescendants.add(parent);\n traverseParents(parent);\n }\n }\n };\n traverseParents(selectedRow);\n }\n};\nexport const findRowsToDeselect = (apiRef, tree, deselectedRow, autoSelectDescendants, autoSelectParents, removeRow) => {\n const selectedIdsLookup = selectedIdsLookupSelector(apiRef);\n if (!autoSelectParents && !autoSelectDescendants) {\n return;\n }\n if (autoSelectParents) {\n const allParents = getRowNodeParents(tree, deselectedRow);\n allParents.forEach(parent => {\n const isSelected = selectedIdsLookup[parent] === parent;\n if (isSelected) {\n removeRow(parent);\n }\n });\n }\n if (autoSelectDescendants) {\n const rowNode = tree[deselectedRow];\n if (rowNode?.type === 'group') {\n const descendants = getGridRowGroupSelectableDescendants(apiRef, deselectedRow);\n descendants.forEach(descendant => {\n removeRow(descendant);\n });\n }\n }\n};","import * as React from 'react';\nimport { GridApiContext } from \"../components/GridApiContext.js\";\nimport { GridPrivateApiContext } from \"../hooks/utils/useGridPrivateApiContext.js\";\nimport { GridRootPropsContext } from \"./GridRootPropsContext.js\";\nimport { GridConfigurationContext } from \"../components/GridConfigurationContext.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function GridContextProvider({\n privateApiRef,\n configuration,\n props,\n children\n}) {\n const apiRef = React.useRef(privateApiRef.current.getPublicApi());\n return /*#__PURE__*/_jsx(GridConfigurationContext.Provider, {\n value: configuration,\n children: /*#__PURE__*/_jsx(GridRootPropsContext.Provider, {\n value: props,\n children: /*#__PURE__*/_jsx(GridPrivateApiContext.Provider, {\n value: privateApiRef,\n children: /*#__PURE__*/_jsx(GridApiContext.Provider, {\n value: apiRef,\n children: children\n })\n })\n })\n });\n}","import * as React from 'react';\nexport const useGridRefs = apiRef => {\n const rootElementRef = React.useRef(null);\n const mainElementRef = React.useRef(null);\n const virtualScrollerRef = React.useRef(null);\n const virtualScrollbarVerticalRef = React.useRef(null);\n const virtualScrollbarHorizontalRef = React.useRef(null);\n const columnHeadersContainerRef = React.useRef(null);\n apiRef.current.register('public', {\n rootElementRef\n });\n apiRef.current.register('private', {\n mainElementRef,\n virtualScrollerRef,\n virtualScrollbarVerticalRef,\n virtualScrollbarHorizontalRef,\n columnHeadersContainerRef\n });\n};","import * as React from 'react';\nimport { localStorageAvailable } from \"../../utils/utils.js\";\nimport { useGridApiMethod } from \"../utils/index.js\";\nconst forceDebug = localStorageAvailable() && window.localStorage.getItem('DEBUG') != null;\nconst noop = () => {};\nconst noopLogger = {\n debug: noop,\n info: noop,\n warn: noop,\n error: noop\n};\nconst LOG_LEVELS = ['debug', 'info', 'warn', 'error'];\nfunction getAppender(name, logLevel, appender = console) {\n const minLogLevelIdx = LOG_LEVELS.indexOf(logLevel);\n if (minLogLevelIdx === -1) {\n throw new Error(`MUI X: Log level ${logLevel} not recognized.`);\n }\n const logger = LOG_LEVELS.reduce((loggerObj, method, idx) => {\n if (idx >= minLogLevelIdx) {\n loggerObj[method] = (...args) => {\n const [message, ...other] = args;\n appender[method](`MUI X: ${name} - ${message}`, ...other);\n };\n } else {\n loggerObj[method] = noop;\n }\n return loggerObj;\n }, {});\n return logger;\n}\nexport const useGridLoggerFactory = (apiRef, props) => {\n const getLogger = React.useCallback(name => {\n if (forceDebug) {\n return getAppender(name, 'debug', props.logger);\n }\n if (!props.logLevel) {\n return noopLogger;\n }\n return getAppender(name, props.logLevel.toString(), props.logger);\n }, [props.logLevel, props.logger]);\n useGridApiMethod(apiRef, {\n getLogger\n }, 'private');\n};","export class Store {\n static create(value) {\n return new Store(value);\n }\n constructor(_value) {\n this.value = void 0;\n this.listeners = void 0;\n this.subscribe = fn => {\n this.listeners.add(fn);\n return () => {\n this.listeners.delete(fn);\n };\n };\n this.getSnapshot = () => {\n return this.value;\n };\n this.update = value => {\n this.value = value;\n this.listeners.forEach(l => l(value));\n };\n this.value = _value;\n this.listeners = new Set();\n }\n}","import * as React from 'react';\nimport { EventManager } from '@mui/x-internals/EventManager';\nimport { Store } from \"../../utils/Store.js\";\nimport { useGridApiMethod } from \"../utils/useGridApiMethod.js\";\nimport { GridSignature } from \"../utils/useGridApiEventHandler.js\";\nconst SYMBOL_API_PRIVATE = Symbol('mui.api_private');\nconst isSyntheticEvent = event => {\n return event.isPropagationStopped !== undefined;\n};\nexport function unwrapPrivateAPI(publicApi) {\n return publicApi[SYMBOL_API_PRIVATE];\n}\nlet globalId = 0;\nfunction createPrivateAPI(publicApiRef) {\n const existingPrivateApi = publicApiRef.current?.[SYMBOL_API_PRIVATE];\n if (existingPrivateApi) {\n return existingPrivateApi;\n }\n const state = {};\n const privateApi = {\n state,\n store: Store.create(state),\n instanceId: {\n id: globalId\n }\n };\n globalId += 1;\n privateApi.getPublicApi = () => publicApiRef.current;\n privateApi.register = (visibility, methods) => {\n Object.keys(methods).forEach(methodName => {\n const method = methods[methodName];\n const currentPrivateMethod = privateApi[methodName];\n if (currentPrivateMethod?.spying === true) {\n currentPrivateMethod.target = method;\n } else {\n privateApi[methodName] = method;\n }\n if (visibility === 'public') {\n const publicApi = publicApiRef.current;\n const currentPublicMethod = publicApi[methodName];\n if (currentPublicMethod?.spying === true) {\n currentPublicMethod.target = method;\n } else {\n publicApi[methodName] = method;\n }\n }\n });\n };\n privateApi.register('private', {\n caches: {},\n eventManager: new EventManager()\n });\n return privateApi;\n}\nfunction createPublicAPI(privateApiRef) {\n const publicApi = {\n get state() {\n return privateApiRef.current.state;\n },\n get store() {\n return privateApiRef.current.store;\n },\n get instanceId() {\n return privateApiRef.current.instanceId;\n },\n [SYMBOL_API_PRIVATE]: privateApiRef.current\n };\n return publicApi;\n}\nexport function useGridApiInitialization(inputApiRef, props) {\n const publicApiRef = React.useRef(null);\n const privateApiRef = React.useRef(null);\n if (!privateApiRef.current) {\n privateApiRef.current = createPrivateAPI(publicApiRef);\n }\n if (!publicApiRef.current) {\n publicApiRef.current = createPublicAPI(privateApiRef);\n }\n const publishEvent = React.useCallback((...args) => {\n const [name, params, event = {}] = args;\n event.defaultMuiPrevented = false;\n if (isSyntheticEvent(event) && event.isPropagationStopped()) {\n return;\n }\n const details = props.signature === GridSignature.DataGridPro || props.signature === GridSignature.DataGridPremium ? {\n api: privateApiRef.current.getPublicApi()\n } : {};\n privateApiRef.current.eventManager.emit(name, params, event, details);\n }, [privateApiRef, props.signature]);\n const subscribeEvent = React.useCallback((event, handler, options) => {\n privateApiRef.current.eventManager.on(event, handler, options);\n const api = privateApiRef.current;\n return () => {\n api.eventManager.removeListener(event, handler);\n };\n }, [privateApiRef]);\n useGridApiMethod(privateApiRef, {\n subscribeEvent,\n publishEvent\n }, 'public');\n if (inputApiRef && !inputApiRef.current?.state) {\n inputApiRef.current = publicApiRef.current;\n }\n React.useImperativeHandle(inputApiRef, () => publicApiRef.current, [publicApiRef]);\n React.useEffect(() => {\n const api = privateApiRef.current;\n return () => {\n api.publishEvent('unmount');\n };\n }, [privateApiRef]);\n return privateApiRef;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _toPropertyKey from \"@babel/runtime/helpers/esm/toPropertyKey\";\nimport * as React from 'react';\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\n/**\n * Implement the Pipeline Pattern\n *\n * More information and detailed example in (TODO add link to technical doc when ready)\n *\n * Some plugins contains custom logic to enrich data provided by other plugins or components.\n * For instance, the row grouping plugin needs to add / remove the grouping columns when the grid columns are updated.\n *\n * =====================================================================================================================\n *\n * The plugin containing the custom logic must use:\n *\n * - `useGridRegisterPipeProcessor` to register their processor.\n *\n * - `apiRef.current.requestPipeProcessorsApplication` to imperatively re-apply a group.\n * This method should be used in last resort.\n * Most of the time, the application should be triggered by an update on the deps of the processor.\n *\n * =====================================================================================================================\n *\n * The plugin or component that needs to enrich its data must use:\n *\n * - `apiRef.current.unstable_applyPipeProcessors` to run in chain all the processors of a given group.\n *\n * - `useGridRegisterPipeApplier` to re-apply the whole pipe when requested.\n * The applier will be called when:\n * * a processor is registered.\n * * `apiRef.current.requestPipeProcessorsApplication` is called for the given group.\n */\nexport const useGridPipeProcessing = apiRef => {\n const cache = React.useRef({});\n const isRunning = React.useRef(false);\n const runAppliers = React.useCallback(groupCache => {\n if (isRunning.current || !groupCache) {\n return;\n }\n isRunning.current = true;\n Object.values(groupCache.appliers).forEach(callback => {\n callback();\n });\n isRunning.current = false;\n }, []);\n const registerPipeProcessor = React.useCallback((group, id, processor) => {\n if (!cache.current[group]) {\n cache.current[group] = {\n processors: new Map(),\n processorsAsArray: [],\n appliers: {}\n };\n }\n const groupCache = cache.current[group];\n const oldProcessor = groupCache.processors.get(id);\n if (oldProcessor !== processor) {\n groupCache.processors.set(id, processor);\n groupCache.processorsAsArray = Array.from(cache.current[group].processors.values());\n runAppliers(groupCache);\n }\n return () => {\n cache.current[group].processors.delete(id);\n cache.current[group].processorsAsArray = Array.from(cache.current[group].processors.values());\n };\n }, [runAppliers]);\n const registerPipeApplier = React.useCallback((group, id, applier) => {\n if (!cache.current[group]) {\n cache.current[group] = {\n processors: new Map(),\n processorsAsArray: [],\n appliers: {}\n };\n }\n cache.current[group].appliers[id] = applier;\n return () => {\n const _appliers = cache.current[group].appliers,\n otherAppliers = _objectWithoutPropertiesLoose(_appliers, [id].map(_toPropertyKey));\n cache.current[group].appliers = otherAppliers;\n };\n }, []);\n const requestPipeProcessorsApplication = React.useCallback(group => {\n runAppliers(cache.current[group]);\n }, [runAppliers]);\n const applyPipeProcessors = React.useCallback((...args) => {\n const [group, value, context] = args;\n if (!cache.current[group]) {\n return value;\n }\n const processors = cache.current[group].processorsAsArray;\n let result = value;\n for (let i = 0; i < processors.length; i += 1) {\n result = processors[i](result, context);\n }\n return result;\n }, []);\n const preProcessingPrivateApi = {\n registerPipeProcessor,\n registerPipeApplier,\n requestPipeProcessorsApplication\n };\n const preProcessingPublicApi = {\n unstable_applyPipeProcessors: applyPipeProcessors\n };\n useGridApiMethod(apiRef, preProcessingPrivateApi, 'private');\n useGridApiMethod(apiRef, preProcessingPublicApi, 'public');\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _toPropertyKey from \"@babel/runtime/helpers/esm/toPropertyKey\";\nimport * as React from 'react';\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nexport const GRID_DEFAULT_STRATEGY = 'none';\nexport const GRID_STRATEGIES_PROCESSORS = {\n rowTreeCreation: 'rowTree',\n filtering: 'rowTree',\n sorting: 'rowTree',\n visibleRowsLookupCreation: 'rowTree'\n};\n/**\n * Implements a variant of the Strategy Pattern (see https://en.wikipedia.org/wiki/Strategy_pattern)\n *\n * More information and detailed example in (TODO add link to technical doc when ready)\n *\n * Some plugins contains custom logic that must only be applied if the right strategy is active.\n * For instance, the row grouping plugin has a custom filtering algorithm.\n * This algorithm must be applied by the filtering plugin if the row grouping is the current way of grouping rows,\n * but not if the tree data is the current way of grouping rows.\n *\n * =====================================================================================================================\n *\n * The plugin containing the custom logic must use:\n *\n * - `useGridRegisterStrategyProcessor` to register their processor.\n * When the processor of the active strategy changes, it will fire `\"activeStrategyProcessorChange\"` to re-apply the processor.\n *\n * - `apiRef.current.setStrategyAvailability` to tell if their strategy can be used.\n *\n * =====================================================================================================================\n *\n * The plugin or component that needs to apply the custom logic of the current strategy must use:\n *\n * - `apiRef.current.applyStrategyProcessor` to run the processor of the active strategy for a given processor name.\n *\n * - the \"strategyAvailabilityChange\" event to update something when the active strategy changes.\n * Warning: Be careful not to apply the processor several times.\n * For instance \"rowsSet\" is fired by `useGridRows` whenever the active strategy changes.\n * So listening to both would most likely run your logic twice.\n *\n * - The \"activeStrategyProcessorChange\" event to update something when the processor of the active strategy changes.\n *\n * =====================================================================================================================\n *\n * Each processor name is part of a strategy group which can only have one active strategy at the time.\n * For now, there is only one strategy group named `rowTree` which customize\n * - row tree creation algorithm.\n * - sorting algorithm.\n * - filtering algorithm.\n */\nexport const useGridStrategyProcessing = apiRef => {\n const availableStrategies = React.useRef(new Map());\n const strategiesCache = React.useRef({});\n const registerStrategyProcessor = React.useCallback((strategyName, processorName, processor) => {\n const cleanup = () => {\n const _ref = strategiesCache.current[processorName],\n otherProcessors = _objectWithoutPropertiesLoose(_ref, [strategyName].map(_toPropertyKey));\n strategiesCache.current[processorName] = otherProcessors;\n };\n if (!strategiesCache.current[processorName]) {\n strategiesCache.current[processorName] = {};\n }\n const groupPreProcessors = strategiesCache.current[processorName];\n const previousProcessor = groupPreProcessors[strategyName];\n groupPreProcessors[strategyName] = processor;\n if (!previousProcessor || previousProcessor === processor) {\n return cleanup;\n }\n if (strategyName === apiRef.current.getActiveStrategy(GRID_STRATEGIES_PROCESSORS[processorName])) {\n apiRef.current.publishEvent('activeStrategyProcessorChange', processorName);\n }\n return cleanup;\n }, [apiRef]);\n const applyStrategyProcessor = React.useCallback((processorName, params) => {\n const activeStrategy = apiRef.current.getActiveStrategy(GRID_STRATEGIES_PROCESSORS[processorName]);\n if (activeStrategy == null) {\n throw new Error(\"Can't apply a strategy processor before defining an active strategy\");\n }\n const groupCache = strategiesCache.current[processorName];\n if (!groupCache || !groupCache[activeStrategy]) {\n throw new Error(`No processor found for processor \"${processorName}\" on strategy \"${activeStrategy}\"`);\n }\n const processor = groupCache[activeStrategy];\n return processor(params);\n }, [apiRef]);\n const getActiveStrategy = React.useCallback(strategyGroup => {\n const strategyEntries = Array.from(availableStrategies.current.entries());\n const availableStrategyEntry = strategyEntries.find(([, strategy]) => {\n if (strategy.group !== strategyGroup) {\n return false;\n }\n return strategy.isAvailable();\n });\n return availableStrategyEntry?.[0] ?? GRID_DEFAULT_STRATEGY;\n }, []);\n const setStrategyAvailability = React.useCallback((strategyGroup, strategyName, isAvailable) => {\n availableStrategies.current.set(strategyName, {\n group: strategyGroup,\n isAvailable\n });\n apiRef.current.publishEvent('strategyAvailabilityChange');\n }, [apiRef]);\n const strategyProcessingApi = {\n registerStrategyProcessor,\n applyStrategyProcessor,\n getActiveStrategy,\n setStrategyAvailability\n };\n useGridApiMethod(apiRef, strategyProcessingApi, 'private');\n};","import { useGridRefs } from \"./useGridRefs.js\";\nimport { useGridIsRtl } from \"./useGridIsRtl.js\";\nimport { useGridLoggerFactory } from \"./useGridLoggerFactory.js\";\nimport { useGridApiInitialization } from \"./useGridApiInitialization.js\";\nimport { useGridLocaleText } from \"./useGridLocaleText.js\";\nimport { useGridPipeProcessing } from \"./pipeProcessing/index.js\";\nimport { useGridStrategyProcessing } from \"./strategyProcessing/index.js\";\nimport { useGridStateInitialization } from \"./useGridStateInitialization.js\";\n\n/**\n * Initialize the technical pieces of the DataGrid (logger, state, ...) that any DataGrid implementation needs\n */\nexport const useGridInitialization = (inputApiRef, props) => {\n const privateApiRef = useGridApiInitialization(inputApiRef, props);\n useGridRefs(privateApiRef);\n useGridIsRtl(privateApiRef);\n useGridLoggerFactory(privateApiRef, props);\n useGridStateInitialization(privateApiRef);\n useGridPipeProcessing(privateApiRef);\n useGridStrategyProcessing(privateApiRef);\n useGridLocaleText(privateApiRef, props);\n privateApiRef.current.register('private', {\n rootProps: props\n });\n return privateApiRef;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useRtl } from '@mui/system/RtlProvider';\nexport const useGridIsRtl = apiRef => {\n const isRtl = useRtl();\n if (apiRef.current.state.isRtl === undefined) {\n apiRef.current.state.isRtl = isRtl;\n }\n const isFirstEffect = React.useRef(true);\n React.useEffect(() => {\n if (isFirstEffect.current) {\n isFirstEffect.current = false;\n } else {\n apiRef.current.setState(state => _extends({}, state, {\n isRtl\n }));\n }\n }, [apiRef, isRtl]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridApiMethod } from \"../utils/index.js\";\nimport { isFunction } from \"../../utils/utils.js\";\nexport const useGridStateInitialization = apiRef => {\n const controlStateMapRef = React.useRef({});\n const [, rawForceUpdate] = React.useState();\n const registerControlState = React.useCallback(controlStateItem => {\n controlStateMapRef.current[controlStateItem.stateId] = controlStateItem;\n }, []);\n const setState = React.useCallback((state, reason) => {\n let newState;\n if (isFunction(state)) {\n newState = state(apiRef.current.state);\n } else {\n newState = state;\n }\n if (apiRef.current.state === newState) {\n return false;\n }\n let ignoreSetState = false;\n\n // Apply the control state constraints\n const updatedControlStateIds = [];\n Object.keys(controlStateMapRef.current).forEach(stateId => {\n const controlState = controlStateMapRef.current[stateId];\n const oldSubState = controlState.stateSelector(apiRef.current.state, apiRef.current.instanceId);\n const newSubState = controlState.stateSelector(newState, apiRef.current.instanceId);\n if (newSubState === oldSubState) {\n return;\n }\n updatedControlStateIds.push({\n stateId: controlState.stateId,\n hasPropChanged: newSubState !== controlState.propModel\n });\n\n // The state is controlled, the prop should always win\n if (controlState.propModel !== undefined && newSubState !== controlState.propModel) {\n ignoreSetState = true;\n }\n });\n if (updatedControlStateIds.length > 1) {\n // Each hook modify its own state, and it should not leak\n // Events are here to forward to other hooks and apply changes.\n // You are trying to update several states in a no isolated way.\n throw new Error(`You're not allowed to update several sub-state in one transaction. You already updated ${updatedControlStateIds[0].stateId}, therefore, you're not allowed to update ${updatedControlStateIds.map(el => el.stateId).join(', ')} in the same transaction.`);\n }\n if (!ignoreSetState) {\n // We always assign it as we mutate rows for perf reason.\n apiRef.current.state = newState;\n apiRef.current.publishEvent('stateChange', newState);\n apiRef.current.store.update(newState);\n }\n if (updatedControlStateIds.length === 1) {\n const {\n stateId,\n hasPropChanged\n } = updatedControlStateIds[0];\n const controlState = controlStateMapRef.current[stateId];\n const model = controlState.stateSelector(newState, apiRef.current.instanceId);\n if (controlState.propOnChange && hasPropChanged) {\n controlState.propOnChange(model, {\n reason,\n api: apiRef.current\n });\n }\n if (!ignoreSetState) {\n apiRef.current.publishEvent(controlState.changeEvent, model, {\n reason\n });\n }\n }\n return !ignoreSetState;\n }, [apiRef]);\n const updateControlState = React.useCallback((key, state, reason) => {\n return apiRef.current.setState(previousState => {\n return _extends({}, previousState, {\n [key]: state(previousState[key])\n });\n }, reason);\n }, [apiRef]);\n const forceUpdate = React.useCallback(() => rawForceUpdate(() => apiRef.current.state), [apiRef]);\n const publicStateApi = {\n setState,\n forceUpdate\n };\n const privateStateApi = {\n updateControlState,\n registerControlState\n };\n useGridApiMethod(apiRef, publicStateApi, 'public');\n useGridApiMethod(apiRef, privateStateApi, 'private');\n};","import * as React from 'react';\nexport const useGridLocaleText = (apiRef, props) => {\n const getLocaleText = React.useCallback(key => {\n if (props.localeText[key] == null) {\n throw new Error(`Missing translation for key ${key}.`);\n }\n return props.localeText[key];\n }, [props.localeText]);\n apiRef.current.register('public', {\n getLocaleText\n });\n};","import * as React from 'react';\nexport const useGridInitializeState = (initializer, privateApiRef, props) => {\n const isInitialized = React.useRef(false);\n if (!isInitialized.current) {\n privateApiRef.current.state = initializer(privateApiRef.current.state, props, privateApiRef);\n isInitialized.current = true;\n }\n};","import * as React from 'react';\nexport function useGridLogger(privateApiRef, name) {\n const logger = React.useRef(null);\n if (logger.current) {\n return logger.current;\n }\n const newLogger = privateApiRef.current.getLogger(name);\n logger.current = newLogger;\n return newLogger;\n}","import * as React from 'react';\nimport { isFunction } from \"../../utils/utils.js\";\nimport { useGridLogger } from \"./useGridLogger.js\";\nexport const useGridNativeEventListener = (apiRef, ref, eventName, handler, options) => {\n const logger = useGridLogger(apiRef, 'useNativeEventListener');\n const [added, setAdded] = React.useState(false);\n const handlerRef = React.useRef(handler);\n const targetElement = isFunction(ref) ? ref() : ref?.current ?? null;\n const wrapHandler = React.useCallback(event => {\n return handlerRef.current && handlerRef.current(event);\n }, []);\n React.useEffect(() => {\n handlerRef.current = handler;\n }, [handler]);\n React.useEffect(() => {\n if (targetElement && eventName && !added) {\n logger.debug(`Binding native ${eventName} event`);\n targetElement.addEventListener(eventName, wrapHandler, options);\n setAdded(true);\n const unsubscribe = () => {\n logger.debug(`Clearing native ${eventName} event`);\n targetElement.removeEventListener(eventName, wrapHandler, options);\n };\n apiRef.current.subscribeEvent('unmount', unsubscribe);\n }\n }, [targetElement, wrapHandler, eventName, added, logger, options, apiRef]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"field\", \"id\", \"formattedValue\", \"row\", \"rowNode\", \"colDef\", \"isEditable\", \"cellMode\", \"hasFocus\", \"tabIndex\", \"api\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridSelector } from \"../../hooks/utils/useGridSelector.js\";\nimport { getCheckboxPropsSelector } from \"../../hooks/features/rowSelection/utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['checkboxInput']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridCellCheckboxForwardRef = forwardRef(function GridCellCheckboxRenderer(props, ref) {\n const {\n field,\n id,\n rowNode,\n hasFocus,\n tabIndex\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n const checkboxElement = React.useRef(null);\n const rippleRef = React.useRef(null);\n const handleRef = useForkRef(checkboxElement, ref);\n const handleChange = event => {\n const params = {\n value: event.target.checked,\n id\n };\n apiRef.current.publishEvent('rowSelectionCheckboxChange', params, event);\n };\n React.useLayoutEffect(() => {\n if (tabIndex === 0) {\n const element = apiRef.current.getCellElement(id, field);\n if (element) {\n element.tabIndex = -1;\n }\n }\n }, [apiRef, tabIndex, id, field]);\n React.useEffect(() => {\n if (hasFocus) {\n const input = checkboxElement.current?.querySelector('input');\n input?.focus({\n preventScroll: true\n });\n } else if (rippleRef.current) {\n // Only available in @mui/material v5.4.1 or later\n rippleRef.current.stop({});\n }\n }, [hasFocus]);\n const handleKeyDown = React.useCallback(event => {\n if (event.key === ' ') {\n // We call event.stopPropagation to avoid selecting the row and also scrolling to bottom\n // TODO: Remove and add a check inside useGridKeyboardNavigation\n event.stopPropagation();\n }\n }, []);\n const isSelectable = apiRef.current.isRowSelectable(id);\n const checkboxPropsSelector = getCheckboxPropsSelector(id, rootProps.rowSelectionPropagation?.parents ?? false);\n const {\n isIndeterminate,\n isChecked\n } = useGridSelector(apiRef, checkboxPropsSelector);\n if (rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {\n return null;\n }\n const checked = rootProps.indeterminateCheckboxAction === 'select' ? isChecked && !isIndeterminate : isChecked;\n const label = apiRef.current.getLocaleText(checked ? 'checkboxSelectionUnselectRow' : 'checkboxSelectionSelectRow');\n return /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({\n tabIndex: tabIndex,\n checked: checked,\n onChange: handleChange,\n className: classes.root,\n inputProps: {\n 'aria-label': label,\n name: 'select_row'\n },\n onKeyDown: handleKeyDown,\n indeterminate: isIndeterminate,\n disabled: !isSelectable,\n touchRippleRef: rippleRef /* FIXME: typing error */\n }, rootProps.slotProps?.baseCheckbox, other, {\n ref: handleRef\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridCellCheckboxForwardRef.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * GridApi that let you manipulate the grid.\n */\n api: PropTypes.object.isRequired,\n /**\n * The mode of the cell.\n */\n cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,\n /**\n * The column of the row that the current cell belongs to.\n */\n colDef: PropTypes.object.isRequired,\n /**\n * The column field of the cell that triggered the event.\n */\n field: PropTypes.string.isRequired,\n /**\n * A ref allowing to set imperative focus.\n * It can be passed to the element that should receive focus.\n * @ignore - do not document.\n */\n focusElementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.shape({\n focus: PropTypes.func.isRequired\n })\n })]),\n /**\n * The cell value formatted with the column valueFormatter.\n */\n formattedValue: PropTypes.any,\n /**\n * If true, the cell is the active element.\n */\n hasFocus: PropTypes.bool.isRequired,\n /**\n * The grid row id.\n */\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n /**\n * If true, the cell is editable.\n */\n isEditable: PropTypes.bool,\n /**\n * The row model of the row that the current cell belongs to.\n */\n row: PropTypes.any.isRequired,\n /**\n * The node of the row that the current cell belongs to.\n */\n rowNode: PropTypes.object.isRequired,\n /**\n * the tabIndex value.\n */\n tabIndex: PropTypes.oneOf([-1, 0]).isRequired,\n /**\n * The cell value.\n * If the column has `valueGetter`, use `params.row` to directly access the fields.\n */\n value: PropTypes.any\n} : void 0;\nexport { GridCellCheckboxForwardRef };\nexport const GridCellCheckboxRenderer = GridCellCheckboxForwardRef;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"field\", \"colDef\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { isMultipleRowSelectionEnabled } from \"../../hooks/features/rowSelection/utils.js\";\nimport { useGridSelector } from \"../../hooks/utils/useGridSelector.js\";\nimport { gridTabIndexColumnHeaderSelector } from \"../../hooks/features/focus/gridFocusStateSelector.js\";\nimport { gridRowSelectionStateSelector } from \"../../hooks/features/rowSelection/gridRowSelectionSelector.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { gridExpandedSortedRowIdsSelector } from \"../../hooks/features/filter/gridFilterSelector.js\";\nimport { gridPaginatedVisibleSortedGridRowIdsSelector } from \"../../hooks/features/pagination/gridPaginationSelector.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['checkboxInput']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridHeaderCheckbox = forwardRef(function GridHeaderCheckbox(props, ref) {\n const other = _objectWithoutPropertiesLoose(props, _excluded);\n const [, forceUpdate] = React.useState(false);\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n const tabIndexState = useGridSelector(apiRef, gridTabIndexColumnHeaderSelector);\n const selection = useGridSelector(apiRef, gridRowSelectionStateSelector);\n const visibleRowIds = useGridSelector(apiRef, gridExpandedSortedRowIdsSelector);\n const paginatedVisibleRowIds = useGridSelector(apiRef, gridPaginatedVisibleSortedGridRowIdsSelector);\n const filteredSelection = React.useMemo(() => {\n if (typeof rootProps.isRowSelectable !== 'function') {\n return selection;\n }\n return selection.filter(id => {\n if (rootProps.keepNonExistentRowsSelected) {\n return true;\n }\n // The row might have been deleted\n if (!apiRef.current.getRow(id)) {\n return false;\n }\n return rootProps.isRowSelectable(apiRef.current.getRowParams(id));\n });\n }, [apiRef, rootProps.isRowSelectable, selection, rootProps.keepNonExistentRowsSelected]);\n\n // All the rows that could be selected / unselected by toggling this checkbox\n const selectionCandidates = React.useMemo(() => {\n const rowIds = !rootProps.pagination || !rootProps.checkboxSelectionVisibleOnly ? visibleRowIds : paginatedVisibleRowIds;\n\n // Convert to an object to make O(1) checking if a row exists or not\n // TODO create selector that returns visibleRowIds/paginatedVisibleRowIds as an object\n return rowIds.reduce((acc, id) => {\n acc[id] = true;\n return acc;\n }, {});\n }, [rootProps.pagination, rootProps.checkboxSelectionVisibleOnly, paginatedVisibleRowIds, visibleRowIds]);\n\n // Amount of rows selected and that are visible in the current page\n const currentSelectionSize = React.useMemo(() => filteredSelection.filter(id => selectionCandidates[id]).length, [filteredSelection, selectionCandidates]);\n const isIndeterminate = currentSelectionSize > 0 && currentSelectionSize < Object.keys(selectionCandidates).length;\n const isChecked = currentSelectionSize > 0;\n const handleChange = event => {\n const params = {\n value: event.target.checked\n };\n apiRef.current.publishEvent('headerSelectionCheckboxChange', params);\n };\n const tabIndex = tabIndexState !== null && tabIndexState.field === props.field ? 0 : -1;\n React.useLayoutEffect(() => {\n const element = apiRef.current.getColumnHeaderElement(props.field);\n if (tabIndex === 0 && element) {\n element.tabIndex = -1;\n }\n }, [tabIndex, apiRef, props.field]);\n const handleKeyDown = React.useCallback(event => {\n if (event.key === ' ') {\n // imperative toggle the checkbox because Space is disable by some preventDefault\n apiRef.current.publishEvent('headerSelectionCheckboxChange', {\n value: !isChecked\n });\n }\n }, [apiRef, isChecked]);\n const handleSelectionChange = React.useCallback(() => {\n forceUpdate(p => !p);\n }, []);\n React.useEffect(() => {\n return apiRef.current.subscribeEvent('rowSelectionChange', handleSelectionChange);\n }, [apiRef, handleSelectionChange]);\n const checked = rootProps.indeterminateCheckboxAction === 'select' ? isChecked && !isIndeterminate : isChecked;\n const label = apiRef.current.getLocaleText(checked ? 'checkboxSelectionUnselectAllRows' : 'checkboxSelectionSelectAllRows');\n return /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({\n indeterminate: isIndeterminate,\n checked: checked,\n onChange: handleChange,\n className: classes.root,\n inputProps: {\n 'aria-label': label,\n name: 'select_all_rows'\n },\n tabIndex: tabIndex,\n onKeyDown: handleKeyDown,\n disabled: !isMultipleRowSelectionEnabled(rootProps)\n }, rootProps.slotProps?.baseCheckbox, other, {\n ref: ref\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridHeaderCheckbox.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The column of the current header component.\n */\n colDef: PropTypes.object.isRequired,\n /**\n * The column field of the column that triggered the event\n */\n field: PropTypes.string.isRequired\n} : void 0;\nexport { GridHeaderCheckbox };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridCellCheckboxRenderer } from \"../components/columnSelection/GridCellCheckboxRenderer.js\";\nimport { GridHeaderCheckbox } from \"../components/columnSelection/GridHeaderCheckbox.js\";\nimport { selectedIdsLookupSelector } from \"../hooks/features/rowSelection/gridRowSelectionSelector.js\";\nimport { GRID_BOOLEAN_COL_DEF } from \"./gridBooleanColDef.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const GRID_CHECKBOX_SELECTION_FIELD = '__check__';\nexport const GRID_CHECKBOX_SELECTION_COL_DEF = _extends({}, GRID_BOOLEAN_COL_DEF, {\n type: 'custom',\n field: GRID_CHECKBOX_SELECTION_FIELD,\n width: 50,\n resizable: false,\n sortable: false,\n filterable: false,\n // @ts-ignore\n aggregable: false,\n disableColumnMenu: true,\n disableReorder: true,\n disableExport: true,\n getApplyQuickFilterFn: undefined,\n display: 'flex',\n valueGetter: (value, row, column, apiRef) => {\n const selectionLookup = selectedIdsLookupSelector(apiRef);\n const rowId = apiRef.current.getRowId(row);\n return selectionLookup[rowId] !== undefined;\n },\n renderHeader: params => /*#__PURE__*/_jsx(GridHeaderCheckbox, _extends({}, params)),\n renderCell: params => /*#__PURE__*/_jsx(GridCellCheckboxRenderer, _extends({}, params))\n});","import { warnOnce } from '@mui/x-internals/warning';\nimport { GRID_CHECKBOX_SELECTION_COL_DEF } from \"../../../../colDef/index.js\";\nfunction sanitizeCellValue(value, csvOptions) {\n if (value === null || value === undefined) {\n return '';\n }\n const valueStr = typeof value === 'string' ? value : `${value}`;\n if (csvOptions.shouldAppendQuotes || csvOptions.escapeFormulas) {\n const escapedValue = valueStr.replace(/\"/g, '\"\"');\n if (csvOptions.escapeFormulas) {\n // See https://owasp.org/www-community/attacks/CSV_Injection\n if (['=', '+', '-', '@', '\\t', '\\r'].includes(escapedValue[0])) {\n return `\"'${escapedValue}\"`;\n }\n }\n // Make sure value containing delimiter or line break won't be split into multiple cells\n if ([csvOptions.delimiter, '\\n', '\\r', '\"'].some(delimiter => valueStr.includes(delimiter))) {\n return `\"${escapedValue}\"`;\n }\n return escapedValue;\n }\n return valueStr;\n}\nexport const serializeCellValue = (cellParams, options) => {\n const {\n csvOptions,\n ignoreValueFormatter\n } = options;\n let value;\n if (ignoreValueFormatter) {\n const columnType = cellParams.colDef.type;\n if (columnType === 'number') {\n value = String(cellParams.value);\n } else if (columnType === 'date' || columnType === 'dateTime') {\n value = cellParams.value?.toISOString();\n } else if (typeof cellParams.value?.toString === 'function') {\n value = cellParams.value.toString();\n } else {\n value = cellParams.value;\n }\n } else {\n value = cellParams.formattedValue;\n }\n return sanitizeCellValue(value, csvOptions);\n};\nclass CSVRow {\n constructor(options) {\n this.options = void 0;\n this.rowString = '';\n this.isEmpty = true;\n this.options = options;\n }\n addValue(value) {\n if (!this.isEmpty) {\n this.rowString += this.options.csvOptions.delimiter;\n }\n if (typeof this.options.sanitizeCellValue === 'function') {\n this.rowString += this.options.sanitizeCellValue(value, this.options.csvOptions);\n } else {\n this.rowString += value;\n }\n this.isEmpty = false;\n }\n getRowString() {\n return this.rowString;\n }\n}\nconst serializeRow = ({\n id,\n columns,\n getCellParams,\n csvOptions,\n ignoreValueFormatter\n}) => {\n const row = new CSVRow({\n csvOptions\n });\n columns.forEach(column => {\n const cellParams = getCellParams(id, column.field);\n if (process.env.NODE_ENV !== 'production') {\n if (String(cellParams.formattedValue) === '[object Object]') {\n warnOnce(['MUI X: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);\n }\n }\n row.addValue(serializeCellValue(cellParams, {\n ignoreValueFormatter,\n csvOptions\n }));\n });\n return row.getRowString();\n};\nexport function buildCSV(options) {\n const {\n columns,\n rowIds,\n csvOptions,\n ignoreValueFormatter,\n apiRef\n } = options;\n const CSVBody = rowIds.reduce((acc, id) => `${acc}${serializeRow({\n id,\n columns,\n getCellParams: apiRef.current.getCellParams,\n ignoreValueFormatter,\n csvOptions\n })}\\r\\n`, '').trim();\n if (!csvOptions.includeHeaders) {\n return CSVBody;\n }\n const filteredColumns = columns.filter(column => column.field !== GRID_CHECKBOX_SELECTION_COL_DEF.field);\n const headerRows = [];\n if (csvOptions.includeColumnGroupsHeaders) {\n const columnGroupLookup = apiRef.current.getAllGroupDetails();\n let maxColumnGroupsDepth = 0;\n const columnGroupPathsLookup = filteredColumns.reduce((acc, column) => {\n const columnGroupPath = apiRef.current.getColumnGroupPath(column.field);\n acc[column.field] = columnGroupPath;\n maxColumnGroupsDepth = Math.max(maxColumnGroupsDepth, columnGroupPath.length);\n return acc;\n }, {});\n for (let i = 0; i < maxColumnGroupsDepth; i += 1) {\n const headerGroupRow = new CSVRow({\n csvOptions,\n sanitizeCellValue\n });\n headerRows.push(headerGroupRow);\n filteredColumns.forEach(column => {\n const columnGroupId = (columnGroupPathsLookup[column.field] || [])[i];\n const columnGroup = columnGroupLookup[columnGroupId];\n headerGroupRow.addValue(columnGroup ? columnGroup.headerName || columnGroup.groupId : '');\n });\n }\n }\n const mainHeaderRow = new CSVRow({\n csvOptions,\n sanitizeCellValue\n });\n filteredColumns.forEach(column => {\n mainHeaderRow.addValue(column.headerName || column.field);\n });\n headerRows.push(mainHeaderRow);\n const CSVHead = `${headerRows.map(row => row.getRowString()).join('\\r\\n')}\\r\\n`;\n return `${CSVHead}${CSVBody}`.trim();\n}","// Non printable keys have a name, for example \"ArrowRight\", see the whole list:\n// https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values\n// So event.key.length === 1 is often enough.\n//\n// However, we also need to ignore shortcuts, for example: select all:\n// - Windows: Ctrl+A, event.ctrlKey is true\n// - macOS: ⌘ Command+A, event.metaKey is true\nexport function isPrintableKey(event) {\n return event.key.length === 1 && !event.ctrlKey && !event.metaKey;\n}\nexport const GRID_MULTIPLE_SELECTION_KEYS = ['Meta', 'Control', 'Shift'];\nexport const GRID_CELL_EXIT_EDIT_MODE_KEYS = ['Enter', 'Escape', 'Tab'];\nexport const GRID_CELL_EDIT_COMMIT_KEYS = ['Enter', 'Tab'];\nexport const isMultipleKey = key => GRID_MULTIPLE_SELECTION_KEYS.indexOf(key) > -1;\nexport const isCellEnterEditModeKeys = event => isPrintableKey(event) || event.key === 'Enter' || event.key === 'Backspace' || event.key === 'Delete';\nexport const isCellExitEditModeKeys = key => GRID_CELL_EXIT_EDIT_MODE_KEYS.indexOf(key) > -1;\nexport const isCellEditCommitKeys = key => GRID_CELL_EDIT_COMMIT_KEYS.indexOf(key) > -1;\nexport const isNavigationKey = key => key.indexOf('Arrow') === 0 || key.indexOf('Page') === 0 || key === ' ' || key === 'Home' || key === 'End';\nexport const isKeyboardEvent = event => !!event.key;\nexport const isHideMenuKey = key => key === 'Tab' || key === 'Escape';\n\n// In theory, on macOS, ctrl + v doesn't trigger a paste, so the function should return false.\n// However, maybe it's overkill to fix, so let's be lazy.\nexport function isPasteShortcut(event) {\n return (event.ctrlKey || event.metaKey) &&\n // We can't use event.code === 'KeyV' as event.code assumes a QWERTY keyboard layout,\n // for example, it would be another letter on a Dvorak physical keyboard.\n // We can't use event.key === 'v' as event.key is not stable with key modifiers and keyboard layouts,\n // for example, it would be ×” on a Hebrew keyboard layout.\n // https://github.com/w3c/uievents/issues/377 could be a long-term solution\n String.fromCharCode(event.keyCode) === 'V' && !event.shiftKey && !event.altKey;\n}\n\n// Checks if the keyboard event corresponds to the copy shortcut (CTRL+C or CMD+C) across different localization keyboards.\nexport function isCopyShortcut(event) {\n return (event.ctrlKey || event.metaKey) && String.fromCharCode(event.keyCode) === 'C' && !event.shiftKey && !event.altKey;\n}","import * as React from 'react';\nimport { useGridApiOptionHandler, useGridNativeEventListener } from \"../../utils/index.js\";\nimport { gridFocusCellSelector } from \"../focus/gridFocusStateSelector.js\";\nimport { serializeCellValue } from \"../export/serializers/csvSerializer.js\";\nimport { isCopyShortcut } from \"../../../utils/keyboardUtils.js\";\nfunction writeToClipboardPolyfill(data) {\n const span = document.createElement('span');\n span.style.whiteSpace = 'pre';\n span.style.userSelect = 'all';\n span.style.opacity = '0px';\n span.textContent = data;\n document.body.appendChild(span);\n const range = document.createRange();\n range.selectNode(span);\n const selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n try {\n document.execCommand('copy');\n } finally {\n document.body.removeChild(span);\n }\n}\nfunction copyToClipboard(data) {\n if (navigator.clipboard) {\n navigator.clipboard.writeText(data).catch(() => {\n writeToClipboardPolyfill(data);\n });\n } else {\n writeToClipboardPolyfill(data);\n }\n}\nfunction hasNativeSelection(element) {\n // When getSelection is called on an <iframe> that is not displayed Firefox will return null.\n if (window.getSelection()?.toString()) {\n return true;\n }\n\n // window.getSelection() returns an empty string in Firefox for selections inside a form element.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=85686.\n // Instead, we can use element.selectionStart that is only defined on form elements.\n if (element && (element.selectionEnd || 0) - (element.selectionStart || 0) > 0) {\n return true;\n }\n return false;\n}\n\n/**\n * @requires useGridCsvExport (method)\n * @requires useGridSelection (method)\n */\nexport const useGridClipboard = (apiRef, props) => {\n const ignoreValueFormatterProp = props.ignoreValueFormatterDuringExport;\n const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.clipboardExport : ignoreValueFormatterProp) || false;\n const clipboardCopyCellDelimiter = props.clipboardCopyCellDelimiter;\n const handleCopy = React.useCallback(event => {\n if (!isCopyShortcut(event)) {\n return;\n }\n\n // Do nothing if there's a native selection\n if (hasNativeSelection(event.target)) {\n return;\n }\n let textToCopy = '';\n const selectedRows = apiRef.current.getSelectedRows();\n if (selectedRows.size > 0) {\n textToCopy = apiRef.current.getDataAsCsv({\n includeHeaders: false,\n delimiter: clipboardCopyCellDelimiter,\n shouldAppendQuotes: false,\n escapeFormulas: false\n });\n } else {\n const focusedCell = gridFocusCellSelector(apiRef);\n if (focusedCell) {\n const cellParams = apiRef.current.getCellParams(focusedCell.id, focusedCell.field);\n textToCopy = serializeCellValue(cellParams, {\n csvOptions: {\n delimiter: clipboardCopyCellDelimiter,\n shouldAppendQuotes: false,\n escapeFormulas: false\n },\n ignoreValueFormatter\n });\n }\n }\n textToCopy = apiRef.current.unstable_applyPipeProcessors('clipboardCopy', textToCopy);\n if (textToCopy) {\n copyToClipboard(textToCopy);\n apiRef.current.publishEvent('clipboardCopy', textToCopy);\n }\n }, [apiRef, ignoreValueFormatter, clipboardCopyCellDelimiter]);\n useGridNativeEventListener(apiRef, apiRef.current.rootElementRef, 'keydown', handleCopy);\n useGridApiOptionHandler(apiRef, 'clipboardCopy', props.onClipboardCopy);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridLogger, useGridApiMethod, useGridApiEventHandler } from \"../../utils/index.js\";\nimport { gridColumnMenuSelector } from \"./columnMenuSelector.js\";\nimport { gridColumnLookupSelector, gridColumnVisibilityModelSelector, gridColumnFieldsSelector } from \"../columns/gridColumnsSelector.js\";\nexport const columnMenuStateInitializer = state => _extends({}, state, {\n columnMenu: {\n open: false\n }\n});\n\n/**\n * @requires useGridColumnResize (event)\n * @requires useGridInfiniteLoader (event)\n */\nexport const useGridColumnMenu = apiRef => {\n const logger = useGridLogger(apiRef, 'useGridColumnMenu');\n\n /**\n * API METHODS\n */\n const showColumnMenu = React.useCallback(field => {\n const columnMenuState = gridColumnMenuSelector(apiRef.current.state);\n const newState = {\n open: true,\n field\n };\n const shouldUpdate = newState.open !== columnMenuState.open || newState.field !== columnMenuState.field;\n if (shouldUpdate) {\n apiRef.current.setState(state => {\n if (state.columnMenu.open && state.columnMenu.field === field) {\n return state;\n }\n logger.debug('Opening Column Menu');\n return _extends({}, state, {\n columnMenu: {\n open: true,\n field\n }\n });\n });\n apiRef.current.hidePreferences();\n apiRef.current.forceUpdate();\n }\n }, [apiRef, logger]);\n const hideColumnMenu = React.useCallback(() => {\n const columnMenuState = gridColumnMenuSelector(apiRef.current.state);\n if (columnMenuState.field) {\n const columnLookup = gridColumnLookupSelector(apiRef);\n const columnVisibilityModel = gridColumnVisibilityModelSelector(apiRef);\n const orderedFields = gridColumnFieldsSelector(apiRef);\n let fieldToFocus = columnMenuState.field;\n\n // If the column was removed from the grid, we need to find the closest visible field\n if (!columnLookup[fieldToFocus]) {\n fieldToFocus = orderedFields[0];\n }\n\n // If the field to focus is hidden, we need to find the closest visible field\n if (columnVisibilityModel[fieldToFocus] === false) {\n // contains visible column fields + the field that was just hidden\n const visibleOrderedFields = orderedFields.filter(field => {\n if (field === fieldToFocus) {\n return true;\n }\n return columnVisibilityModel[field] !== false;\n });\n const fieldIndex = visibleOrderedFields.indexOf(fieldToFocus);\n fieldToFocus = visibleOrderedFields[fieldIndex + 1] || visibleOrderedFields[fieldIndex - 1];\n }\n apiRef.current.setColumnHeaderFocus(fieldToFocus);\n }\n const newState = {\n open: false,\n field: undefined\n };\n const shouldUpdate = newState.open !== columnMenuState.open || newState.field !== columnMenuState.field;\n if (shouldUpdate) {\n apiRef.current.setState(state => {\n logger.debug('Hiding Column Menu');\n return _extends({}, state, {\n columnMenu: newState\n });\n });\n apiRef.current.forceUpdate();\n }\n }, [apiRef, logger]);\n const toggleColumnMenu = React.useCallback(field => {\n logger.debug('Toggle Column Menu');\n const columnMenu = gridColumnMenuSelector(apiRef.current.state);\n if (!columnMenu.open || columnMenu.field !== field) {\n showColumnMenu(field);\n } else {\n hideColumnMenu();\n }\n }, [apiRef, logger, showColumnMenu, hideColumnMenu]);\n const columnMenuApi = {\n showColumnMenu,\n hideColumnMenu,\n toggleColumnMenu\n };\n useGridApiMethod(apiRef, columnMenuApi, 'public');\n useGridApiEventHandler(apiRef, 'columnResizeStart', hideColumnMenu);\n useGridApiEventHandler(apiRef, 'virtualScrollerWheel', apiRef.current.hideColumnMenu);\n useGridApiEventHandler(apiRef, 'virtualScrollerTouchMove', apiRef.current.hideColumnMenu);\n};","import * as React from 'react';\nexport const useFirstRender = callback => {\n const isFirstRender = React.useRef(true);\n if (isFirstRender.current) {\n isFirstRender.current = false;\n callback();\n }\n};","import * as React from 'react';\nimport { useFirstRender } from \"../../utils/useFirstRender.js\";\nexport const useGridRegisterPipeProcessor = (apiRef, group, callback) => {\n const cleanup = React.useRef(null);\n const id = React.useRef(`mui-${Math.round(Math.random() * 1e9)}`);\n const registerPreProcessor = React.useCallback(() => {\n cleanup.current = apiRef.current.registerPipeProcessor(group, id.current, callback);\n }, [apiRef, callback, group]);\n useFirstRender(() => {\n registerPreProcessor();\n });\n const isFirstRender = React.useRef(true);\n React.useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n } else {\n registerPreProcessor();\n }\n return () => {\n if (cleanup.current) {\n cleanup.current();\n cleanup.current = null;\n }\n };\n }, [registerPreProcessor]);\n};","import * as React from 'react';\nimport { useFirstRender } from \"../../utils/useFirstRender.js\";\nexport const useGridRegisterPipeApplier = (apiRef, group, callback) => {\n const cleanup = React.useRef(null);\n const id = React.useRef(`mui-${Math.round(Math.random() * 1e9)}`);\n const registerPreProcessor = React.useCallback(() => {\n cleanup.current = apiRef.current.registerPipeApplier(group, id.current, callback);\n }, [apiRef, callback, group]);\n useFirstRender(() => {\n registerPreProcessor();\n });\n const isFirstRender = React.useRef(true);\n React.useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n } else {\n registerPreProcessor();\n }\n return () => {\n if (cleanup.current) {\n cleanup.current();\n cleanup.current = null;\n }\n };\n }, [registerPreProcessor]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { useGridLogger } from \"../../utils/useGridLogger.js\";\nimport { gridColumnFieldsSelector, gridColumnDefinitionsSelector, gridColumnLookupSelector, gridColumnsStateSelector, gridColumnVisibilityModelSelector, gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector } from \"./gridColumnsSelector.js\";\nimport { GridSignature, useGridApiEventHandler } from \"../../utils/useGridApiEventHandler.js\";\nimport { useGridRegisterPipeProcessor, useGridRegisterPipeApplier } from \"../../core/pipeProcessing/index.js\";\nimport { EMPTY_PINNED_COLUMN_FIELDS } from \"./gridColumnsInterfaces.js\";\nimport { hydrateColumnsWidth, createColumnsState, COLUMNS_DIMENSION_PROPERTIES } from \"./gridColumnsUtils.js\";\nimport { GridPreferencePanelsValue } from \"../preferencesPanel/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const columnsStateInitializer = (state, props, apiRef) => {\n const columnsState = createColumnsState({\n apiRef,\n columnsToUpsert: props.columns,\n initialState: props.initialState?.columns,\n columnVisibilityModel: props.columnVisibilityModel ?? props.initialState?.columns?.columnVisibilityModel ?? {},\n keepOnlyColumnsToUpsert: true\n });\n return _extends({}, state, {\n columns: columnsState,\n // In pro/premium, this part of the state is defined. We give it an empty but defined value\n // for the community version.\n pinnedColumns: state.pinnedColumns ?? EMPTY_PINNED_COLUMN_FIELDS\n });\n};\n\n/**\n * @requires useGridParamsApi (method)\n * @requires useGridDimensions (method, event) - can be after\n * TODO: Impossible priority - useGridParamsApi also needs to be after useGridColumns\n */\nexport function useGridColumns(apiRef, props) {\n const logger = useGridLogger(apiRef, 'useGridColumns');\n const previousColumnsProp = React.useRef(props.columns);\n apiRef.current.registerControlState({\n stateId: 'visibleColumns',\n propModel: props.columnVisibilityModel,\n propOnChange: props.onColumnVisibilityModelChange,\n stateSelector: gridColumnVisibilityModelSelector,\n changeEvent: 'columnVisibilityModelChange'\n });\n const setGridColumnsState = React.useCallback(columnsState => {\n logger.debug('Updating columns state.');\n apiRef.current.setState(mergeColumnsState(columnsState));\n apiRef.current.publishEvent('columnsChange', columnsState.orderedFields);\n apiRef.current.updateRenderContext?.();\n apiRef.current.forceUpdate();\n }, [logger, apiRef]);\n\n /**\n * API METHODS\n */\n const getColumn = React.useCallback(field => gridColumnLookupSelector(apiRef)[field], [apiRef]);\n const getAllColumns = React.useCallback(() => gridColumnDefinitionsSelector(apiRef), [apiRef]);\n const getVisibleColumns = React.useCallback(() => gridVisibleColumnDefinitionsSelector(apiRef), [apiRef]);\n const getColumnIndex = React.useCallback((field, useVisibleColumns = true) => {\n const columns = useVisibleColumns ? gridVisibleColumnDefinitionsSelector(apiRef) : gridColumnDefinitionsSelector(apiRef);\n return columns.findIndex(col => col.field === field);\n }, [apiRef]);\n const getColumnPosition = React.useCallback(field => {\n const index = getColumnIndex(field);\n return gridColumnPositionsSelector(apiRef)[index];\n }, [apiRef, getColumnIndex]);\n const setColumnVisibilityModel = React.useCallback(model => {\n const currentModel = gridColumnVisibilityModelSelector(apiRef);\n if (currentModel !== model) {\n apiRef.current.setState(state => _extends({}, state, {\n columns: createColumnsState({\n apiRef,\n columnsToUpsert: [],\n initialState: undefined,\n columnVisibilityModel: model,\n keepOnlyColumnsToUpsert: false\n })\n }));\n apiRef.current.updateRenderContext?.();\n apiRef.current.forceUpdate();\n }\n }, [apiRef]);\n const updateColumns = React.useCallback(columns => {\n const columnsState = createColumnsState({\n apiRef,\n columnsToUpsert: columns,\n initialState: undefined,\n keepOnlyColumnsToUpsert: false\n });\n setGridColumnsState(columnsState);\n }, [apiRef, setGridColumnsState]);\n const setColumnVisibility = React.useCallback((field, isVisible) => {\n const columnVisibilityModel = gridColumnVisibilityModelSelector(apiRef);\n const isCurrentlyVisible = columnVisibilityModel[field] ?? true;\n if (isVisible !== isCurrentlyVisible) {\n const newModel = _extends({}, columnVisibilityModel, {\n [field]: isVisible\n });\n apiRef.current.setColumnVisibilityModel(newModel);\n }\n }, [apiRef]);\n const getColumnIndexRelativeToVisibleColumns = React.useCallback(field => {\n const allColumns = gridColumnFieldsSelector(apiRef);\n return allColumns.findIndex(col => col === field);\n }, [apiRef]);\n const setColumnIndex = React.useCallback((field, targetIndexPosition) => {\n const allColumns = gridColumnFieldsSelector(apiRef);\n const oldIndexPosition = getColumnIndexRelativeToVisibleColumns(field);\n if (oldIndexPosition === targetIndexPosition) {\n return;\n }\n logger.debug(`Moving column ${field} to index ${targetIndexPosition}`);\n const updatedColumns = [...allColumns];\n const fieldRemoved = updatedColumns.splice(oldIndexPosition, 1)[0];\n updatedColumns.splice(targetIndexPosition, 0, fieldRemoved);\n setGridColumnsState(_extends({}, gridColumnsStateSelector(apiRef.current.state), {\n orderedFields: updatedColumns\n }));\n const params = {\n column: apiRef.current.getColumn(field),\n targetIndex: apiRef.current.getColumnIndexRelativeToVisibleColumns(field),\n oldIndex: oldIndexPosition\n };\n apiRef.current.publishEvent('columnIndexChange', params);\n }, [apiRef, logger, setGridColumnsState, getColumnIndexRelativeToVisibleColumns]);\n const setColumnWidth = React.useCallback((field, width) => {\n logger.debug(`Updating column ${field} width to ${width}`);\n const columnsState = gridColumnsStateSelector(apiRef.current.state);\n const column = columnsState.lookup[field];\n const newColumn = _extends({}, column, {\n width,\n hasBeenResized: true\n });\n setGridColumnsState(hydrateColumnsWidth(_extends({}, columnsState, {\n lookup: _extends({}, columnsState.lookup, {\n [field]: newColumn\n })\n }), apiRef.current.getRootDimensions()));\n apiRef.current.publishEvent('columnWidthChange', {\n element: apiRef.current.getColumnHeaderElement(field),\n colDef: newColumn,\n width\n });\n }, [apiRef, logger, setGridColumnsState]);\n const columnApi = {\n getColumn,\n getAllColumns,\n getColumnIndex,\n getColumnPosition,\n getVisibleColumns,\n getColumnIndexRelativeToVisibleColumns,\n updateColumns,\n setColumnVisibilityModel,\n setColumnVisibility,\n setColumnWidth\n };\n const columnReorderApi = {\n setColumnIndex\n };\n useGridApiMethod(apiRef, columnApi, 'public');\n useGridApiMethod(apiRef, columnReorderApi, props.signature === GridSignature.DataGrid ? 'private' : 'public');\n\n /**\n * PRE-PROCESSING\n */\n const stateExportPreProcessing = React.useCallback((prevState, context) => {\n const columnsStateToExport = {};\n const columnVisibilityModelToExport = gridColumnVisibilityModelSelector(apiRef);\n const shouldExportColumnVisibilityModel =\n // Always export if the `exportOnlyDirtyModels` property is not activated\n !context.exportOnlyDirtyModels ||\n // Always export if the model is controlled\n props.columnVisibilityModel != null ||\n // Always export if the model has been initialized\n // TODO v6 Do a nullish check instead to export even if the initial model equals \"{}\"\n Object.keys(props.initialState?.columns?.columnVisibilityModel ?? {}).length > 0 ||\n // Always export if the model is not empty\n Object.keys(columnVisibilityModelToExport).length > 0;\n if (shouldExportColumnVisibilityModel) {\n columnsStateToExport.columnVisibilityModel = columnVisibilityModelToExport;\n }\n columnsStateToExport.orderedFields = gridColumnFieldsSelector(apiRef);\n const columns = gridColumnDefinitionsSelector(apiRef);\n const dimensions = {};\n columns.forEach(colDef => {\n if (colDef.hasBeenResized) {\n const colDefDimensions = {};\n COLUMNS_DIMENSION_PROPERTIES.forEach(propertyName => {\n let propertyValue = colDef[propertyName];\n if (propertyValue === Infinity) {\n propertyValue = -1;\n }\n colDefDimensions[propertyName] = propertyValue;\n });\n dimensions[colDef.field] = colDefDimensions;\n }\n });\n if (Object.keys(dimensions).length > 0) {\n columnsStateToExport.dimensions = dimensions;\n }\n return _extends({}, prevState, {\n columns: columnsStateToExport\n });\n }, [apiRef, props.columnVisibilityModel, props.initialState?.columns]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n const columnVisibilityModelToImport = context.stateToRestore.columns?.columnVisibilityModel;\n const initialState = context.stateToRestore.columns;\n if (columnVisibilityModelToImport == null && initialState == null) {\n return params;\n }\n const columnsState = createColumnsState({\n apiRef,\n columnsToUpsert: [],\n initialState,\n columnVisibilityModel: columnVisibilityModelToImport,\n keepOnlyColumnsToUpsert: false\n });\n apiRef.current.setState(mergeColumnsState(columnsState));\n if (initialState != null) {\n apiRef.current.publishEvent('columnsChange', columnsState.orderedFields);\n }\n return params;\n }, [apiRef]);\n const preferencePanelPreProcessing = React.useCallback((initialValue, value) => {\n if (value === GridPreferencePanelsValue.columns) {\n const ColumnsPanel = props.slots.columnsPanel;\n return /*#__PURE__*/_jsx(ColumnsPanel, _extends({}, props.slotProps?.columnsPanel));\n }\n return initialValue;\n }, [props.slots.columnsPanel, props.slotProps?.columnsPanel]);\n const addColumnMenuItems = React.useCallback(columnMenuItems => {\n if (props.disableColumnSelector) {\n return columnMenuItems;\n }\n return [...columnMenuItems, 'columnMenuColumnsItem'];\n }, [props.disableColumnSelector]);\n useGridRegisterPipeProcessor(apiRef, 'columnMenu', addColumnMenuItems);\n useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'preferencePanel', preferencePanelPreProcessing);\n\n /*\n * EVENTS\n */\n\n const prevInnerWidth = React.useRef(null);\n const handleGridSizeChange = viewportInnerSize => {\n if (prevInnerWidth.current !== viewportInnerSize.width) {\n prevInnerWidth.current = viewportInnerSize.width;\n setGridColumnsState(hydrateColumnsWidth(gridColumnsStateSelector(apiRef.current.state), apiRef.current.getRootDimensions()));\n }\n };\n useGridApiEventHandler(apiRef, 'viewportInnerSizeChange', handleGridSizeChange);\n\n /**\n * APPLIERS\n */\n const hydrateColumns = React.useCallback(() => {\n logger.info(`Columns pipe processing have changed, regenerating the columns`);\n const columnsState = createColumnsState({\n apiRef,\n columnsToUpsert: [],\n initialState: undefined,\n keepOnlyColumnsToUpsert: false\n });\n setGridColumnsState(columnsState);\n }, [apiRef, logger, setGridColumnsState]);\n useGridRegisterPipeApplier(apiRef, 'hydrateColumns', hydrateColumns);\n\n /*\n * EFFECTS\n */\n // The effect do not track any value defined synchronously during the 1st render by hooks called after `useGridColumns`\n // As a consequence, the state generated by the 1st run of this useEffect will always be equal to the initialization one\n const isFirstRender = React.useRef(true);\n React.useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n logger.info(`GridColumns have changed, new length ${props.columns.length}`);\n if (previousColumnsProp.current === props.columns) {\n return;\n }\n const columnsState = createColumnsState({\n apiRef,\n initialState: undefined,\n // If the user provides a model, we don't want to set it in the state here because it has it's dedicated `useEffect` which calls `setColumnVisibilityModel`\n columnsToUpsert: props.columns,\n keepOnlyColumnsToUpsert: true\n });\n previousColumnsProp.current = props.columns;\n setGridColumnsState(columnsState);\n }, [logger, apiRef, setGridColumnsState, props.columns]);\n React.useEffect(() => {\n if (props.columnVisibilityModel !== undefined) {\n apiRef.current.setColumnVisibilityModel(props.columnVisibilityModel);\n }\n }, [apiRef, logger, props.columnVisibilityModel]);\n}\nfunction mergeColumnsState(columnsState) {\n return state => _extends({}, state, {\n columns: columnsState\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport { useGridLogger } from \"../../utils/useGridLogger.js\";\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { gridDensitySelector } from \"./densitySelector.js\";\nimport { useGridRegisterPipeProcessor } from \"../../core/pipeProcessing/index.js\";\nexport const densityStateInitializer = (state, props) => _extends({}, state, {\n density: props.initialState?.density ?? props.density ?? 'standard'\n});\nexport const useGridDensity = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useDensity');\n apiRef.current.registerControlState({\n stateId: 'density',\n propModel: props.density,\n propOnChange: props.onDensityChange,\n stateSelector: gridDensitySelector,\n changeEvent: 'densityChange'\n });\n const setDensity = useEventCallback(newDensity => {\n const currentDensity = gridDensitySelector(apiRef.current.state);\n if (currentDensity === newDensity) {\n return;\n }\n logger.debug(`Set grid density to ${newDensity}`);\n apiRef.current.setState(state => _extends({}, state, {\n density: newDensity\n }));\n });\n const densityApi = {\n setDensity\n };\n useGridApiMethod(apiRef, densityApi, 'public');\n const stateExportPreProcessing = React.useCallback((prevState, context) => {\n const exportedDensity = gridDensitySelector(apiRef.current.state);\n const shouldExportRowCount =\n // Always export if the `exportOnlyDirtyModels` property is not activated\n !context.exportOnlyDirtyModels ||\n // Always export if the `density` is controlled\n props.density != null ||\n // Always export if the `density` has been initialized\n props.initialState?.density != null;\n if (!shouldExportRowCount) {\n return prevState;\n }\n return _extends({}, prevState, {\n density: exportedDensity\n });\n }, [apiRef, props.density, props.initialState?.density]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n const restoredDensity = context.stateToRestore?.density ? context.stateToRestore.density : gridDensitySelector(apiRef.current.state);\n apiRef.current.setState(state => _extends({}, state, {\n density: restoredDensity\n }));\n return params;\n }, [apiRef]);\n useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n React.useEffect(() => {\n if (props.density) {\n apiRef.current.setDensity(props.density);\n }\n }, [apiRef, props.density]);\n};","import { gridColumnDefinitionsSelector, gridVisibleColumnDefinitionsSelector } from \"../columns/index.js\";\nimport { gridFilteredSortedRowIdsSelector } from \"../filter/index.js\";\nimport { gridPinnedRowsSelector, gridRowTreeSelector } from \"../rows/gridRowsSelector.js\";\nexport const getColumnsToExport = ({\n apiRef,\n options\n}) => {\n const columns = gridColumnDefinitionsSelector(apiRef);\n if (options.fields) {\n return options.fields.reduce((currentColumns, field) => {\n const column = columns.find(col => col.field === field);\n if (column) {\n currentColumns.push(column);\n }\n return currentColumns;\n }, []);\n }\n const validColumns = options.allColumns ? columns : gridVisibleColumnDefinitionsSelector(apiRef);\n return validColumns.filter(column => !column.disableExport);\n};\nexport const defaultGetRowsToExport = ({\n apiRef\n}) => {\n const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);\n const rowTree = gridRowTreeSelector(apiRef);\n const selectedRows = apiRef.current.getSelectedRows();\n const bodyRows = filteredSortedRowIds.filter(id => rowTree[id].type !== 'footer');\n const pinnedRows = gridPinnedRowsSelector(apiRef);\n const topPinnedRowsIds = pinnedRows?.top?.map(row => row.id) || [];\n const bottomPinnedRowsIds = pinnedRows?.bottom?.map(row => row.id) || [];\n bodyRows.unshift(...topPinnedRowsIds);\n bodyRows.push(...bottomPinnedRowsIds);\n if (selectedRows.size > 0) {\n return bodyRows.filter(id => selectedRows.has(id));\n }\n return bodyRows;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useId as useId, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport MenuList from '@mui/material/MenuList';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { isHideMenuKey } from \"../../utils/keyboardUtils.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { GridMenu } from \"../menu/GridMenu.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { gridClasses } from \"../../constants/gridClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst GridToolbarExportContainer = forwardRef(function GridToolbarExportContainer(props, ref) {\n const {\n children,\n slotProps = {}\n } = props;\n const buttonProps = slotProps.button || {};\n const tooltipProps = slotProps.tooltip || {};\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const exportButtonId = useId();\n const exportMenuId = useId();\n const [open, setOpen] = React.useState(false);\n const buttonRef = React.useRef(null);\n const handleRef = useForkRef(ref, buttonRef);\n const handleMenuOpen = event => {\n setOpen(prevOpen => !prevOpen);\n buttonProps.onClick?.(event);\n };\n const handleMenuClose = () => setOpen(false);\n const handleListKeyDown = event => {\n if (event.key === 'Tab') {\n event.preventDefault();\n }\n if (isHideMenuKey(event.key)) {\n handleMenuClose();\n }\n };\n if (children == null) {\n return null;\n }\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({\n title: apiRef.current.getLocaleText('toolbarExportLabel'),\n enterDelay: 1000\n }, rootProps.slotProps?.baseTooltip, tooltipProps, {\n children: /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({\n size: \"small\",\n startIcon: /*#__PURE__*/_jsx(rootProps.slots.exportIcon, {}),\n \"aria-expanded\": open,\n \"aria-label\": apiRef.current.getLocaleText('toolbarExportLabel'),\n \"aria-haspopup\": \"menu\",\n \"aria-controls\": open ? exportMenuId : undefined,\n id: exportButtonId,\n onClick: handleMenuOpen\n }, rootProps.slotProps?.baseButton, buttonProps, {\n ref: handleRef,\n children: apiRef.current.getLocaleText('toolbarExport')\n }))\n })), /*#__PURE__*/_jsx(GridMenu, {\n open: open,\n target: buttonRef.current,\n onClose: handleMenuClose,\n position: \"bottom-start\",\n children: /*#__PURE__*/_jsx(MenuList, {\n id: exportMenuId,\n className: gridClasses.menuList,\n \"aria-labelledby\": exportButtonId,\n onKeyDown: handleListKeyDown,\n autoFocusItem: open,\n children: React.Children.map(children, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return child;\n }\n return /*#__PURE__*/React.cloneElement(child, {\n hideMenu: handleMenuClose\n });\n })\n })\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? GridToolbarExportContainer.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.object\n} : void 0;\nexport { GridToolbarExportContainer };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"hideMenu\", \"options\"],\n _excluded2 = [\"hideMenu\", \"options\"],\n _excluded3 = [\"csvOptions\", \"printOptions\", \"excelOptions\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport MenuItem from '@mui/material/MenuItem';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { GridToolbarExportContainer } from \"./GridToolbarExportContainer.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction GridCsvExportMenuItem(props) {\n const apiRef = useGridApiContext();\n const {\n hideMenu,\n options\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n return /*#__PURE__*/_jsx(MenuItem, _extends({\n onClick: () => {\n apiRef.current.exportDataAsCsv(options);\n hideMenu?.();\n }\n }, other, {\n children: apiRef.current.getLocaleText('toolbarExportCSV')\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridCsvExportMenuItem.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n hideMenu: PropTypes.func,\n options: PropTypes.shape({\n allColumns: PropTypes.bool,\n delimiter: PropTypes.string,\n disableToolbarButton: PropTypes.bool,\n escapeFormulas: PropTypes.bool,\n fields: PropTypes.arrayOf(PropTypes.string),\n fileName: PropTypes.string,\n getRowsToExport: PropTypes.func,\n includeColumnGroupsHeaders: PropTypes.bool,\n includeHeaders: PropTypes.bool,\n shouldAppendQuotes: PropTypes.bool,\n utf8WithBom: PropTypes.bool\n })\n} : void 0;\nfunction GridPrintExportMenuItem(props) {\n const apiRef = useGridApiContext();\n const {\n hideMenu,\n options\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n return /*#__PURE__*/_jsx(MenuItem, _extends({\n onClick: () => {\n apiRef.current.exportDataAsPrint(options);\n hideMenu?.();\n }\n }, other, {\n children: apiRef.current.getLocaleText('toolbarExportPrint')\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridPrintExportMenuItem.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n hideMenu: PropTypes.func,\n options: PropTypes.shape({\n allColumns: PropTypes.bool,\n bodyClassName: PropTypes.string,\n copyStyles: PropTypes.bool,\n disableToolbarButton: PropTypes.bool,\n fields: PropTypes.arrayOf(PropTypes.string),\n fileName: PropTypes.string,\n getRowsToExport: PropTypes.func,\n hideFooter: PropTypes.bool,\n hideToolbar: PropTypes.bool,\n includeCheckboxes: PropTypes.bool,\n pageStyle: PropTypes.oneOfType([PropTypes.func, PropTypes.string])\n })\n} : void 0;\nconst GridToolbarExport = forwardRef(function GridToolbarExport(props, ref) {\n const _ref = props,\n {\n csvOptions = {},\n printOptions = {},\n excelOptions\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded3);\n const apiRef = useGridApiContext();\n const preProcessedButtons = apiRef.current.unstable_applyPipeProcessors('exportMenu', [], {\n excelOptions,\n csvOptions,\n printOptions\n }).sort((a, b) => a.componentName > b.componentName ? 1 : -1);\n if (preProcessedButtons.length === 0) {\n return null;\n }\n return /*#__PURE__*/_jsx(GridToolbarExportContainer, _extends({}, other, {\n ref: ref,\n children: preProcessedButtons.map((button, index) => /*#__PURE__*/React.cloneElement(button.component, {\n key: index\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridToolbarExport.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n csvOptions: PropTypes.object,\n printOptions: PropTypes.object,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.object\n} : void 0;\nexport { GridToolbarExport, GridCsvExportMenuItem, GridPrintExportMenuItem };","import * as React from 'react';\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { useGridLogger } from \"../../utils/useGridLogger.js\";\nimport { exportAs } from \"../../../utils/exportAs.js\";\nimport { buildCSV } from \"./serializers/csvSerializer.js\";\nimport { getColumnsToExport, defaultGetRowsToExport } from \"./utils.js\";\nimport { useGridRegisterPipeProcessor } from \"../../core/pipeProcessing/index.js\";\nimport { GridCsvExportMenuItem } from \"../../../components/toolbar/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * @requires useGridColumns (state)\n * @requires useGridFilter (state)\n * @requires useGridSorting (state)\n * @requires useGridSelection (state)\n * @requires useGridParamsApi (method)\n */\nexport const useGridCsvExport = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridCsvExport');\n const ignoreValueFormatterProp = props.ignoreValueFormatterDuringExport;\n const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.csvExport : ignoreValueFormatterProp) || false;\n const getDataAsCsv = React.useCallback((options = {}) => {\n logger.debug(`Get data as CSV`);\n const exportedColumns = getColumnsToExport({\n apiRef,\n options\n });\n const getRowsToExport = options.getRowsToExport ?? defaultGetRowsToExport;\n const exportedRowIds = getRowsToExport({\n apiRef\n });\n return buildCSV({\n columns: exportedColumns,\n rowIds: exportedRowIds,\n csvOptions: {\n delimiter: options.delimiter || ',',\n shouldAppendQuotes: options.shouldAppendQuotes ?? true,\n includeHeaders: options.includeHeaders ?? true,\n includeColumnGroupsHeaders: options.includeColumnGroupsHeaders ?? true,\n escapeFormulas: options.escapeFormulas ?? true\n },\n ignoreValueFormatter,\n apiRef\n });\n }, [logger, apiRef, ignoreValueFormatter]);\n const exportDataAsCsv = React.useCallback(options => {\n logger.debug(`Export data as CSV`);\n const csv = getDataAsCsv(options);\n const blob = new Blob([options?.utf8WithBom ? new Uint8Array([0xef, 0xbb, 0xbf]) : '', csv], {\n type: 'text/csv'\n });\n exportAs(blob, 'csv', options?.fileName);\n }, [logger, getDataAsCsv]);\n const csvExportApi = {\n getDataAsCsv,\n exportDataAsCsv\n };\n useGridApiMethod(apiRef, csvExportApi, 'public');\n\n /**\n * PRE-PROCESSING\n */\n const addExportMenuButtons = React.useCallback((initialValue, options) => {\n if (options.csvOptions?.disableToolbarButton) {\n return initialValue;\n }\n return [...initialValue, {\n component: /*#__PURE__*/_jsx(GridCsvExportMenuItem, {\n options: options.csvOptions\n }),\n componentName: 'csvExport'\n }];\n }, []);\n useGridRegisterPipeProcessor(apiRef, 'exportMenu', addExportMenuButtons);\n};","/**\n * I have hesitated to use https://github.com/eligrey/FileSaver.js.\n * If we get bug reports that this project solves, we should consider using it.\n *\n * Related resources.\n * https://blog.logrocket.com/programmatic-file-downloads-in-the-browser-9a5186298d5c/\n * https://github.com/mbrn/filefy/blob/ec4ed0b7415d93be7158c23029f2ea1fa0b8e2d9/src/core/BaseBuilder.ts\n * https://unpkg.com/browse/@progress/kendo-file-saver@1.0.7/dist/es/save-as.js\n * https://github.com/ag-grid/ag-grid/blob/9565c219b6210aa85fa833c929d0728f9d163a91/community-modules/csv-export/src/csvExport/downloader.ts\n */\n\nexport function exportAs(blob, extension = 'csv', filename = document.title || 'untitled') {\n const fullName = `${filename}.${extension}`;\n\n // Test download attribute first\n // https://github.com/eligrey/FileSaver.js/issues/193\n if ('download' in HTMLAnchorElement.prototype) {\n // Create an object URL for the blob object\n const url = URL.createObjectURL(blob);\n\n // Create a new anchor element\n const a = document.createElement('a');\n a.href = url;\n a.download = fullName;\n\n // Programmatically trigger a click on the anchor element\n // Useful if you want the download to happen automatically\n // Without attaching the anchor element to the DOM\n a.click();\n\n // https://github.com/eligrey/FileSaver.js/issues/205\n setTimeout(() => {\n URL.revokeObjectURL(url);\n });\n return;\n }\n throw new Error('MUI X: exportAs not supported.');\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { gridDensityFactorSelector } from \"../density/index.js\";\nimport { useGridLogger, useGridSelector, useGridApiMethod, useGridApiEventHandler } from \"../../utils/index.js\";\nimport { useGridRegisterPipeProcessor } from \"../../core/pipeProcessing/index.js\";\nimport { gridPageCountSelector, gridPaginationModelSelector } from \"./gridPaginationSelector.js\";\nimport { getPageCount, defaultPageSize, throwIfPageSizeExceedsTheLimit, getDefaultGridPaginationModel, getValidPage } from \"./gridPaginationUtils.js\";\nexport const getDerivedPaginationModel = (paginationState, signature, paginationModelProp) => {\n let paginationModel = paginationState.paginationModel;\n const rowCount = paginationState.rowCount;\n const pageSize = paginationModelProp?.pageSize ?? paginationModel.pageSize;\n const page = paginationModelProp?.page ?? paginationModel.page;\n const pageCount = getPageCount(rowCount, pageSize, page);\n if (paginationModelProp && (paginationModelProp?.page !== paginationModel.page || paginationModelProp?.pageSize !== paginationModel.pageSize)) {\n paginationModel = paginationModelProp;\n }\n const validPage = getValidPage(paginationModel.page, pageCount);\n if (validPage !== paginationModel.page) {\n paginationModel = _extends({}, paginationModel, {\n page: validPage\n });\n }\n throwIfPageSizeExceedsTheLimit(paginationModel.pageSize, signature);\n return paginationModel;\n};\n\n/**\n * @requires useGridFilter (state)\n * @requires useGridDimensions (event) - can be after\n */\nexport const useGridPaginationModel = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridPaginationModel');\n const densityFactor = useGridSelector(apiRef, gridDensityFactorSelector);\n const rowHeight = Math.floor(props.rowHeight * densityFactor);\n apiRef.current.registerControlState({\n stateId: 'paginationModel',\n propModel: props.paginationModel,\n propOnChange: props.onPaginationModelChange,\n stateSelector: gridPaginationModelSelector,\n changeEvent: 'paginationModelChange'\n });\n\n /**\n * API METHODS\n */\n const setPage = React.useCallback(page => {\n const currentModel = gridPaginationModelSelector(apiRef);\n if (page === currentModel.page) {\n return;\n }\n logger.debug(`Setting page to ${page}`);\n apiRef.current.setPaginationModel({\n page,\n pageSize: currentModel.pageSize\n });\n }, [apiRef, logger]);\n const setPageSize = React.useCallback(pageSize => {\n const currentModel = gridPaginationModelSelector(apiRef);\n if (pageSize === currentModel.pageSize) {\n return;\n }\n logger.debug(`Setting page size to ${pageSize}`);\n apiRef.current.setPaginationModel({\n pageSize,\n page: currentModel.page\n });\n }, [apiRef, logger]);\n const setPaginationModel = React.useCallback(paginationModel => {\n const currentModel = gridPaginationModelSelector(apiRef);\n if (paginationModel === currentModel) {\n return;\n }\n logger.debug(\"Setting 'paginationModel' to\", paginationModel);\n apiRef.current.setState(state => _extends({}, state, {\n pagination: _extends({}, state.pagination, {\n paginationModel: getDerivedPaginationModel(state.pagination, props.signature, paginationModel)\n })\n }), 'setPaginationModel');\n }, [apiRef, logger, props.signature]);\n const paginationModelApi = {\n setPage,\n setPageSize,\n setPaginationModel\n };\n useGridApiMethod(apiRef, paginationModelApi, 'public');\n\n /**\n * PRE-PROCESSING\n */\n const stateExportPreProcessing = React.useCallback((prevState, context) => {\n const paginationModel = gridPaginationModelSelector(apiRef);\n const shouldExportPaginationModel =\n // Always export if the `exportOnlyDirtyModels` property is not activated\n !context.exportOnlyDirtyModels ||\n // Always export if the `paginationModel` is controlled\n props.paginationModel != null ||\n // Always export if the `paginationModel` has been initialized\n props.initialState?.pagination?.paginationModel != null ||\n // Export if `page` or `pageSize` is not equal to the default value\n paginationModel.page !== 0 && paginationModel.pageSize !== defaultPageSize(props.autoPageSize);\n if (!shouldExportPaginationModel) {\n return prevState;\n }\n return _extends({}, prevState, {\n pagination: _extends({}, prevState.pagination, {\n paginationModel\n })\n });\n }, [apiRef, props.paginationModel, props.initialState?.pagination?.paginationModel, props.autoPageSize]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n const paginationModel = context.stateToRestore.pagination?.paginationModel ? _extends({}, getDefaultGridPaginationModel(props.autoPageSize), context.stateToRestore.pagination?.paginationModel) : gridPaginationModelSelector(apiRef);\n apiRef.current.setState(state => _extends({}, state, {\n pagination: _extends({}, state.pagination, {\n paginationModel: getDerivedPaginationModel(state.pagination, props.signature, paginationModel)\n })\n }), 'stateRestorePreProcessing');\n return params;\n }, [apiRef, props.autoPageSize, props.signature]);\n useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n\n /**\n * EVENTS\n */\n const handlePaginationModelChange = () => {\n const paginationModel = gridPaginationModelSelector(apiRef);\n if (apiRef.current.virtualScrollerRef?.current) {\n apiRef.current.scrollToIndexes({\n rowIndex: paginationModel.page * paginationModel.pageSize\n });\n }\n };\n const handleUpdateAutoPageSize = React.useCallback(() => {\n if (!props.autoPageSize) {\n return;\n }\n const dimensions = apiRef.current.getRootDimensions();\n const maximumPageSizeWithoutScrollBar = Math.floor(dimensions.viewportInnerSize.height / rowHeight);\n apiRef.current.setPageSize(maximumPageSizeWithoutScrollBar);\n }, [apiRef, props.autoPageSize, rowHeight]);\n const handleRowCountChange = React.useCallback(newRowCount => {\n if (newRowCount == null) {\n return;\n }\n const paginationModel = gridPaginationModelSelector(apiRef);\n const pageCount = gridPageCountSelector(apiRef);\n if (paginationModel.page > pageCount - 1) {\n apiRef.current.setPage(Math.max(0, pageCount - 1));\n }\n }, [apiRef]);\n useGridApiEventHandler(apiRef, 'viewportInnerSizeChange', handleUpdateAutoPageSize);\n useGridApiEventHandler(apiRef, 'paginationModelChange', handlePaginationModelChange);\n useGridApiEventHandler(apiRef, 'rowCountChange', handleRowCountChange);\n\n /**\n * EFFECTS\n */\n React.useEffect(() => {\n apiRef.current.setState(state => _extends({}, state, {\n pagination: _extends({}, state.pagination, {\n paginationModel: getDerivedPaginationModel(state.pagination, props.signature, props.paginationModel)\n })\n }));\n }, [apiRef, props.paginationModel, props.paginationMode, props.signature]);\n React.useEffect(handleUpdateAutoPageSize, [handleUpdateAutoPageSize]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_ownerDocument as ownerDocument } from '@mui/utils';\nimport { useGridLogger } from \"../../utils/useGridLogger.js\";\nimport { gridExpandedRowCountSelector } from \"../filter/gridFilterSelector.js\";\nimport { gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector } from \"../columns/gridColumnsSelector.js\";\nimport { gridClasses } from \"../../../constants/gridClasses.js\";\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { gridRowsMetaSelector } from \"../rows/gridRowsMetaSelector.js\";\nimport { GRID_ID_AUTOGENERATED } from \"../rows/gridRowsUtils.js\";\nimport { defaultGetRowsToExport, getColumnsToExport } from \"./utils.js\";\nimport { getDerivedPaginationModel } from \"../pagination/useGridPaginationModel.js\";\nimport { useGridRegisterPipeProcessor } from \"../../core/pipeProcessing/index.js\";\nimport { GridPrintExportMenuItem } from \"../../../components/toolbar/index.js\";\nimport { getTotalHeaderHeight } from \"../columns/gridColumnsUtils.js\";\nimport { GRID_CHECKBOX_SELECTION_COL_DEF } from \"../../../colDef/gridCheckboxSelectionColDef.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction raf() {\n return new Promise(resolve => {\n requestAnimationFrame(() => {\n resolve();\n });\n });\n}\nfunction buildPrintWindow(title) {\n const iframeEl = document.createElement('iframe');\n iframeEl.style.position = 'absolute';\n iframeEl.style.width = '0px';\n iframeEl.style.height = '0px';\n iframeEl.title = title || document.title;\n return iframeEl;\n}\n\n/**\n * @requires useGridColumns (state)\n * @requires useGridFilter (state)\n * @requires useGridSorting (state)\n * @requires useGridParamsApi (method)\n */\nexport const useGridPrintExport = (apiRef, props) => {\n const hasRootReference = apiRef.current.rootElementRef.current !== null;\n const logger = useGridLogger(apiRef, 'useGridPrintExport');\n const doc = React.useRef(null);\n const previousGridState = React.useRef(null);\n const previousColumnVisibility = React.useRef({});\n const previousRows = React.useRef([]);\n const previousVirtualizationState = React.useRef(null);\n React.useEffect(() => {\n doc.current = ownerDocument(apiRef.current.rootElementRef.current);\n }, [apiRef, hasRootReference]);\n\n // Returns a promise because updateColumns triggers state update and\n // the new state needs to be in place before the grid can be sized correctly\n const updateGridColumnsForPrint = React.useCallback((fields, allColumns, includeCheckboxes) => new Promise(resolve => {\n const exportedColumnFields = getColumnsToExport({\n apiRef,\n options: {\n fields,\n allColumns\n }\n }).map(column => column.field);\n const columns = gridColumnDefinitionsSelector(apiRef);\n const newColumnVisibilityModel = {};\n columns.forEach(column => {\n newColumnVisibilityModel[column.field] = exportedColumnFields.includes(column.field);\n });\n if (includeCheckboxes) {\n newColumnVisibilityModel[GRID_CHECKBOX_SELECTION_COL_DEF.field] = true;\n }\n apiRef.current.setColumnVisibilityModel(newColumnVisibilityModel);\n resolve();\n }), [apiRef]);\n const updateGridRowsForPrint = React.useCallback(getRowsToExport => {\n const rowsToExportIds = getRowsToExport({\n apiRef\n });\n const newRows = rowsToExportIds.reduce((acc, id) => {\n const row = apiRef.current.getRow(id);\n if (!row[GRID_ID_AUTOGENERATED]) {\n acc.push(row);\n }\n return acc;\n }, []);\n apiRef.current.setRows(newRows);\n }, [apiRef]);\n const handlePrintWindowLoad = React.useCallback((printWindow, options) => {\n const normalizeOptions = _extends({\n copyStyles: true,\n hideToolbar: false,\n hideFooter: false,\n includeCheckboxes: false\n }, options);\n const printDoc = printWindow.contentDocument;\n if (!printDoc) {\n return;\n }\n const rowsMeta = gridRowsMetaSelector(apiRef.current.state);\n const gridRootElement = apiRef.current.rootElementRef.current;\n const gridClone = gridRootElement.cloneNode(true);\n\n // Allow to overflow to not hide the border of the last row\n const gridMain = gridClone.querySelector(`.${gridClasses.main}`);\n gridMain.style.overflow = 'visible';\n\n // See https://support.google.com/chrome/thread/191619088?hl=en&msgid=193009642\n gridClone.style.contain = 'size';\n let gridToolbarElementHeight = gridRootElement.querySelector(`.${gridClasses.toolbarContainer}`)?.offsetHeight || 0;\n let gridFooterElementHeight = gridRootElement.querySelector(`.${gridClasses.footerContainer}`)?.offsetHeight || 0;\n if (normalizeOptions.hideToolbar) {\n gridClone.querySelector(`.${gridClasses.toolbarContainer}`)?.remove();\n gridToolbarElementHeight = 0;\n }\n if (normalizeOptions.hideFooter) {\n gridClone.querySelector(`.${gridClasses.footerContainer}`)?.remove();\n gridFooterElementHeight = 0;\n }\n\n // Expand container height to accommodate all rows\n const computedTotalHeight = rowsMeta.currentPageTotalHeight + getTotalHeaderHeight(apiRef, props) + gridToolbarElementHeight + gridFooterElementHeight;\n gridClone.style.height = `${computedTotalHeight}px`;\n // The height above does not include grid border width, so we need to exclude it\n gridClone.style.boxSizing = 'content-box';\n if (!normalizeOptions.hideFooter) {\n // the footer is always being placed at the bottom of the page as if all rows are exported\n // so if getRowsToExport is being used to only export a subset of rows then we need to\n // adjust the footer position to be correctly placed at the bottom of the grid\n const gridFooterElement = gridClone.querySelector(`.${gridClasses.footerContainer}`);\n gridFooterElement.style.position = 'absolute';\n gridFooterElement.style.width = '100%';\n gridFooterElement.style.top = `${computedTotalHeight - gridFooterElementHeight}px`;\n }\n\n // printDoc.body.appendChild(gridClone); should be enough but a clone isolation bug in Safari\n // prevents us to do it\n const container = document.createElement('div');\n container.appendChild(gridClone);\n // To avoid an empty page in start on Chromium based browsers\n printDoc.body.style.marginTop = '0px';\n printDoc.body.innerHTML = container.innerHTML;\n const defaultPageStyle = typeof normalizeOptions.pageStyle === 'function' ? normalizeOptions.pageStyle() : normalizeOptions.pageStyle;\n if (typeof defaultPageStyle === 'string') {\n // TODO custom styles should always win\n const styleElement = printDoc.createElement('style');\n styleElement.appendChild(printDoc.createTextNode(defaultPageStyle));\n printDoc.head.appendChild(styleElement);\n }\n if (normalizeOptions.bodyClassName) {\n printDoc.body.classList.add(...normalizeOptions.bodyClassName.split(' '));\n }\n const stylesheetLoadPromises = [];\n if (normalizeOptions.copyStyles) {\n const rootCandidate = gridRootElement.getRootNode();\n const root = rootCandidate.constructor.name === 'ShadowRoot' ? rootCandidate : doc.current;\n const headStyleElements = root.querySelectorAll(\"style, link[rel='stylesheet']\");\n for (let i = 0; i < headStyleElements.length; i += 1) {\n const node = headStyleElements[i];\n if (node.tagName === 'STYLE') {\n const newHeadStyleElements = printDoc.createElement(node.tagName);\n const sheet = node.sheet;\n if (sheet) {\n let styleCSS = '';\n // NOTE: for-of is not supported by IE\n for (let j = 0; j < sheet.cssRules.length; j += 1) {\n if (typeof sheet.cssRules[j].cssText === 'string') {\n styleCSS += `${sheet.cssRules[j].cssText}\\r\\n`;\n }\n }\n newHeadStyleElements.appendChild(printDoc.createTextNode(styleCSS));\n printDoc.head.appendChild(newHeadStyleElements);\n }\n } else if (node.getAttribute('href')) {\n // If `href` tag is empty, avoid loading these links\n\n const newHeadStyleElements = printDoc.createElement(node.tagName);\n for (let j = 0; j < node.attributes.length; j += 1) {\n const attr = node.attributes[j];\n if (attr) {\n newHeadStyleElements.setAttribute(attr.nodeName, attr.nodeValue || '');\n }\n }\n stylesheetLoadPromises.push(new Promise(resolve => {\n newHeadStyleElements.addEventListener('load', () => resolve());\n }));\n printDoc.head.appendChild(newHeadStyleElements);\n }\n }\n }\n\n // Trigger print\n if (process.env.NODE_ENV !== 'test') {\n // wait for remote stylesheets to load\n Promise.all(stylesheetLoadPromises).then(() => {\n printWindow.contentWindow.print();\n });\n }\n }, [apiRef, doc, props]);\n const handlePrintWindowAfterPrint = React.useCallback(printWindow => {\n // Remove the print iframe\n doc.current.body.removeChild(printWindow);\n\n // Revert grid to previous state\n apiRef.current.restoreState(previousGridState.current || {});\n if (!previousGridState.current?.columns?.columnVisibilityModel) {\n // if the apiRef.current.exportState(); did not exported the column visibility, we update it\n apiRef.current.setColumnVisibilityModel(previousColumnVisibility.current);\n }\n apiRef.current.setState(state => _extends({}, state, {\n virtualization: previousVirtualizationState.current\n }));\n apiRef.current.setRows(previousRows.current);\n\n // Clear local state\n previousGridState.current = null;\n previousColumnVisibility.current = {};\n previousRows.current = [];\n }, [apiRef]);\n const exportDataAsPrint = React.useCallback(async options => {\n logger.debug(`Export data as Print`);\n if (!apiRef.current.rootElementRef.current) {\n throw new Error('MUI X: No grid root element available.');\n }\n previousGridState.current = apiRef.current.exportState();\n // It appends that the visibility model is not exported, especially if columnVisibility is not controlled\n previousColumnVisibility.current = gridColumnVisibilityModelSelector(apiRef);\n previousRows.current = apiRef.current.getSortedRows().filter(row => !row[GRID_ID_AUTOGENERATED]);\n if (props.pagination) {\n const visibleRowCount = gridExpandedRowCountSelector(apiRef);\n const paginationModel = {\n page: 0,\n pageSize: visibleRowCount\n };\n apiRef.current.setState(state => _extends({}, state, {\n pagination: _extends({}, state.pagination, {\n paginationModel: getDerivedPaginationModel(state.pagination,\n // Using signature `DataGridPro` to allow more than 100 rows in the print export\n 'DataGridPro', paginationModel)\n })\n }));\n }\n previousVirtualizationState.current = apiRef.current.state.virtualization;\n apiRef.current.setState(state => _extends({}, state, {\n virtualization: _extends({}, state.virtualization, {\n enabled: false,\n enabledForColumns: false\n })\n }));\n await updateGridColumnsForPrint(options?.fields, options?.allColumns, options?.includeCheckboxes);\n updateGridRowsForPrint(options?.getRowsToExport ?? defaultGetRowsToExport);\n await raf(); // wait for the state changes to take action\n const printWindow = buildPrintWindow(options?.fileName);\n if (process.env.NODE_ENV === 'test') {\n doc.current.body.appendChild(printWindow);\n // In test env, run the all pipeline without waiting for loading\n handlePrintWindowLoad(printWindow, options);\n handlePrintWindowAfterPrint(printWindow);\n } else {\n printWindow.onload = () => {\n handlePrintWindowLoad(printWindow, options);\n const mediaQueryList = printWindow.contentWindow.matchMedia('print');\n mediaQueryList.addEventListener('change', mql => {\n const isAfterPrint = mql.matches === false;\n if (isAfterPrint) {\n handlePrintWindowAfterPrint(printWindow);\n }\n });\n };\n doc.current.body.appendChild(printWindow);\n }\n }, [props, logger, apiRef, handlePrintWindowLoad, handlePrintWindowAfterPrint, updateGridColumnsForPrint, updateGridRowsForPrint]);\n const printExportApi = {\n exportDataAsPrint\n };\n useGridApiMethod(apiRef, printExportApi, 'public');\n\n /**\n * PRE-PROCESSING\n */\n const addExportMenuButtons = React.useCallback((initialValue, options) => {\n if (options.printOptions?.disableToolbarButton) {\n return initialValue;\n }\n return [...initialValue, {\n component: /*#__PURE__*/_jsx(GridPrintExportMenuItem, {\n options: options.printOptions\n }),\n componentName: 'printExport'\n }];\n }, []);\n useGridRegisterPipeProcessor(apiRef, 'exportMenu', addExportMenuButtons);\n};","import * as React from 'react';\nimport { useFirstRender } from \"../../utils/useFirstRender.js\";\nexport const useGridRegisterStrategyProcessor = (apiRef, strategyName, group, processor) => {\n const registerPreProcessor = React.useCallback(() => {\n apiRef.current.registerStrategyProcessor(strategyName, group, processor);\n }, [apiRef, processor, group, strategyName]);\n useFirstRender(() => {\n registerPreProcessor();\n });\n const isFirstRender = React.useRef(true);\n React.useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n } else {\n registerPreProcessor();\n }\n }, [registerPreProcessor]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { lruMemoize } from 'reselect';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { useLazyRef } from \"../../utils/useLazyRef.js\";\nimport { useGridApiEventHandler } from \"../../utils/useGridApiEventHandler.js\";\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { useGridLogger } from \"../../utils/useGridLogger.js\";\nimport { gridColumnLookupSelector } from \"../columns/gridColumnsSelector.js\";\nimport { GridPreferencePanelsValue } from \"../preferencesPanel/gridPreferencePanelsValue.js\";\nimport { getDefaultGridFilterModel } from \"./gridFilterState.js\";\nimport { gridFilterModelSelector } from \"./gridFilterSelector.js\";\nimport { useFirstRender } from \"../../utils/useFirstRender.js\";\nimport { gridRowsLookupSelector } from \"../rows/index.js\";\nimport { useGridRegisterPipeProcessor } from \"../../core/pipeProcessing/index.js\";\nimport { GRID_DEFAULT_STRATEGY, useGridRegisterStrategyProcessor } from \"../../core/strategyProcessing/index.js\";\nimport { buildAggregatedFilterApplier, sanitizeFilterModel, mergeStateWithFilterModel, cleanFilterItem, passFilterLogic, shouldQuickFilterExcludeHiddenColumns } from \"./gridFilterUtils.js\";\nimport { isDeepEqual } from \"../../../utils/utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const filterStateInitializer = (state, props, apiRef) => {\n const filterModel = props.filterModel ?? props.initialState?.filter?.filterModel ?? getDefaultGridFilterModel();\n return _extends({}, state, {\n filter: {\n filterModel: sanitizeFilterModel(filterModel, props.disableMultipleColumnsFiltering, apiRef),\n filteredRowsLookup: {},\n filteredChildrenCountLookup: {},\n filteredDescendantCountLookup: {}\n },\n visibleRowsLookup: {}\n });\n};\nconst getVisibleRowsLookup = params => {\n // For flat tree, the `visibleRowsLookup` and the `filteredRowsLookup` are equals since no row is collapsed.\n return params.filteredRowsLookup;\n};\nfunction getVisibleRowsLookupState(apiRef, state) {\n return apiRef.current.applyStrategyProcessor('visibleRowsLookupCreation', {\n tree: state.rows.tree,\n filteredRowsLookup: state.filter.filteredRowsLookup\n });\n}\nfunction createMemoizedValues() {\n return lruMemoize(Object.values);\n}\n\n/**\n * @requires useGridColumns (method, event)\n * @requires useGridParamsApi (method)\n * @requires useGridRows (event)\n */\nexport const useGridFilter = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridFilter');\n apiRef.current.registerControlState({\n stateId: 'filter',\n propModel: props.filterModel,\n propOnChange: props.onFilterModelChange,\n stateSelector: gridFilterModelSelector,\n changeEvent: 'filterModelChange'\n });\n const updateFilteredRows = React.useCallback(() => {\n apiRef.current.setState(state => {\n const filterModel = gridFilterModelSelector(state, apiRef.current.instanceId);\n const filterState = apiRef.current.getFilterState(filterModel);\n const newState = _extends({}, state, {\n filter: _extends({}, state.filter, filterState)\n });\n const visibleRowsLookupState = getVisibleRowsLookupState(apiRef, newState);\n return _extends({}, newState, {\n visibleRowsLookup: visibleRowsLookupState\n });\n });\n apiRef.current.publishEvent('filteredRowsSet');\n }, [apiRef]);\n const addColumnMenuItem = React.useCallback((columnMenuItems, colDef) => {\n if (colDef == null || colDef.filterable === false || props.disableColumnFilter) {\n return columnMenuItems;\n }\n return [...columnMenuItems, 'columnMenuFilterItem'];\n }, [props.disableColumnFilter]);\n\n /**\n * API METHODS\n */\n const applyFilters = React.useCallback(() => {\n updateFilteredRows();\n apiRef.current.forceUpdate();\n }, [apiRef, updateFilteredRows]);\n const upsertFilterItem = React.useCallback(item => {\n const filterModel = gridFilterModelSelector(apiRef);\n const items = [...filterModel.items];\n const itemIndex = items.findIndex(filterItem => filterItem.id === item.id);\n if (itemIndex === -1) {\n items.push(item);\n } else {\n items[itemIndex] = item;\n }\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items\n }), 'upsertFilterItem');\n }, [apiRef]);\n const upsertFilterItems = React.useCallback(items => {\n const filterModel = gridFilterModelSelector(apiRef);\n const existingItems = [...filterModel.items];\n items.forEach(item => {\n const itemIndex = existingItems.findIndex(filterItem => filterItem.id === item.id);\n if (itemIndex === -1) {\n existingItems.push(item);\n } else {\n existingItems[itemIndex] = item;\n }\n });\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items: existingItems\n }), 'upsertFilterItems');\n }, [apiRef]);\n const deleteFilterItem = React.useCallback(itemToDelete => {\n const filterModel = gridFilterModelSelector(apiRef);\n const items = filterModel.items.filter(item => item.id !== itemToDelete.id);\n if (items.length === filterModel.items.length) {\n return;\n }\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items\n }), 'deleteFilterItem');\n }, [apiRef]);\n const showFilterPanel = React.useCallback((targetColumnField, panelId, labelId) => {\n logger.debug('Displaying filter panel');\n if (targetColumnField) {\n const filterModel = gridFilterModelSelector(apiRef);\n const filterItemsWithValue = filterModel.items.filter(item => {\n if (item.value !== undefined) {\n // Some filters like `isAnyOf` support array as `item.value`.\n // If array is empty, we want to remove it from the filter model.\n if (Array.isArray(item.value) && item.value.length === 0) {\n return false;\n }\n return true;\n }\n const column = apiRef.current.getColumn(item.field);\n const filterOperator = column.filterOperators?.find(operator => operator.value === item.operator);\n const requiresFilterValue = typeof filterOperator?.requiresFilterValue === 'undefined' ? true : filterOperator?.requiresFilterValue;\n\n // Operators like `isEmpty` don't have and don't require `item.value`.\n // So we don't want to remove them from the filter model if `item.value === undefined`.\n // See https://github.com/mui/mui-x/issues/5402\n if (requiresFilterValue) {\n return false;\n }\n return true;\n });\n let newFilterItems;\n const filterItemOnTarget = filterItemsWithValue.find(item => item.field === targetColumnField);\n const targetColumn = apiRef.current.getColumn(targetColumnField);\n if (filterItemOnTarget) {\n newFilterItems = filterItemsWithValue;\n } else if (props.disableMultipleColumnsFiltering) {\n newFilterItems = [cleanFilterItem({\n field: targetColumnField,\n operator: targetColumn.filterOperators[0].value\n }, apiRef)];\n } else {\n newFilterItems = [...filterItemsWithValue, cleanFilterItem({\n field: targetColumnField,\n operator: targetColumn.filterOperators[0].value\n }, apiRef)];\n }\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items: newFilterItems\n }));\n }\n apiRef.current.showPreferences(GridPreferencePanelsValue.filters, panelId, labelId);\n }, [apiRef, logger, props.disableMultipleColumnsFiltering]);\n const hideFilterPanel = React.useCallback(() => {\n logger.debug('Hiding filter panel');\n apiRef.current.hidePreferences();\n }, [apiRef, logger]);\n const setFilterLogicOperator = React.useCallback(logicOperator => {\n const filterModel = gridFilterModelSelector(apiRef);\n if (filterModel.logicOperator === logicOperator) {\n return;\n }\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n logicOperator\n }), 'changeLogicOperator');\n }, [apiRef]);\n const setQuickFilterValues = React.useCallback(values => {\n const filterModel = gridFilterModelSelector(apiRef);\n if (isDeepEqual(filterModel.quickFilterValues, values)) {\n return;\n }\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n quickFilterValues: [...values]\n }));\n }, [apiRef]);\n const setFilterModel = React.useCallback((model, reason) => {\n const currentModel = gridFilterModelSelector(apiRef);\n if (currentModel !== model) {\n logger.debug('Setting filter model');\n apiRef.current.updateControlState('filter', mergeStateWithFilterModel(model, props.disableMultipleColumnsFiltering, apiRef), reason);\n apiRef.current.unstable_applyFilters();\n }\n }, [apiRef, logger, props.disableMultipleColumnsFiltering]);\n const getFilterState = React.useCallback(inputFilterModel => {\n const filterModel = sanitizeFilterModel(inputFilterModel, props.disableMultipleColumnsFiltering, apiRef);\n const isRowMatchingFilters = props.filterMode === 'client' ? buildAggregatedFilterApplier(filterModel, apiRef, props.disableEval) : null;\n const filterResult = apiRef.current.applyStrategyProcessor('filtering', {\n isRowMatchingFilters,\n filterModel: filterModel ?? getDefaultGridFilterModel()\n });\n return _extends({}, filterResult, {\n filterModel\n });\n }, [props.disableMultipleColumnsFiltering, props.filterMode, props.disableEval, apiRef]);\n const filterApi = {\n setFilterLogicOperator,\n unstable_applyFilters: applyFilters,\n deleteFilterItem,\n upsertFilterItem,\n upsertFilterItems,\n setFilterModel,\n showFilterPanel,\n hideFilterPanel,\n setQuickFilterValues,\n ignoreDiacritics: props.ignoreDiacritics,\n getFilterState\n };\n useGridApiMethod(apiRef, filterApi, 'public');\n\n /**\n * PRE-PROCESSING\n */\n const stateExportPreProcessing = React.useCallback((prevState, context) => {\n const filterModelToExport = gridFilterModelSelector(apiRef);\n const shouldExportFilterModel =\n // Always export if the `exportOnlyDirtyModels` property is not activated\n !context.exportOnlyDirtyModels ||\n // Always export if the model is controlled\n props.filterModel != null ||\n // Always export if the model has been initialized\n props.initialState?.filter?.filterModel != null ||\n // Export if the model is not equal to the default value\n !isDeepEqual(filterModelToExport, getDefaultGridFilterModel());\n if (!shouldExportFilterModel) {\n return prevState;\n }\n return _extends({}, prevState, {\n filter: {\n filterModel: filterModelToExport\n }\n });\n }, [apiRef, props.filterModel, props.initialState?.filter?.filterModel]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n const filterModel = context.stateToRestore.filter?.filterModel;\n if (filterModel == null) {\n return params;\n }\n apiRef.current.updateControlState('filter', mergeStateWithFilterModel(filterModel, props.disableMultipleColumnsFiltering, apiRef), 'restoreState');\n return _extends({}, params, {\n callbacks: [...params.callbacks, apiRef.current.unstable_applyFilters]\n });\n }, [apiRef, props.disableMultipleColumnsFiltering]);\n const preferencePanelPreProcessing = React.useCallback((initialValue, value) => {\n if (value === GridPreferencePanelsValue.filters) {\n const FilterPanel = props.slots.filterPanel;\n return /*#__PURE__*/_jsx(FilterPanel, _extends({}, props.slotProps?.filterPanel));\n }\n return initialValue;\n }, [props.slots.filterPanel, props.slotProps?.filterPanel]);\n const {\n getRowId\n } = props;\n const getRowsRef = useLazyRef(createMemoizedValues);\n const flatFilteringMethod = React.useCallback(params => {\n if (props.filterMode !== 'client' || !params.isRowMatchingFilters) {\n return {\n filteredRowsLookup: {},\n filteredChildrenCountLookup: {},\n filteredDescendantCountLookup: {}\n };\n }\n const dataRowIdToModelLookup = gridRowsLookupSelector(apiRef);\n const filteredRowsLookup = {};\n const {\n isRowMatchingFilters\n } = params;\n const filterCache = {};\n const result = {\n passingFilterItems: null,\n passingQuickFilterValues: null\n };\n const rows = getRowsRef.current(apiRef.current.state.rows.dataRowIdToModelLookup);\n for (let i = 0; i < rows.length; i += 1) {\n const row = rows[i];\n const id = getRowId ? getRowId(row) : row.id;\n isRowMatchingFilters(row, undefined, result);\n const isRowPassing = passFilterLogic([result.passingFilterItems], [result.passingQuickFilterValues], params.filterModel, apiRef, filterCache);\n filteredRowsLookup[id] = isRowPassing;\n }\n const footerId = 'auto-generated-group-footer-root';\n const footer = dataRowIdToModelLookup[footerId];\n if (footer) {\n filteredRowsLookup[footerId] = true;\n }\n return {\n filteredRowsLookup,\n filteredChildrenCountLookup: {},\n filteredDescendantCountLookup: {}\n };\n }, [apiRef, props.filterMode, getRowId, getRowsRef]);\n useGridRegisterPipeProcessor(apiRef, 'columnMenu', addColumnMenuItem);\n useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'preferencePanel', preferencePanelPreProcessing);\n useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'filtering', flatFilteringMethod);\n useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'visibleRowsLookupCreation', getVisibleRowsLookup);\n\n /**\n * EVENTS\n */\n const handleColumnsChange = React.useCallback(() => {\n logger.debug('onColUpdated - GridColumns changed, applying filters');\n const filterModel = gridFilterModelSelector(apiRef);\n const columnsLookup = gridColumnLookupSelector(apiRef);\n const newFilterItems = filterModel.items.filter(item => item.field && columnsLookup[item.field]);\n if (newFilterItems.length < filterModel.items.length) {\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items: newFilterItems\n }));\n }\n }, [apiRef, logger]);\n const handleStrategyProcessorChange = React.useCallback(methodName => {\n if (methodName === 'filtering') {\n apiRef.current.unstable_applyFilters();\n }\n }, [apiRef]);\n const updateVisibleRowsLookupState = React.useCallback(() => {\n apiRef.current.setState(state => {\n return _extends({}, state, {\n visibleRowsLookup: getVisibleRowsLookupState(apiRef, state)\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef]);\n\n // Do not call `apiRef.current.forceUpdate` to avoid re-render before updating the sorted rows.\n // Otherwise, the state is not consistent during the render\n useGridApiEventHandler(apiRef, 'rowsSet', updateFilteredRows);\n useGridApiEventHandler(apiRef, 'columnsChange', handleColumnsChange);\n useGridApiEventHandler(apiRef, 'activeStrategyProcessorChange', handleStrategyProcessorChange);\n useGridApiEventHandler(apiRef, 'rowExpansionChange', updateVisibleRowsLookupState);\n useGridApiEventHandler(apiRef, 'columnVisibilityModelChange', () => {\n const filterModel = gridFilterModelSelector(apiRef);\n if (filterModel.quickFilterValues && shouldQuickFilterExcludeHiddenColumns(filterModel)) {\n // re-apply filters because the quick filter results may have changed\n apiRef.current.unstable_applyFilters();\n }\n });\n\n /**\n * 1ST RENDER\n */\n useFirstRender(() => {\n apiRef.current.unstable_applyFilters();\n });\n\n /**\n * EFFECTS\n */\n useEnhancedEffect(() => {\n if (props.filterModel !== undefined) {\n apiRef.current.setFilterModel(props.filterModel);\n }\n }, [apiRef, logger, props.filterModel]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_ownerDocument as ownerDocument, unstable_useEventCallback as useEventcallback } from '@mui/utils';\nimport { gridClasses } from \"../../../constants/gridClasses.js\";\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { useGridLogger } from \"../../utils/useGridLogger.js\";\nimport { useGridApiEventHandler } from \"../../utils/useGridApiEventHandler.js\";\nimport { isNavigationKey } from \"../../../utils/keyboardUtils.js\";\nimport { gridFocusCellSelector, gridFocusColumnGroupHeaderSelector } from \"./gridFocusStateSelector.js\";\nimport { gridVisibleColumnDefinitionsSelector } from \"../columns/gridColumnsSelector.js\";\nimport { getVisibleRows } from \"../../utils/useGridVisibleRows.js\";\nimport { clamp } from \"../../../utils/utils.js\";\nimport { gridPinnedRowsSelector } from \"../rows/gridRowsSelector.js\";\nexport const focusStateInitializer = state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null,\n columnHeaderFilter: null,\n columnGroupHeader: null\n },\n tabIndex: {\n cell: null,\n columnHeader: null,\n columnHeaderFilter: null,\n columnGroupHeader: null\n }\n});\n\n/**\n * @requires useGridParamsApi (method)\n * @requires useGridRows (method)\n * @requires useGridEditing (event)\n */\nexport const useGridFocus = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridFocus');\n const lastClickedCell = React.useRef(null);\n const hasRootReference = apiRef.current.rootElementRef.current !== null;\n const publishCellFocusOut = React.useCallback((cell, event) => {\n if (cell) {\n // The row might have been deleted\n if (apiRef.current.getRow(cell.id)) {\n apiRef.current.publishEvent('cellFocusOut', apiRef.current.getCellParams(cell.id, cell.field), event);\n }\n }\n }, [apiRef]);\n const setCellFocus = React.useCallback((id, field) => {\n const focusedCell = gridFocusCellSelector(apiRef);\n if (focusedCell?.id === id && focusedCell?.field === field) {\n return;\n }\n apiRef.current.setState(state => {\n logger.debug(`Focusing on cell with id=${id} and field=${field}`);\n return _extends({}, state, {\n tabIndex: {\n cell: {\n id,\n field\n },\n columnHeader: null,\n columnHeaderFilter: null,\n columnGroupHeader: null\n },\n focus: {\n cell: {\n id,\n field\n },\n columnHeader: null,\n columnHeaderFilter: null,\n columnGroupHeader: null\n }\n });\n });\n apiRef.current.forceUpdate();\n\n // The row might have been deleted\n if (!apiRef.current.getRow(id)) {\n return;\n }\n if (focusedCell) {\n // There's a focused cell but another cell was clicked\n // Publishes an event to notify that the focus was lost\n publishCellFocusOut(focusedCell, {});\n }\n apiRef.current.publishEvent('cellFocusIn', apiRef.current.getCellParams(id, field));\n }, [apiRef, logger, publishCellFocusOut]);\n const setColumnHeaderFocus = React.useCallback((field, event = {}) => {\n const cell = gridFocusCellSelector(apiRef);\n publishCellFocusOut(cell, event);\n apiRef.current.setState(state => {\n logger.debug(`Focusing on column header with colIndex=${field}`);\n return _extends({}, state, {\n tabIndex: {\n columnHeader: {\n field\n },\n columnHeaderFilter: null,\n cell: null,\n columnGroupHeader: null\n },\n focus: {\n columnHeader: {\n field\n },\n columnHeaderFilter: null,\n cell: null,\n columnGroupHeader: null\n }\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef, logger, publishCellFocusOut]);\n const setColumnHeaderFilterFocus = React.useCallback((field, event = {}) => {\n const cell = gridFocusCellSelector(apiRef);\n publishCellFocusOut(cell, event);\n apiRef.current.setState(state => {\n logger.debug(`Focusing on column header filter with colIndex=${field}`);\n return _extends({}, state, {\n tabIndex: {\n columnHeader: null,\n columnHeaderFilter: {\n field\n },\n cell: null,\n columnGroupHeader: null\n },\n focus: {\n columnHeader: null,\n columnHeaderFilter: {\n field\n },\n cell: null,\n columnGroupHeader: null\n }\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef, logger, publishCellFocusOut]);\n const setColumnGroupHeaderFocus = React.useCallback((field, depth, event = {}) => {\n const cell = gridFocusCellSelector(apiRef);\n if (cell) {\n apiRef.current.publishEvent('cellFocusOut', apiRef.current.getCellParams(cell.id, cell.field), event);\n }\n apiRef.current.setState(state => {\n return _extends({}, state, {\n tabIndex: {\n columnGroupHeader: {\n field,\n depth\n },\n columnHeader: null,\n columnHeaderFilter: null,\n cell: null\n },\n focus: {\n columnGroupHeader: {\n field,\n depth\n },\n columnHeader: null,\n columnHeaderFilter: null,\n cell: null\n }\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef]);\n const getColumnGroupHeaderFocus = React.useCallback(() => gridFocusColumnGroupHeaderSelector(apiRef), [apiRef]);\n const moveFocusToRelativeCell = React.useCallback((id, field, direction) => {\n let columnIndexToFocus = apiRef.current.getColumnIndex(field);\n const visibleColumns = gridVisibleColumnDefinitionsSelector(apiRef);\n const currentPage = getVisibleRows(apiRef, {\n pagination: props.pagination,\n paginationMode: props.paginationMode\n });\n const pinnedRows = gridPinnedRowsSelector(apiRef);\n\n // Include pinned rows as well\n const currentPageRows = [].concat(pinnedRows.top || [], currentPage.rows, pinnedRows.bottom || []);\n let rowIndexToFocus = currentPageRows.findIndex(row => row.id === id);\n if (direction === 'right') {\n columnIndexToFocus += 1;\n } else if (direction === 'left') {\n columnIndexToFocus -= 1;\n } else {\n rowIndexToFocus += 1;\n }\n if (columnIndexToFocus >= visibleColumns.length) {\n // Go to next row if we are after the last column\n rowIndexToFocus += 1;\n if (rowIndexToFocus < currentPageRows.length) {\n // Go to first column of the next row if there's one more row\n columnIndexToFocus = 0;\n }\n } else if (columnIndexToFocus < 0) {\n // Go to previous row if we are before the first column\n rowIndexToFocus -= 1;\n if (rowIndexToFocus >= 0) {\n // Go to last column of the previous if there's one more row\n columnIndexToFocus = visibleColumns.length - 1;\n }\n }\n rowIndexToFocus = clamp(rowIndexToFocus, 0, currentPageRows.length - 1);\n const rowToFocus = currentPageRows[rowIndexToFocus];\n if (!rowToFocus) {\n return;\n }\n const colSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowToFocus.id, columnIndexToFocus);\n if (colSpanInfo && colSpanInfo.spannedByColSpan) {\n if (direction === 'left' || direction === 'below') {\n columnIndexToFocus = colSpanInfo.leftVisibleCellIndex;\n } else if (direction === 'right') {\n columnIndexToFocus = colSpanInfo.rightVisibleCellIndex;\n }\n }\n columnIndexToFocus = clamp(columnIndexToFocus, 0, visibleColumns.length - 1);\n const columnToFocus = visibleColumns[columnIndexToFocus];\n apiRef.current.setCellFocus(rowToFocus.id, columnToFocus.field);\n }, [apiRef, props.pagination, props.paginationMode]);\n const handleCellDoubleClick = React.useCallback(({\n id,\n field\n }) => {\n apiRef.current.setCellFocus(id, field);\n }, [apiRef]);\n const handleCellKeyDown = React.useCallback((params, event) => {\n // GRID_CELL_NAVIGATION_KEY_DOWN handles the focus on Enter, Tab and navigation keys\n if (event.key === 'Enter' || event.key === 'Tab' || event.key === 'Shift' || isNavigationKey(event.key)) {\n return;\n }\n apiRef.current.setCellFocus(params.id, params.field);\n }, [apiRef]);\n const handleColumnHeaderFocus = React.useCallback(({\n field\n }, event) => {\n if (event.target !== event.currentTarget) {\n return;\n }\n apiRef.current.setColumnHeaderFocus(field, event);\n }, [apiRef]);\n const handleColumnGroupHeaderFocus = React.useCallback(({\n fields,\n depth\n }, event) => {\n if (event.target !== event.currentTarget) {\n return;\n }\n const focusedColumnGroup = gridFocusColumnGroupHeaderSelector(apiRef);\n if (focusedColumnGroup !== null && focusedColumnGroup.depth === depth && fields.includes(focusedColumnGroup.field)) {\n // This group cell has already been focused\n return;\n }\n apiRef.current.setColumnGroupHeaderFocus(fields[0], depth, event);\n }, [apiRef]);\n const handleBlur = React.useCallback((_, event) => {\n if (event.relatedTarget?.getAttribute('class')?.includes(gridClasses.columnHeader)) {\n return;\n }\n logger.debug(`Clearing focus`);\n apiRef.current.setState(state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null,\n columnHeaderFilter: null,\n columnGroupHeader: null\n }\n }));\n }, [logger, apiRef]);\n const handleCellMouseDown = React.useCallback(params => {\n lastClickedCell.current = params;\n }, []);\n const handleDocumentClick = React.useCallback(event => {\n const cellParams = lastClickedCell.current;\n lastClickedCell.current = null;\n const focusedCell = gridFocusCellSelector(apiRef);\n const canUpdateFocus = apiRef.current.unstable_applyPipeProcessors('canUpdateFocus', true, {\n event,\n cell: cellParams\n });\n if (!canUpdateFocus) {\n return;\n }\n if (!focusedCell) {\n if (cellParams) {\n apiRef.current.setCellFocus(cellParams.id, cellParams.field);\n }\n return;\n }\n if (cellParams?.id === focusedCell.id && cellParams?.field === focusedCell.field) {\n return;\n }\n const cellElement = apiRef.current.getCellElement(focusedCell.id, focusedCell.field);\n if (cellElement?.contains(event.target)) {\n return;\n }\n if (cellParams) {\n apiRef.current.setCellFocus(cellParams.id, cellParams.field);\n } else {\n apiRef.current.setState(state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null,\n columnHeaderFilter: null,\n columnGroupHeader: null\n }\n }));\n apiRef.current.forceUpdate();\n\n // There's a focused cell but another element (not a cell) was clicked\n // Publishes an event to notify that the focus was lost\n publishCellFocusOut(focusedCell, event);\n }\n }, [apiRef, publishCellFocusOut]);\n const handleCellModeChange = React.useCallback(params => {\n if (params.cellMode === 'view') {\n return;\n }\n const cell = gridFocusCellSelector(apiRef);\n if (cell?.id !== params.id || cell?.field !== params.field) {\n apiRef.current.setCellFocus(params.id, params.field);\n }\n }, [apiRef]);\n const handleRowSet = React.useCallback(() => {\n const cell = gridFocusCellSelector(apiRef);\n\n // If the focused cell is in a row which does not exist anymore,\n // focus previous row or remove the focus\n if (cell && !apiRef.current.getRow(cell.id)) {\n const lastFocusedRowId = gridFocusCellSelector(apiRef)?.id;\n let nextRowId = null;\n if (typeof lastFocusedRowId !== 'undefined') {\n const lastFocusedRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(lastFocusedRowId);\n const currentPage = getVisibleRows(apiRef, {\n pagination: props.pagination,\n paginationMode: props.paginationMode\n });\n const nextRow = currentPage.rows[clamp(lastFocusedRowIndex, 0, currentPage.rows.length - 1)];\n nextRowId = nextRow?.id ?? null;\n }\n apiRef.current.setState(state => _extends({}, state, {\n focus: {\n cell: nextRowId === null ? null : {\n id: nextRowId,\n field: cell.field\n },\n columnHeader: null,\n columnHeaderFilter: null,\n columnGroupHeader: null\n }\n }));\n }\n }, [apiRef, props.pagination, props.paginationMode]);\n const handlePaginationModelChange = useEventcallback(() => {\n const currentFocusedCell = gridFocusCellSelector(apiRef);\n if (!currentFocusedCell) {\n return;\n }\n const currentPage = getVisibleRows(apiRef, {\n pagination: props.pagination,\n paginationMode: props.paginationMode\n });\n const rowIsInCurrentPage = currentPage.rows.find(row => row.id === currentFocusedCell.id);\n if (rowIsInCurrentPage) {\n return;\n }\n const visibleColumns = gridVisibleColumnDefinitionsSelector(apiRef);\n apiRef.current.setState(state => {\n return _extends({}, state, {\n tabIndex: {\n cell: {\n id: currentPage.rows[0].id,\n field: visibleColumns[0].field\n },\n columnGroupHeader: null,\n columnHeader: null,\n columnHeaderFilter: null\n }\n });\n });\n });\n const focusApi = {\n setCellFocus,\n setColumnHeaderFocus,\n setColumnHeaderFilterFocus\n };\n const focusPrivateApi = {\n moveFocusToRelativeCell,\n setColumnGroupHeaderFocus,\n getColumnGroupHeaderFocus\n };\n useGridApiMethod(apiRef, focusApi, 'public');\n useGridApiMethod(apiRef, focusPrivateApi, 'private');\n React.useEffect(() => {\n const doc = ownerDocument(apiRef.current.rootElementRef.current);\n doc.addEventListener('mouseup', handleDocumentClick);\n return () => {\n doc.removeEventListener('mouseup', handleDocumentClick);\n };\n }, [apiRef, hasRootReference, handleDocumentClick]);\n useGridApiEventHandler(apiRef, 'columnHeaderBlur', handleBlur);\n useGridApiEventHandler(apiRef, 'cellDoubleClick', handleCellDoubleClick);\n useGridApiEventHandler(apiRef, 'cellMouseDown', handleCellMouseDown);\n useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);\n useGridApiEventHandler(apiRef, 'cellModeChange', handleCellModeChange);\n useGridApiEventHandler(apiRef, 'columnHeaderFocus', handleColumnHeaderFocus);\n useGridApiEventHandler(apiRef, 'columnGroupHeaderFocus', handleColumnGroupHeaderFocus);\n useGridApiEventHandler(apiRef, 'rowsSet', handleRowSet);\n useGridApiEventHandler(apiRef, 'paginationModelChange', handlePaginationModelChange);\n};","import { gridClasses } from \"../constants/gridClasses.js\";\nexport function isOverflown(element) {\n return element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;\n}\nexport function findParentElementFromClassName(elem, className) {\n return elem.closest(`.${className}`);\n}\n\n// TODO, eventually replaces this function with CSS.escape, once available in jsdom, either added manually or built in\n// https://github.com/jsdom/jsdom/issues/1550#issuecomment-236734471\nexport function escapeOperandAttributeSelector(operand) {\n return operand.replace(/[\"\\\\]/g, '\\\\$&');\n}\nexport function getGridColumnHeaderElement(root, field) {\n return root.querySelector(`[role=\"columnheader\"][data-field=\"${escapeOperandAttributeSelector(field)}\"]`);\n}\nfunction getGridRowElementSelector(id) {\n return `.${gridClasses.row}[data-id=\"${escapeOperandAttributeSelector(String(id))}\"]`;\n}\nexport function getGridRowElement(root, id) {\n return root.querySelector(getGridRowElementSelector(id));\n}\nexport function getGridCellElement(root, {\n id,\n field\n}) {\n const rowSelector = getGridRowElementSelector(id);\n const cellSelector = `.${gridClasses.cell}[data-field=\"${escapeOperandAttributeSelector(field)}\"]`;\n const selector = `${rowSelector} ${cellSelector}`;\n return root.querySelector(selector);\n}\n\n// https://www.abeautifulsite.net/posts/finding-the-active-element-in-a-shadow-root/\nexport const getActiveElement = (root = document) => {\n const activeEl = root.activeElement;\n if (!activeEl) {\n return null;\n }\n if (activeEl.shadowRoot) {\n return getActiveElement(activeEl.shadowRoot);\n }\n return activeEl;\n};\nexport function isEventTargetInPortal(event) {\n if (\n // The target is not an element when triggered by a Select inside the cell\n // See https://github.com/mui/material-ui/issues/10534\n event.target.nodeType === 1 && !event.currentTarget.contains(event.target)) {\n return true;\n }\n return false;\n}\nexport function getFieldFromHeaderElem(colCellEl) {\n return colCellEl.getAttribute('data-field');\n}\nexport function findHeaderElementFromField(elem, field) {\n return elem.querySelector(`[data-field=\"${escapeOperandAttributeSelector(field)}\"]`);\n}\nexport function getFieldsFromGroupHeaderElem(colCellEl) {\n return colCellEl.getAttribute('data-fields').slice(2, -2).split('-|-');\n}\nexport function findGroupHeaderElementsFromField(elem, field) {\n return Array.from(elem.querySelectorAll(`[data-fields*=\"|-${escapeOperandAttributeSelector(field)}-|\"]`) ?? []);\n}\nexport function findGridCellElementsFromCol(col, api) {\n const root = findParentElementFromClassName(col, gridClasses.root);\n if (!root) {\n throw new Error('MUI X: The root element is not found.');\n }\n const ariaColIndex = col.getAttribute('aria-colindex');\n if (!ariaColIndex) {\n return [];\n }\n const colIndex = Number(ariaColIndex) - 1;\n const cells = [];\n if (!api.virtualScrollerRef?.current) {\n return [];\n }\n queryRows(api).forEach(rowElement => {\n const rowId = rowElement.getAttribute('data-id');\n if (!rowId) {\n return;\n }\n let columnIndex = colIndex;\n const cellColSpanInfo = api.unstable_getCellColSpanInfo(rowId, colIndex);\n if (cellColSpanInfo && cellColSpanInfo.spannedByColSpan) {\n columnIndex = cellColSpanInfo.leftVisibleCellIndex;\n }\n const cell = rowElement.querySelector(`[data-colindex=\"${columnIndex}\"]`);\n if (cell) {\n cells.push(cell);\n }\n });\n return cells;\n}\nexport function findGridElement(api, klass) {\n return api.rootElementRef.current.querySelector(`.${gridClasses[klass]}`);\n}\nconst findPinnedCells = ({\n api,\n colIndex,\n position,\n filterFn\n}) => {\n if (colIndex === null) {\n return [];\n }\n const cells = [];\n queryRows(api).forEach(rowElement => {\n const rowId = rowElement.getAttribute('data-id');\n if (!rowId) {\n return;\n }\n rowElement.querySelectorAll(`.${gridClasses[position === 'left' ? 'cell--pinnedLeft' : 'cell--pinnedRight']}`).forEach(cell => {\n const currentColIndex = parseCellColIndex(cell);\n if (currentColIndex !== null && filterFn(currentColIndex)) {\n cells.push(cell);\n }\n });\n });\n return cells;\n};\nexport function findLeftPinnedCellsAfterCol(api, col, isRtl) {\n const colIndex = parseCellColIndex(col);\n return findPinnedCells({\n api,\n colIndex,\n position: isRtl ? 'right' : 'left',\n filterFn: index => isRtl ? index < colIndex : index > colIndex\n });\n}\nexport function findRightPinnedCellsBeforeCol(api, col, isRtl) {\n const colIndex = parseCellColIndex(col);\n return findPinnedCells({\n api,\n colIndex,\n position: isRtl ? 'left' : 'right',\n filterFn: index => isRtl ? index > colIndex : index < colIndex\n });\n}\nconst findPinnedHeaders = ({\n api,\n colIndex,\n position,\n filterFn\n}) => {\n if (!api.columnHeadersContainerRef?.current) {\n return [];\n }\n if (colIndex === null) {\n return [];\n }\n const elements = [];\n api.columnHeadersContainerRef.current.querySelectorAll(`.${gridClasses[position === 'left' ? 'columnHeader--pinnedLeft' : 'columnHeader--pinnedRight']}`).forEach(element => {\n const currentColIndex = parseCellColIndex(element);\n if (currentColIndex !== null && filterFn(currentColIndex)) {\n elements.push(element);\n }\n });\n return elements;\n};\nexport function findLeftPinnedHeadersAfterCol(api, col, isRtl) {\n const colIndex = parseCellColIndex(col);\n return findPinnedHeaders({\n api,\n position: isRtl ? 'right' : 'left',\n colIndex,\n filterFn: index => isRtl ? index < colIndex : index > colIndex\n });\n}\nexport function findRightPinnedHeadersBeforeCol(api, col, isRtl) {\n const colIndex = parseCellColIndex(col);\n return findPinnedHeaders({\n api,\n position: isRtl ? 'left' : 'right',\n colIndex,\n filterFn: index => isRtl ? index > colIndex : index < colIndex\n });\n}\nexport function findGridHeader(api, field) {\n const headers = api.columnHeadersContainerRef.current;\n return headers.querySelector(`:scope > div > [data-field=\"${escapeOperandAttributeSelector(field)}\"][role=\"columnheader\"]`);\n}\nexport function findGridCells(api, field) {\n const container = api.virtualScrollerRef.current;\n return Array.from(container.querySelectorAll(`:scope > div > div > div > [data-field=\"${escapeOperandAttributeSelector(field)}\"][role=\"gridcell\"]`));\n}\nfunction queryRows(api) {\n return api.virtualScrollerRef.current.querySelectorAll(\n // Use > to ignore rows from nested Data Grids (for example in detail panel)\n `:scope > div > div > .${gridClasses.row}`);\n}\nfunction parseCellColIndex(col) {\n const ariaColIndex = col.getAttribute('aria-colindex');\n if (!ariaColIndex) {\n return null;\n }\n return Number(ariaColIndex) - 1;\n}","import { gridFilteredSortedRowIdsSelector } from \"../filter/gridFilterSelector.js\";\nimport { gridRowSpanningHiddenCellsSelector } from \"../rows/gridRowSpanningSelectors.js\";\nimport { gridPinnedRowsSelector } from \"../rows/gridRowsSelector.js\";\nexport function enrichPageRowsWithPinnedRows(apiRef, rows) {\n const pinnedRows = gridPinnedRowsSelector(apiRef) || {};\n return [...(pinnedRows.top || []), ...rows, ...(pinnedRows.bottom || [])];\n}\nexport const getLeftColumnIndex = ({\n currentColIndex,\n firstColIndex,\n lastColIndex,\n isRtl\n}) => {\n if (isRtl) {\n if (currentColIndex < lastColIndex) {\n return currentColIndex + 1;\n }\n } else if (!isRtl) {\n if (currentColIndex > firstColIndex) {\n return currentColIndex - 1;\n }\n }\n return null;\n};\nexport const getRightColumnIndex = ({\n currentColIndex,\n firstColIndex,\n lastColIndex,\n isRtl\n}) => {\n if (isRtl) {\n if (currentColIndex > firstColIndex) {\n return currentColIndex - 1;\n }\n } else if (!isRtl) {\n if (currentColIndex < lastColIndex) {\n return currentColIndex + 1;\n }\n }\n return null;\n};\nexport function findNonRowSpannedCell(apiRef, rowId, field, rowSpanScanDirection) {\n const rowSpanHiddenCells = gridRowSpanningHiddenCellsSelector(apiRef);\n if (!rowSpanHiddenCells[rowId]?.[field]) {\n return rowId;\n }\n const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);\n // find closest non row spanned cell in the given `rowSpanScanDirection`\n let nextRowIndex = filteredSortedRowIds.indexOf(rowId) + (rowSpanScanDirection === 'down' ? 1 : -1);\n while (nextRowIndex >= 0 && nextRowIndex < filteredSortedRowIds.length) {\n const nextRowId = filteredSortedRowIds[nextRowIndex];\n if (!rowSpanHiddenCells[nextRowId]?.[field]) {\n return nextRowId;\n }\n nextRowIndex += rowSpanScanDirection === 'down' ? 1 : -1;\n }\n return rowId;\n}","import * as React from 'react';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { GRID_TREE_DATA_GROUPING_FIELD, GRID_DETAIL_PANEL_TOGGLE_FIELD } from \"../../../internals/constants.js\";\nimport { isGroupingColumn } from \"../../../internals/utils/gridRowGroupingUtils.js\";\nimport { gridVisibleColumnDefinitionsSelector, gridVisibleColumnFieldsSelector } from \"../columns/gridColumnsSelector.js\";\nimport { useGridLogger } from \"../../utils/useGridLogger.js\";\nimport { useGridApiEventHandler } from \"../../utils/useGridApiEventHandler.js\";\nimport { gridExpandedSortedRowEntriesSelector } from \"../filter/gridFilterSelector.js\";\nimport { useGridVisibleRows } from \"../../utils/useGridVisibleRows.js\";\nimport { GRID_CHECKBOX_SELECTION_COL_DEF } from \"../../../colDef/gridCheckboxSelectionColDef.js\";\nimport { gridClasses } from \"../../../constants/gridClasses.js\";\nimport { GridCellModes } from \"../../../models/gridEditRowModel.js\";\nimport { isNavigationKey } from \"../../../utils/keyboardUtils.js\";\nimport { gridFocusColumnGroupHeaderSelector } from \"../focus/index.js\";\nimport { gridColumnGroupsHeaderMaxDepthSelector } from \"../columnGrouping/gridColumnGroupsSelector.js\";\nimport { gridHeaderFilteringEditFieldSelector, gridHeaderFilteringMenuSelector } from \"../headerFiltering/gridHeaderFilteringSelectors.js\";\nimport { useGridRegisterPipeProcessor } from \"../../core/pipeProcessing/index.js\";\nimport { isEventTargetInPortal } from \"../../../utils/domUtils.js\";\nimport { enrichPageRowsWithPinnedRows, getLeftColumnIndex, getRightColumnIndex, findNonRowSpannedCell } from \"./utils.js\";\nimport { gridListColumnSelector } from \"../listView/gridListViewSelectors.js\";\n\n/**\n * @requires useGridSorting (method) - can be after\n * @requires useGridFilter (state) - can be after\n * @requires useGridColumns (state, method) - can be after\n * @requires useGridDimensions (method) - can be after\n * @requires useGridFocus (method) - can be after\n * @requires useGridScroll (method) - can be after\n * @requires useGridColumnSpanning (method) - can be after\n */\nexport const useGridKeyboardNavigation = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridKeyboardNavigation');\n const initialCurrentPageRows = useGridVisibleRows(apiRef, props).rows;\n const isRtl = useRtl();\n const listView = props.unstable_listView;\n const currentPageRows = React.useMemo(() => enrichPageRowsWithPinnedRows(apiRef, initialCurrentPageRows), [apiRef, initialCurrentPageRows]);\n const headerFilteringEnabled = props.signature !== 'DataGrid' && props.headerFilters;\n\n /**\n * @param {number} colIndex Index of the column to focus\n * @param {GridRowId} rowId index of the row to focus\n * @param {string} closestColumnToUse Which closest column cell to use when the cell is spanned by `colSpan`.\n * @param {string} rowSpanScanDirection Which direction to search to find the next cell not hidden by `rowSpan`.\n * TODO replace with apiRef.current.moveFocusToRelativeCell()\n */\n const goToCell = React.useCallback((colIndex, rowId, closestColumnToUse = 'left', rowSpanScanDirection = 'up') => {\n const visibleSortedRows = gridExpandedSortedRowEntriesSelector(apiRef);\n const nextCellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, colIndex);\n if (nextCellColSpanInfo && nextCellColSpanInfo.spannedByColSpan) {\n if (closestColumnToUse === 'left') {\n colIndex = nextCellColSpanInfo.leftVisibleCellIndex;\n } else if (closestColumnToUse === 'right') {\n colIndex = nextCellColSpanInfo.rightVisibleCellIndex;\n }\n }\n const field = listView ? gridListColumnSelector(apiRef.current.state).field : gridVisibleColumnFieldsSelector(apiRef)[colIndex];\n const nonRowSpannedRowId = findNonRowSpannedCell(apiRef, rowId, field, rowSpanScanDirection);\n // `scrollToIndexes` requires a rowIndex relative to all visible rows.\n // Those rows do not include pinned rows, but pinned rows do not need scroll anyway.\n const rowIndexRelativeToAllRows = visibleSortedRows.findIndex(row => row.id === nonRowSpannedRowId);\n logger.debug(`Navigating to cell row ${rowIndexRelativeToAllRows}, col ${colIndex}`);\n apiRef.current.scrollToIndexes({\n colIndex,\n rowIndex: rowIndexRelativeToAllRows\n });\n apiRef.current.setCellFocus(nonRowSpannedRowId, field);\n }, [apiRef, logger, listView]);\n const goToHeader = React.useCallback((colIndex, event) => {\n logger.debug(`Navigating to header col ${colIndex}`);\n apiRef.current.scrollToIndexes({\n colIndex\n });\n const field = apiRef.current.getVisibleColumns()[colIndex].field;\n apiRef.current.setColumnHeaderFocus(field, event);\n }, [apiRef, logger]);\n const goToHeaderFilter = React.useCallback((colIndex, event) => {\n logger.debug(`Navigating to header filter col ${colIndex}`);\n apiRef.current.scrollToIndexes({\n colIndex\n });\n const field = apiRef.current.getVisibleColumns()[colIndex].field;\n apiRef.current.setColumnHeaderFilterFocus(field, event);\n }, [apiRef, logger]);\n const goToGroupHeader = React.useCallback((colIndex, depth, event) => {\n logger.debug(`Navigating to header col ${colIndex}`);\n apiRef.current.scrollToIndexes({\n colIndex\n });\n const {\n field\n } = apiRef.current.getVisibleColumns()[colIndex];\n apiRef.current.setColumnGroupHeaderFocus(field, depth, event);\n }, [apiRef, logger]);\n const getRowIdFromIndex = React.useCallback(rowIndex => {\n return currentPageRows[rowIndex]?.id;\n }, [currentPageRows]);\n const handleColumnHeaderKeyDown = React.useCallback((params, event) => {\n const headerTitleNode = event.currentTarget.querySelector(`.${gridClasses.columnHeaderTitleContainerContent}`);\n const isFromInsideContent = !!headerTitleNode && headerTitleNode.contains(event.target);\n if (isFromInsideContent && params.field !== GRID_CHECKBOX_SELECTION_COL_DEF.field) {\n // When focus is on a nested input, keyboard events have no effect to avoid conflicts with native events.\n // There is one exception for the checkBoxHeader\n return;\n }\n const viewportPageSize = apiRef.current.getViewportPageSize();\n const colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;\n const firstRowIndexInPage = currentPageRows.length > 0 ? 0 : null;\n const lastRowIndexInPage = currentPageRows.length - 1;\n const firstColIndex = 0;\n const lastColIndex = gridVisibleColumnDefinitionsSelector(apiRef).length - 1;\n const columnGroupMaxDepth = gridColumnGroupsHeaderMaxDepthSelector(apiRef);\n let shouldPreventDefault = true;\n switch (event.key) {\n case 'ArrowDown':\n {\n if (firstRowIndexInPage !== null) {\n if (headerFilteringEnabled) {\n goToHeaderFilter(colIndexBefore, event);\n } else {\n goToCell(colIndexBefore, getRowIdFromIndex(firstRowIndexInPage));\n }\n }\n break;\n }\n case 'ArrowRight':\n {\n const rightColIndex = getRightColumnIndex({\n currentColIndex: colIndexBefore,\n firstColIndex,\n lastColIndex,\n isRtl\n });\n if (rightColIndex !== null) {\n goToHeader(rightColIndex, event);\n }\n break;\n }\n case 'ArrowLeft':\n {\n const leftColIndex = getLeftColumnIndex({\n currentColIndex: colIndexBefore,\n firstColIndex,\n lastColIndex,\n isRtl\n });\n if (leftColIndex !== null) {\n goToHeader(leftColIndex, event);\n }\n break;\n }\n case 'ArrowUp':\n {\n if (columnGroupMaxDepth > 0) {\n goToGroupHeader(colIndexBefore, columnGroupMaxDepth - 1, event);\n }\n break;\n }\n case 'PageDown':\n {\n if (firstRowIndexInPage !== null && lastRowIndexInPage !== null) {\n goToCell(colIndexBefore, getRowIdFromIndex(Math.min(firstRowIndexInPage + viewportPageSize, lastRowIndexInPage)));\n }\n break;\n }\n case 'Home':\n {\n goToHeader(firstColIndex, event);\n break;\n }\n case 'End':\n {\n goToHeader(lastColIndex, event);\n break;\n }\n case 'Enter':\n {\n if (event.ctrlKey || event.metaKey) {\n apiRef.current.toggleColumnMenu(params.field);\n }\n break;\n }\n case ' ':\n {\n // prevent Space event from scrolling\n break;\n }\n default:\n {\n shouldPreventDefault = false;\n }\n }\n if (shouldPreventDefault) {\n event.preventDefault();\n }\n }, [apiRef, currentPageRows.length, headerFilteringEnabled, goToHeaderFilter, goToCell, getRowIdFromIndex, isRtl, goToHeader, goToGroupHeader]);\n const handleHeaderFilterKeyDown = React.useCallback((params, event) => {\n const isEditing = gridHeaderFilteringEditFieldSelector(apiRef) === params.field;\n const isHeaderMenuOpen = gridHeaderFilteringMenuSelector(apiRef) === params.field;\n if (isEditing || isHeaderMenuOpen || !isNavigationKey(event.key)) {\n return;\n }\n const viewportPageSize = apiRef.current.getViewportPageSize();\n const colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;\n const firstRowIndexInPage = 0;\n const lastRowIndexInPage = currentPageRows.length - 1;\n const firstColIndex = 0;\n const lastColIndex = gridVisibleColumnDefinitionsSelector(apiRef).length - 1;\n let shouldPreventDefault = true;\n switch (event.key) {\n case 'ArrowDown':\n {\n const rowId = getRowIdFromIndex(firstRowIndexInPage);\n if (firstRowIndexInPage !== null && rowId != null) {\n goToCell(colIndexBefore, rowId);\n }\n break;\n }\n case 'ArrowRight':\n {\n const rightColIndex = getRightColumnIndex({\n currentColIndex: colIndexBefore,\n firstColIndex,\n lastColIndex,\n isRtl\n });\n if (rightColIndex !== null) {\n goToHeaderFilter(rightColIndex, event);\n }\n break;\n }\n case 'ArrowLeft':\n {\n const leftColIndex = getLeftColumnIndex({\n currentColIndex: colIndexBefore,\n firstColIndex,\n lastColIndex,\n isRtl\n });\n if (leftColIndex !== null) {\n goToHeaderFilter(leftColIndex, event);\n } else {\n apiRef.current.setColumnHeaderFilterFocus(params.field, event);\n }\n break;\n }\n case 'ArrowUp':\n {\n goToHeader(colIndexBefore, event);\n break;\n }\n case 'PageDown':\n {\n if (firstRowIndexInPage !== null && lastRowIndexInPage !== null) {\n goToCell(colIndexBefore, getRowIdFromIndex(Math.min(firstRowIndexInPage + viewportPageSize, lastRowIndexInPage)));\n }\n break;\n }\n case 'Home':\n {\n goToHeaderFilter(firstColIndex, event);\n break;\n }\n case 'End':\n {\n goToHeaderFilter(lastColIndex, event);\n break;\n }\n case ' ':\n {\n // prevent Space event from scrolling\n break;\n }\n default:\n {\n shouldPreventDefault = false;\n }\n }\n if (shouldPreventDefault) {\n event.preventDefault();\n }\n }, [apiRef, currentPageRows.length, goToHeaderFilter, isRtl, goToHeader, goToCell, getRowIdFromIndex]);\n const handleColumnGroupHeaderKeyDown = React.useCallback((params, event) => {\n const focusedColumnGroup = gridFocusColumnGroupHeaderSelector(apiRef);\n if (focusedColumnGroup === null) {\n return;\n }\n const {\n field: currentField,\n depth: currentDepth\n } = focusedColumnGroup;\n const {\n fields,\n depth,\n maxDepth\n } = params;\n const viewportPageSize = apiRef.current.getViewportPageSize();\n const currentColIndex = apiRef.current.getColumnIndex(currentField);\n const colIndexBefore = currentField ? apiRef.current.getColumnIndex(currentField) : 0;\n const firstRowIndexInPage = 0;\n const lastRowIndexInPage = currentPageRows.length - 1;\n const firstColIndex = 0;\n const lastColIndex = gridVisibleColumnDefinitionsSelector(apiRef).length - 1;\n let shouldPreventDefault = true;\n switch (event.key) {\n case 'ArrowDown':\n {\n if (depth === maxDepth - 1) {\n goToHeader(currentColIndex, event);\n } else {\n goToGroupHeader(currentColIndex, currentDepth + 1, event);\n }\n break;\n }\n case 'ArrowUp':\n {\n if (depth > 0) {\n goToGroupHeader(currentColIndex, currentDepth - 1, event);\n }\n break;\n }\n case 'ArrowRight':\n {\n const remainingRightColumns = fields.length - fields.indexOf(currentField) - 1;\n if (currentColIndex + remainingRightColumns + 1 <= lastColIndex) {\n goToGroupHeader(currentColIndex + remainingRightColumns + 1, currentDepth, event);\n }\n break;\n }\n case 'ArrowLeft':\n {\n const remainingLeftColumns = fields.indexOf(currentField);\n if (currentColIndex - remainingLeftColumns - 1 >= firstColIndex) {\n goToGroupHeader(currentColIndex - remainingLeftColumns - 1, currentDepth, event);\n }\n break;\n }\n case 'PageDown':\n {\n if (firstRowIndexInPage !== null && lastRowIndexInPage !== null) {\n goToCell(colIndexBefore, getRowIdFromIndex(Math.min(firstRowIndexInPage + viewportPageSize, lastRowIndexInPage)));\n }\n break;\n }\n case 'Home':\n {\n goToGroupHeader(firstColIndex, currentDepth, event);\n break;\n }\n case 'End':\n {\n goToGroupHeader(lastColIndex, currentDepth, event);\n break;\n }\n case ' ':\n {\n // prevent Space event from scrolling\n break;\n }\n default:\n {\n shouldPreventDefault = false;\n }\n }\n if (shouldPreventDefault) {\n event.preventDefault();\n }\n }, [apiRef, currentPageRows.length, goToHeader, goToGroupHeader, goToCell, getRowIdFromIndex]);\n const handleCellKeyDown = React.useCallback((params, event) => {\n // Ignore portal\n if (isEventTargetInPortal(event)) {\n return;\n }\n\n // Get the most recent params because the cell mode may have changed by another listener\n const cellParams = apiRef.current.getCellParams(params.id, params.field);\n if (cellParams.cellMode === GridCellModes.Edit || !isNavigationKey(event.key)) {\n return;\n }\n const canUpdateFocus = apiRef.current.unstable_applyPipeProcessors('canUpdateFocus', true, {\n event,\n cell: cellParams\n });\n if (!canUpdateFocus) {\n return;\n }\n if (currentPageRows.length === 0) {\n return;\n }\n const viewportPageSize = apiRef.current.getViewportPageSize();\n const getColumnIndexFn = listView ? () => 0 : apiRef.current.getColumnIndex;\n const colIndexBefore = params.field ? getColumnIndexFn(params.field) : 0;\n const rowIndexBefore = currentPageRows.findIndex(row => row.id === params.id);\n const firstRowIndexInPage = 0;\n const lastRowIndexInPage = currentPageRows.length - 1;\n const firstColIndex = 0;\n const visibleColumns = listView ? [gridListColumnSelector(apiRef.current.state)] : gridVisibleColumnDefinitionsSelector(apiRef);\n const lastColIndex = visibleColumns.length - 1;\n let shouldPreventDefault = true;\n switch (event.key) {\n case 'ArrowDown':\n {\n // \"Enter\" is only triggered by the row / cell editing feature\n if (rowIndexBefore < lastRowIndexInPage) {\n goToCell(colIndexBefore, getRowIdFromIndex(rowIndexBefore + 1), isRtl ? 'right' : 'left', 'down');\n }\n break;\n }\n case 'ArrowUp':\n {\n if (rowIndexBefore > firstRowIndexInPage) {\n goToCell(colIndexBefore, getRowIdFromIndex(rowIndexBefore - 1));\n } else if (headerFilteringEnabled) {\n goToHeaderFilter(colIndexBefore, event);\n } else {\n goToHeader(colIndexBefore, event);\n }\n break;\n }\n case 'ArrowRight':\n {\n const rightColIndex = getRightColumnIndex({\n currentColIndex: colIndexBefore,\n firstColIndex,\n lastColIndex,\n isRtl\n });\n if (rightColIndex !== null) {\n goToCell(rightColIndex, getRowIdFromIndex(rowIndexBefore), isRtl ? 'left' : 'right');\n }\n break;\n }\n case 'ArrowLeft':\n {\n const leftColIndex = getLeftColumnIndex({\n currentColIndex: colIndexBefore,\n firstColIndex,\n lastColIndex,\n isRtl\n });\n if (leftColIndex !== null) {\n goToCell(leftColIndex, getRowIdFromIndex(rowIndexBefore), isRtl ? 'right' : 'left');\n }\n break;\n }\n case 'Tab':\n {\n // \"Tab\" is only triggered by the row / cell editing feature\n if (event.shiftKey && colIndexBefore > firstColIndex) {\n goToCell(colIndexBefore - 1, getRowIdFromIndex(rowIndexBefore), 'left');\n } else if (!event.shiftKey && colIndexBefore < lastColIndex) {\n goToCell(colIndexBefore + 1, getRowIdFromIndex(rowIndexBefore), 'right');\n }\n break;\n }\n case ' ':\n {\n const field = params.field;\n if (field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {\n break;\n }\n const colDef = params.colDef;\n if (colDef && (colDef.field === GRID_TREE_DATA_GROUPING_FIELD || isGroupingColumn(colDef.field))) {\n break;\n }\n if (!event.shiftKey && rowIndexBefore < lastRowIndexInPage) {\n goToCell(colIndexBefore, getRowIdFromIndex(Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage)));\n }\n break;\n }\n case 'PageDown':\n {\n if (rowIndexBefore < lastRowIndexInPage) {\n goToCell(colIndexBefore, getRowIdFromIndex(Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage)));\n }\n break;\n }\n case 'PageUp':\n {\n // Go to the first row before going to header\n const nextRowIndex = Math.max(rowIndexBefore - viewportPageSize, firstRowIndexInPage);\n if (nextRowIndex !== rowIndexBefore && nextRowIndex >= firstRowIndexInPage) {\n goToCell(colIndexBefore, getRowIdFromIndex(nextRowIndex));\n } else {\n goToHeader(colIndexBefore, event);\n }\n break;\n }\n case 'Home':\n {\n if (event.ctrlKey || event.metaKey || event.shiftKey) {\n goToCell(firstColIndex, getRowIdFromIndex(firstRowIndexInPage));\n } else {\n goToCell(firstColIndex, getRowIdFromIndex(rowIndexBefore));\n }\n break;\n }\n case 'End':\n {\n if (event.ctrlKey || event.metaKey || event.shiftKey) {\n goToCell(lastColIndex, getRowIdFromIndex(lastRowIndexInPage));\n } else {\n goToCell(lastColIndex, getRowIdFromIndex(rowIndexBefore));\n }\n break;\n }\n default:\n {\n shouldPreventDefault = false;\n }\n }\n if (shouldPreventDefault) {\n event.preventDefault();\n }\n }, [apiRef, currentPageRows, isRtl, goToCell, getRowIdFromIndex, headerFilteringEnabled, goToHeaderFilter, goToHeader, listView]);\n const checkIfCanStartEditing = React.useCallback((initialValue, {\n event\n }) => {\n if (event.key === ' ') {\n // Space scrolls to the last row\n return false;\n }\n return initialValue;\n }, []);\n useGridRegisterPipeProcessor(apiRef, 'canStartEditing', checkIfCanStartEditing);\n useGridApiEventHandler(apiRef, 'columnHeaderKeyDown', handleColumnHeaderKeyDown);\n useGridApiEventHandler(apiRef, 'headerFilterKeyDown', handleHeaderFilterKeyDown);\n useGridApiEventHandler(apiRef, 'columnGroupHeaderKeyDown', handleColumnGroupHeaderKeyDown);\n useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);\n};","import { GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD } from \"../constants.js\";\nexport const getRowGroupingCriteriaFromGroupingField = groupingColDefField => {\n const match = groupingColDefField.match(/^__row_group_by_columns_group_(.*)__$/);\n if (!match) {\n return null;\n }\n return match[1];\n};\nexport const isGroupingColumn = field => field === GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD || getRowGroupingCriteriaFromGroupingField(field) !== null;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { throwIfPageSizeExceedsTheLimit, getDefaultGridPaginationModel } from \"./gridPaginationUtils.js\";\nimport { useGridPaginationModel } from \"./useGridPaginationModel.js\";\nimport { useGridRowCount } from \"./useGridRowCount.js\";\nimport { useGridPaginationMeta } from \"./useGridPaginationMeta.js\";\nexport const paginationStateInitializer = (state, props) => {\n const paginationModel = _extends({}, getDefaultGridPaginationModel(props.autoPageSize), props.paginationModel ?? props.initialState?.pagination?.paginationModel);\n throwIfPageSizeExceedsTheLimit(paginationModel.pageSize, props.signature);\n const rowCount = props.rowCount ?? props.initialState?.pagination?.rowCount;\n const meta = props.paginationMeta ?? props.initialState?.pagination?.meta ?? {};\n return _extends({}, state, {\n pagination: {\n paginationModel,\n rowCount,\n meta\n }\n });\n};\n\n/**\n * @requires useGridFilter (state)\n * @requires useGridDimensions (event) - can be after\n */\nexport const useGridPagination = (apiRef, props) => {\n useGridPaginationMeta(apiRef, props);\n useGridPaginationModel(apiRef, props);\n useGridRowCount(apiRef, props);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridLogger, useGridSelector, useGridApiMethod } from \"../../utils/index.js\";\nimport { useGridRegisterPipeProcessor } from \"../../core/pipeProcessing/index.js\";\nimport { gridPaginationMetaSelector } from \"./gridPaginationSelector.js\";\nexport const useGridPaginationMeta = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridPaginationMeta');\n const paginationMeta = useGridSelector(apiRef, gridPaginationMetaSelector);\n apiRef.current.registerControlState({\n stateId: 'paginationMeta',\n propModel: props.paginationMeta,\n propOnChange: props.onPaginationMetaChange,\n stateSelector: gridPaginationMetaSelector,\n changeEvent: 'paginationMetaChange'\n });\n\n /**\n * API METHODS\n */\n const setPaginationMeta = React.useCallback(newPaginationMeta => {\n if (paginationMeta === newPaginationMeta) {\n return;\n }\n logger.debug(\"Setting 'paginationMeta' to\", newPaginationMeta);\n apiRef.current.setState(state => _extends({}, state, {\n pagination: _extends({}, state.pagination, {\n meta: newPaginationMeta\n })\n }));\n }, [apiRef, logger, paginationMeta]);\n const paginationMetaApi = {\n setPaginationMeta\n };\n useGridApiMethod(apiRef, paginationMetaApi, 'public');\n\n /**\n * PRE-PROCESSING\n */\n const stateExportPreProcessing = React.useCallback((prevState, context) => {\n const exportedPaginationMeta = gridPaginationMetaSelector(apiRef);\n const shouldExportRowCount =\n // Always export if the `exportOnlyDirtyModels` property is not activated\n !context.exportOnlyDirtyModels ||\n // Always export if the `paginationMeta` is controlled\n props.paginationMeta != null ||\n // Always export if the `paginationMeta` has been initialized\n props.initialState?.pagination?.meta != null;\n if (!shouldExportRowCount) {\n return prevState;\n }\n return _extends({}, prevState, {\n pagination: _extends({}, prevState.pagination, {\n meta: exportedPaginationMeta\n })\n });\n }, [apiRef, props.paginationMeta, props.initialState?.pagination?.meta]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n const restoredPaginationMeta = context.stateToRestore.pagination?.meta ? context.stateToRestore.pagination.meta : gridPaginationMetaSelector(apiRef);\n apiRef.current.setState(state => _extends({}, state, {\n pagination: _extends({}, state.pagination, {\n meta: restoredPaginationMeta\n })\n }));\n return params;\n }, [apiRef]);\n useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n\n /**\n * EFFECTS\n */\n React.useEffect(() => {\n if (props.paginationMeta) {\n apiRef.current.setPaginationMeta(props.paginationMeta);\n }\n }, [apiRef, props.paginationMeta]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useLazyRef from '@mui/utils/useLazyRef';\nimport { gridFilteredTopLevelRowCountSelector } from \"../filter/index.js\";\nimport { useGridLogger, useGridSelector, useGridApiMethod, useGridApiEventHandler } from \"../../utils/index.js\";\nimport { useGridRegisterPipeProcessor } from \"../../core/pipeProcessing/index.js\";\nimport { gridPaginationRowCountSelector, gridPaginationMetaSelector, gridPaginationModelSelector } from \"./gridPaginationSelector.js\";\nexport const useGridRowCount = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridRowCount');\n const visibleTopLevelRowCount = useGridSelector(apiRef, gridFilteredTopLevelRowCountSelector);\n const rowCountState = useGridSelector(apiRef, gridPaginationRowCountSelector);\n const paginationMeta = useGridSelector(apiRef, gridPaginationMetaSelector);\n const paginationModel = useGridSelector(apiRef, gridPaginationModelSelector);\n const previousPageSize = useLazyRef(() => gridPaginationModelSelector(apiRef).pageSize);\n apiRef.current.registerControlState({\n stateId: 'paginationRowCount',\n propModel: props.rowCount,\n propOnChange: props.onRowCountChange,\n stateSelector: gridPaginationRowCountSelector,\n changeEvent: 'rowCountChange'\n });\n\n /**\n * API METHODS\n */\n const setRowCount = React.useCallback(newRowCount => {\n if (rowCountState === newRowCount) {\n return;\n }\n logger.debug(\"Setting 'rowCount' to\", newRowCount);\n apiRef.current.setState(state => _extends({}, state, {\n pagination: _extends({}, state.pagination, {\n rowCount: newRowCount\n })\n }));\n }, [apiRef, logger, rowCountState]);\n const paginationRowCountApi = {\n setRowCount\n };\n useGridApiMethod(apiRef, paginationRowCountApi, 'public');\n\n /**\n * PRE-PROCESSING\n */\n const stateExportPreProcessing = React.useCallback((prevState, context) => {\n const exportedRowCount = gridPaginationRowCountSelector(apiRef);\n const shouldExportRowCount =\n // Always export if the `exportOnlyDirtyModels` property is not activated\n !context.exportOnlyDirtyModels ||\n // Always export if the `rowCount` is controlled\n props.rowCount != null ||\n // Always export if the `rowCount` has been initialized\n props.initialState?.pagination?.rowCount != null;\n if (!shouldExportRowCount) {\n return prevState;\n }\n return _extends({}, prevState, {\n pagination: _extends({}, prevState.pagination, {\n rowCount: exportedRowCount\n })\n });\n }, [apiRef, props.rowCount, props.initialState?.pagination?.rowCount]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n const restoredRowCount = context.stateToRestore.pagination?.rowCount ? context.stateToRestore.pagination.rowCount : gridPaginationRowCountSelector(apiRef);\n apiRef.current.setState(state => _extends({}, state, {\n pagination: _extends({}, state.pagination, {\n rowCount: restoredRowCount\n })\n }));\n return params;\n }, [apiRef]);\n useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n\n /**\n * EVENTS\n */\n const handlePaginationModelChange = React.useCallback(model => {\n if (props.paginationMode === 'client' || !previousPageSize.current) {\n return;\n }\n if (model.pageSize !== previousPageSize.current) {\n previousPageSize.current = model.pageSize;\n if (rowCountState === -1) {\n // Row count unknown and page size changed, reset the page\n apiRef.current.setPage(0);\n }\n }\n }, [props.paginationMode, previousPageSize, rowCountState, apiRef]);\n useGridApiEventHandler(apiRef, 'paginationModelChange', handlePaginationModelChange);\n\n /**\n * EFFECTS\n */\n React.useEffect(() => {\n if (props.paginationMode === 'client') {\n apiRef.current.setRowCount(visibleTopLevelRowCount);\n } else if (props.rowCount != null) {\n apiRef.current.setRowCount(props.rowCount);\n }\n }, [apiRef, props.paginationMode, visibleTopLevelRowCount, props.rowCount]);\n const isLastPage = paginationMeta.hasNextPage === false;\n React.useEffect(() => {\n if (isLastPage && rowCountState === -1) {\n apiRef.current.setRowCount(paginationModel.pageSize * paginationModel.page + visibleTopLevelRowCount);\n }\n }, [apiRef, visibleTopLevelRowCount, isLastPage, rowCountState, paginationModel]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { useGridLogger } from \"../../utils/useGridLogger.js\";\nimport { useGridRegisterPipeProcessor } from \"../../core/pipeProcessing/index.js\";\nimport { gridPreferencePanelStateSelector } from \"./gridPreferencePanelSelector.js\";\nexport const preferencePanelStateInitializer = (state, props) => _extends({}, state, {\n preferencePanel: props.initialState?.preferencePanel ?? {\n open: false\n }\n});\n\n/**\n * TODO: Add a single `setPreferencePanel` method to avoid multiple `setState`\n */\nexport const useGridPreferencesPanel = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridPreferencesPanel');\n const hideTimeout = React.useRef(undefined);\n const immediateTimeout = React.useRef(undefined);\n\n /**\n * API METHODS\n */\n const hidePreferences = React.useCallback(() => {\n logger.debug('Hiding Preferences Panel');\n const preferencePanelState = gridPreferencePanelStateSelector(apiRef.current.state);\n if (preferencePanelState.openedPanelValue) {\n apiRef.current.publishEvent('preferencePanelClose', {\n openedPanelValue: preferencePanelState.openedPanelValue\n });\n }\n apiRef.current.setState(state => _extends({}, state, {\n preferencePanel: {\n open: false\n }\n }));\n apiRef.current.forceUpdate();\n }, [apiRef, logger]);\n\n // This is to prevent the preferences from closing when you open a select box or another panel,\n // The issue is in MUI core V4 => Fixed in V5\n const doNotHidePanel = React.useCallback(() => {\n immediateTimeout.current = setTimeout(() => clearTimeout(hideTimeout.current), 0);\n }, []);\n\n // This is a hack for the issue with Core V4, by delaying hiding the panel on the clickAwayListener,\n // we can cancel the action if the trigger element still need the panel...\n const hidePreferencesDelayed = React.useCallback(() => {\n hideTimeout.current = setTimeout(hidePreferences, 100);\n }, [hidePreferences]);\n const showPreferences = React.useCallback((newValue, panelId, labelId) => {\n logger.debug('Opening Preferences Panel');\n doNotHidePanel();\n apiRef.current.setState(state => _extends({}, state, {\n preferencePanel: _extends({}, state.preferencePanel, {\n open: true,\n openedPanelValue: newValue,\n panelId,\n labelId\n })\n }));\n apiRef.current.publishEvent('preferencePanelOpen', {\n openedPanelValue: newValue\n });\n apiRef.current.forceUpdate();\n }, [logger, doNotHidePanel, apiRef]);\n useGridApiMethod(apiRef, {\n showPreferences,\n hidePreferences: hidePreferencesDelayed\n }, 'public');\n\n /**\n * PRE-PROCESSING\n */\n const stateExportPreProcessing = React.useCallback((prevState, context) => {\n const preferencePanelToExport = gridPreferencePanelStateSelector(apiRef.current.state);\n const shouldExportPreferencePanel =\n // Always export if the `exportOnlyDirtyModels` property is not activated\n !context.exportOnlyDirtyModels ||\n // Always export if the panel was initialized\n props.initialState?.preferencePanel != null ||\n // Always export if the panel is opened\n preferencePanelToExport.open;\n if (!shouldExportPreferencePanel) {\n return prevState;\n }\n return _extends({}, prevState, {\n preferencePanel: preferencePanelToExport\n });\n }, [apiRef, props.initialState?.preferencePanel]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n const preferencePanel = context.stateToRestore.preferencePanel;\n if (preferencePanel != null) {\n apiRef.current.setState(state => _extends({}, state, {\n preferencePanel\n }));\n }\n return params;\n }, [apiRef]);\n useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n\n /**\n * EFFECTS\n */\n React.useEffect(() => {\n return () => {\n clearTimeout(hideTimeout.current);\n clearTimeout(immediateTimeout.current);\n };\n }, []);\n};","/**\n * Select the row editing state.\n */\nexport const gridEditRowsStateSelector = state => state.editRows;","export const getDefaultCellValue = colDef => {\n switch (colDef.type) {\n case 'boolean':\n return false;\n case 'date':\n case 'dateTime':\n case 'number':\n return undefined;\n case 'singleSelect':\n return null;\n case 'string':\n default:\n return '';\n }\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _toPropertyKey from \"@babel/runtime/helpers/esm/toPropertyKey\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"id\", \"field\"],\n _excluded2 = [\"id\", \"field\"];\nimport * as React from 'react';\nimport { unstable_useEventCallback as useEventCallback, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { warnOnce } from '@mui/x-internals/warning';\nimport { useGridApiEventHandler, useGridApiOptionHandler } from \"../../utils/useGridApiEventHandler.js\";\nimport { GridEditModes, GridCellModes } from \"../../../models/gridEditRowModel.js\";\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { gridEditRowsStateSelector } from \"./gridEditingSelectors.js\";\nimport { isPrintableKey, isPasteShortcut } from \"../../../utils/keyboardUtils.js\";\nimport { gridRowsDataRowIdToIdLookupSelector } from \"../rows/gridRowsSelector.js\";\nimport { deepClone } from \"../../../utils/utils.js\";\nimport { GridCellEditStartReasons, GridCellEditStopReasons } from \"../../../models/params/gridEditCellParams.js\";\nimport { getDefaultCellValue } from \"./utils.js\";\nexport const useGridCellEditing = (apiRef, props) => {\n const [cellModesModel, setCellModesModel] = React.useState({});\n const cellModesModelRef = React.useRef(cellModesModel);\n const prevCellModesModel = React.useRef({});\n const {\n processRowUpdate,\n onProcessRowUpdateError,\n cellModesModel: cellModesModelProp,\n onCellModesModelChange\n } = props;\n const runIfEditModeIsCell = callback => (...args) => {\n if (props.editMode === GridEditModes.Cell) {\n callback(...args);\n }\n };\n const throwIfNotEditable = React.useCallback((id, field) => {\n const params = apiRef.current.getCellParams(id, field);\n if (!apiRef.current.isCellEditable(params)) {\n throw new Error(`MUI X: The cell with id=${id} and field=${field} is not editable.`);\n }\n }, [apiRef]);\n const throwIfNotInMode = React.useCallback((id, field, mode) => {\n if (apiRef.current.getCellMode(id, field) !== mode) {\n throw new Error(`MUI X: The cell with id=${id} and field=${field} is not in ${mode} mode.`);\n }\n }, [apiRef]);\n const handleCellDoubleClick = React.useCallback((params, event) => {\n if (!params.isEditable) {\n return;\n }\n if (params.cellMode === GridCellModes.Edit) {\n return;\n }\n const newParams = _extends({}, params, {\n reason: GridCellEditStartReasons.cellDoubleClick\n });\n apiRef.current.publishEvent('cellEditStart', newParams, event);\n }, [apiRef]);\n const handleCellFocusOut = React.useCallback((params, event) => {\n if (params.cellMode === GridCellModes.View) {\n return;\n }\n if (apiRef.current.getCellMode(params.id, params.field) === GridCellModes.View) {\n return;\n }\n const newParams = _extends({}, params, {\n reason: GridCellEditStopReasons.cellFocusOut\n });\n apiRef.current.publishEvent('cellEditStop', newParams, event);\n }, [apiRef]);\n const handleCellKeyDown = React.useCallback((params, event) => {\n if (params.cellMode === GridCellModes.Edit) {\n // Wait until IME is settled for Asian languages like Japanese and Chinese\n // TODO: to replace at one point. See https://github.com/mui/material-ui/pull/39713#discussion_r1381678957.\n if (event.which === 229) {\n return;\n }\n let reason;\n if (event.key === 'Escape') {\n reason = GridCellEditStopReasons.escapeKeyDown;\n } else if (event.key === 'Enter') {\n reason = GridCellEditStopReasons.enterKeyDown;\n } else if (event.key === 'Tab') {\n reason = event.shiftKey ? GridCellEditStopReasons.shiftTabKeyDown : GridCellEditStopReasons.tabKeyDown;\n event.preventDefault(); // Prevent going to the next element in the tab sequence\n }\n if (reason) {\n const newParams = _extends({}, params, {\n reason\n });\n apiRef.current.publishEvent('cellEditStop', newParams, event);\n }\n } else if (params.isEditable) {\n let reason;\n const canStartEditing = apiRef.current.unstable_applyPipeProcessors('canStartEditing', true, {\n event,\n cellParams: params,\n editMode: 'cell'\n });\n if (!canStartEditing) {\n return;\n }\n if (isPrintableKey(event)) {\n reason = GridCellEditStartReasons.printableKeyDown;\n } else if (isPasteShortcut(event)) {\n reason = GridCellEditStartReasons.pasteKeyDown;\n } else if (event.key === 'Enter') {\n reason = GridCellEditStartReasons.enterKeyDown;\n } else if (event.key === 'Backspace' || event.key === 'Delete') {\n reason = GridCellEditStartReasons.deleteKeyDown;\n }\n if (reason) {\n const newParams = _extends({}, params, {\n reason,\n key: event.key\n });\n apiRef.current.publishEvent('cellEditStart', newParams, event);\n }\n }\n }, [apiRef]);\n const handleCellEditStart = React.useCallback(params => {\n const {\n id,\n field,\n reason\n } = params;\n const startCellEditModeParams = {\n id,\n field\n };\n if (reason === GridCellEditStartReasons.printableKeyDown || reason === GridCellEditStartReasons.deleteKeyDown || reason === GridCellEditStartReasons.pasteKeyDown) {\n startCellEditModeParams.deleteValue = true;\n }\n apiRef.current.startCellEditMode(startCellEditModeParams);\n }, [apiRef]);\n const handleCellEditStop = React.useCallback(params => {\n const {\n id,\n field,\n reason\n } = params;\n apiRef.current.runPendingEditCellValueMutation(id, field);\n let cellToFocusAfter;\n if (reason === GridCellEditStopReasons.enterKeyDown) {\n cellToFocusAfter = 'below';\n } else if (reason === GridCellEditStopReasons.tabKeyDown) {\n cellToFocusAfter = 'right';\n } else if (reason === GridCellEditStopReasons.shiftTabKeyDown) {\n cellToFocusAfter = 'left';\n }\n const ignoreModifications = reason === 'escapeKeyDown';\n apiRef.current.stopCellEditMode({\n id,\n field,\n ignoreModifications,\n cellToFocusAfter\n });\n }, [apiRef]);\n const runIfNoFieldErrors = callback => async (...args) => {\n if (callback) {\n const {\n id,\n field\n } = args[0];\n const editRowsState = apiRef.current.state.editRows;\n const hasFieldErrors = editRowsState[id][field]?.error;\n if (!hasFieldErrors) {\n callback(...args);\n }\n }\n };\n useGridApiEventHandler(apiRef, 'cellDoubleClick', runIfEditModeIsCell(handleCellDoubleClick));\n useGridApiEventHandler(apiRef, 'cellFocusOut', runIfEditModeIsCell(handleCellFocusOut));\n useGridApiEventHandler(apiRef, 'cellKeyDown', runIfEditModeIsCell(handleCellKeyDown));\n useGridApiEventHandler(apiRef, 'cellEditStart', runIfEditModeIsCell(handleCellEditStart));\n useGridApiEventHandler(apiRef, 'cellEditStop', runIfEditModeIsCell(handleCellEditStop));\n useGridApiOptionHandler(apiRef, 'cellEditStart', props.onCellEditStart);\n useGridApiOptionHandler(apiRef, 'cellEditStop', runIfNoFieldErrors(props.onCellEditStop));\n const getCellMode = React.useCallback((id, field) => {\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n const isEditing = editingState[id] && editingState[id][field];\n return isEditing ? GridCellModes.Edit : GridCellModes.View;\n }, [apiRef]);\n const updateCellModesModel = useEventCallback(newModel => {\n const isNewModelDifferentFromProp = newModel !== props.cellModesModel;\n if (onCellModesModelChange && isNewModelDifferentFromProp) {\n onCellModesModelChange(newModel, {\n api: apiRef.current\n });\n }\n if (props.cellModesModel && isNewModelDifferentFromProp) {\n return; // The prop always win\n }\n setCellModesModel(newModel);\n cellModesModelRef.current = newModel;\n apiRef.current.publishEvent('cellModesModelChange', newModel);\n });\n const updateFieldInCellModesModel = React.useCallback((id, field, newProps) => {\n // We use the ref because it always contain the up-to-date value, different from the state\n // that needs a rerender to reflect the new value\n const newModel = _extends({}, cellModesModelRef.current);\n if (newProps !== null) {\n newModel[id] = _extends({}, newModel[id], {\n [field]: _extends({}, newProps)\n });\n } else {\n const _newModel$id = newModel[id],\n otherFields = _objectWithoutPropertiesLoose(_newModel$id, [field].map(_toPropertyKey)); // Ensure that we have a new object, not a reference\n newModel[id] = otherFields;\n if (Object.keys(newModel[id]).length === 0) {\n delete newModel[id];\n }\n }\n updateCellModesModel(newModel);\n }, [updateCellModesModel]);\n const updateOrDeleteFieldState = React.useCallback((id, field, newProps) => {\n apiRef.current.setState(state => {\n const newEditingState = _extends({}, state.editRows);\n if (newProps !== null) {\n newEditingState[id] = _extends({}, newEditingState[id], {\n [field]: _extends({}, newProps)\n });\n } else {\n delete newEditingState[id][field];\n if (Object.keys(newEditingState[id]).length === 0) {\n delete newEditingState[id];\n }\n }\n return _extends({}, state, {\n editRows: newEditingState\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef]);\n const startCellEditMode = React.useCallback(params => {\n const {\n id,\n field\n } = params,\n other = _objectWithoutPropertiesLoose(params, _excluded);\n throwIfNotEditable(id, field);\n throwIfNotInMode(id, field, GridCellModes.View);\n updateFieldInCellModesModel(id, field, _extends({\n mode: GridCellModes.Edit\n }, other));\n }, [throwIfNotEditable, throwIfNotInMode, updateFieldInCellModesModel]);\n const updateStateToStartCellEditMode = useEventCallback(async params => {\n const {\n id,\n field,\n deleteValue,\n initialValue\n } = params;\n const value = apiRef.current.getCellValue(id, field);\n let newValue = value;\n if (deleteValue) {\n newValue = getDefaultCellValue(apiRef.current.getColumn(field));\n } else if (initialValue) {\n newValue = initialValue;\n }\n const column = apiRef.current.getColumn(field);\n const shouldProcessEditCellProps = !!column.preProcessEditCellProps && deleteValue;\n let newProps = {\n value: newValue,\n error: false,\n isProcessingProps: shouldProcessEditCellProps\n };\n updateOrDeleteFieldState(id, field, newProps);\n apiRef.current.setCellFocus(id, field);\n if (shouldProcessEditCellProps) {\n newProps = await Promise.resolve(column.preProcessEditCellProps({\n id,\n row: apiRef.current.getRow(id),\n props: newProps,\n hasChanged: newValue !== value\n }));\n // Check if still in edit mode before updating\n if (apiRef.current.getCellMode(id, field) === GridCellModes.Edit) {\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n updateOrDeleteFieldState(id, field, _extends({}, newProps, {\n value: editingState[id][field].value,\n isProcessingProps: false\n }));\n }\n }\n });\n const stopCellEditMode = React.useCallback(params => {\n const {\n id,\n field\n } = params,\n other = _objectWithoutPropertiesLoose(params, _excluded2);\n throwIfNotInMode(id, field, GridCellModes.Edit);\n updateFieldInCellModesModel(id, field, _extends({\n mode: GridCellModes.View\n }, other));\n }, [throwIfNotInMode, updateFieldInCellModesModel]);\n const updateStateToStopCellEditMode = useEventCallback(async params => {\n const {\n id,\n field,\n ignoreModifications,\n cellToFocusAfter = 'none'\n } = params;\n throwIfNotInMode(id, field, GridCellModes.Edit);\n apiRef.current.runPendingEditCellValueMutation(id, field);\n const finishCellEditMode = () => {\n updateOrDeleteFieldState(id, field, null);\n updateFieldInCellModesModel(id, field, null);\n if (cellToFocusAfter !== 'none') {\n apiRef.current.moveFocusToRelativeCell(id, field, cellToFocusAfter);\n }\n };\n if (ignoreModifications) {\n finishCellEditMode();\n return;\n }\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n const {\n error,\n isProcessingProps\n } = editingState[id][field];\n if (error || isProcessingProps) {\n // Attempt to change cell mode to \"view\" was not successful\n // Update previous mode to allow another attempt\n prevCellModesModel.current[id][field].mode = GridCellModes.Edit;\n // Revert the mode in the cellModesModel prop back to \"edit\"\n updateFieldInCellModesModel(id, field, {\n mode: GridCellModes.Edit\n });\n return;\n }\n const rowUpdate = apiRef.current.getRowWithUpdatedValuesFromCellEditing(id, field);\n if (processRowUpdate) {\n const handleError = errorThrown => {\n prevCellModesModel.current[id][field].mode = GridCellModes.Edit;\n // Revert the mode in the cellModesModel prop back to \"edit\"\n updateFieldInCellModesModel(id, field, {\n mode: GridCellModes.Edit\n });\n if (onProcessRowUpdateError) {\n onProcessRowUpdateError(errorThrown);\n } else if (process.env.NODE_ENV !== 'production') {\n warnOnce(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');\n }\n };\n try {\n const row = apiRef.current.getRow(id);\n Promise.resolve(processRowUpdate(rowUpdate, row, {\n rowId: id\n })).then(finalRowUpdate => {\n apiRef.current.updateRows([finalRowUpdate]);\n finishCellEditMode();\n }).catch(handleError);\n } catch (errorThrown) {\n handleError(errorThrown);\n }\n } else {\n apiRef.current.updateRows([rowUpdate]);\n finishCellEditMode();\n }\n });\n const setCellEditingEditCellValue = React.useCallback(async params => {\n const {\n id,\n field,\n value,\n debounceMs,\n unstable_skipValueParser: skipValueParser\n } = params;\n throwIfNotEditable(id, field);\n throwIfNotInMode(id, field, GridCellModes.Edit);\n const column = apiRef.current.getColumn(field);\n const row = apiRef.current.getRow(id);\n let parsedValue = value;\n if (column.valueParser && !skipValueParser) {\n parsedValue = column.valueParser(value, row, column, apiRef);\n }\n let editingState = gridEditRowsStateSelector(apiRef.current.state);\n let newProps = _extends({}, editingState[id][field], {\n value: parsedValue,\n changeReason: debounceMs ? 'debouncedSetEditCellValue' : 'setEditCellValue'\n });\n if (column.preProcessEditCellProps) {\n const hasChanged = value !== editingState[id][field].value;\n newProps = _extends({}, newProps, {\n isProcessingProps: true\n });\n updateOrDeleteFieldState(id, field, newProps);\n newProps = await Promise.resolve(column.preProcessEditCellProps({\n id,\n row,\n props: newProps,\n hasChanged\n }));\n }\n\n // Check again if the cell is in edit mode because the user may have\n // discarded the changes while the props were being processed.\n if (apiRef.current.getCellMode(id, field) === GridCellModes.View) {\n return false;\n }\n editingState = gridEditRowsStateSelector(apiRef.current.state);\n newProps = _extends({}, newProps, {\n isProcessingProps: false\n });\n // We don't update the value with the one coming from the props pre-processing\n // because when the promise resolves it may be already outdated. The only\n // exception to this rule is when there's no pre-processing.\n newProps.value = column.preProcessEditCellProps ? editingState[id][field].value : parsedValue;\n updateOrDeleteFieldState(id, field, newProps);\n editingState = gridEditRowsStateSelector(apiRef.current.state);\n return !editingState[id]?.[field]?.error;\n }, [apiRef, throwIfNotEditable, throwIfNotInMode, updateOrDeleteFieldState]);\n const getRowWithUpdatedValuesFromCellEditing = React.useCallback((id, field) => {\n const column = apiRef.current.getColumn(field);\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n const row = apiRef.current.getRow(id);\n if (!editingState[id] || !editingState[id][field]) {\n return apiRef.current.getRow(id);\n }\n const {\n value\n } = editingState[id][field];\n return column.valueSetter ? column.valueSetter(value, row, column, apiRef) : _extends({}, row, {\n [field]: value\n });\n }, [apiRef]);\n const editingApi = {\n getCellMode,\n startCellEditMode,\n stopCellEditMode\n };\n const editingPrivateApi = {\n setCellEditingEditCellValue,\n getRowWithUpdatedValuesFromCellEditing\n };\n useGridApiMethod(apiRef, editingApi, 'public');\n useGridApiMethod(apiRef, editingPrivateApi, 'private');\n React.useEffect(() => {\n if (cellModesModelProp) {\n updateCellModesModel(cellModesModelProp);\n }\n }, [cellModesModelProp, updateCellModesModel]);\n\n // Run this effect synchronously so that the keyboard event can impact the yet-to-be-rendered input.\n useEnhancedEffect(() => {\n const idToIdLookup = gridRowsDataRowIdToIdLookupSelector(apiRef);\n\n // Update the ref here because updateStateToStopCellEditMode may change it later\n const copyOfPrevCellModes = prevCellModesModel.current;\n prevCellModesModel.current = deepClone(cellModesModel); // Do a deep-clone because the attributes might be changed later\n\n Object.entries(cellModesModel).forEach(([id, fields]) => {\n Object.entries(fields).forEach(([field, params]) => {\n const prevMode = copyOfPrevCellModes[id]?.[field]?.mode || GridCellModes.View;\n const originalId = idToIdLookup[id] ?? id;\n if (params.mode === GridCellModes.Edit && prevMode === GridCellModes.View) {\n updateStateToStartCellEditMode(_extends({\n id: originalId,\n field\n }, params));\n } else if (params.mode === GridCellModes.View && prevMode === GridCellModes.Edit) {\n updateStateToStopCellEditMode(_extends({\n id: originalId,\n field\n }, params));\n }\n });\n });\n }, [apiRef, cellModesModel, updateStateToStartCellEditMode, updateStateToStopCellEditMode]);\n};","/**\n * Object passed as parameter in the row callbacks.\n * @demos\n * - [Master detail](/x/react-data-grid/master-detail/)\n */\n/**\n * Object passed as parameter in the row `getRowClassName` callback prop.\n * @demos\n * - [Styling rows](/x/react-data-grid/style/#styling-rows)\n */\n/**\n * Object passed as parameter in the row `getRowHeight` callback prop.\n */\n/**\n * The getRowHeight return value.\n */\nvar GridRowEditStartReasons = /*#__PURE__*/function (GridRowEditStartReasons) {\n GridRowEditStartReasons[\"enterKeyDown\"] = \"enterKeyDown\";\n GridRowEditStartReasons[\"cellDoubleClick\"] = \"cellDoubleClick\";\n GridRowEditStartReasons[\"printableKeyDown\"] = \"printableKeyDown\";\n GridRowEditStartReasons[\"deleteKeyDown\"] = \"deleteKeyDown\";\n return GridRowEditStartReasons;\n}(GridRowEditStartReasons || {});\n/**\n * Params passed to the `rowEditStart` event.\n */\nvar GridRowEditStopReasons = /*#__PURE__*/function (GridRowEditStopReasons) {\n GridRowEditStopReasons[\"rowFocusOut\"] = \"rowFocusOut\";\n GridRowEditStopReasons[\"escapeKeyDown\"] = \"escapeKeyDown\";\n GridRowEditStopReasons[\"enterKeyDown\"] = \"enterKeyDown\";\n GridRowEditStopReasons[\"tabKeyDown\"] = \"tabKeyDown\";\n GridRowEditStopReasons[\"shiftTabKeyDown\"] = \"shiftTabKeyDown\";\n return GridRowEditStopReasons;\n}(GridRowEditStopReasons || {});\n/**\n * Object passed as parameter in the row `getRowSpacing` callback prop.\n * @demos\n * - [Row spacing](/x/react-data-grid/row-height/#row-spacing)\n */\n/**\n * The getRowSpacing return value.\n */\n// https://github.com/mui/mui-x/pull/3738#discussion_r798504277\nexport { GridRowEditStartReasons, GridRowEditStopReasons };","import _toPropertyKey from \"@babel/runtime/helpers/esm/toPropertyKey\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"id\"],\n _excluded2 = [\"id\"];\nimport * as React from 'react';\nimport { unstable_useEventCallback as useEventCallback, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { warnOnce } from '@mui/x-internals/warning';\nimport { useGridApiEventHandler, useGridApiOptionHandler } from \"../../utils/useGridApiEventHandler.js\";\nimport { GridEditModes, GridRowModes } from \"../../../models/gridEditRowModel.js\";\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { gridEditRowsStateSelector } from \"./gridEditingSelectors.js\";\nimport { isPrintableKey, isPasteShortcut } from \"../../../utils/keyboardUtils.js\";\nimport { gridColumnFieldsSelector, gridVisibleColumnFieldsSelector } from \"../columns/gridColumnsSelector.js\";\nimport { gridRowsDataRowIdToIdLookupSelector } from \"../rows/gridRowsSelector.js\";\nimport { deepClone } from \"../../../utils/utils.js\";\nimport { GridRowEditStopReasons, GridRowEditStartReasons } from \"../../../models/params/gridRowParams.js\";\nimport { GRID_ACTIONS_COLUMN_TYPE } from \"../../../colDef/index.js\";\nimport { getDefaultCellValue } from \"./utils.js\";\nexport const useGridRowEditing = (apiRef, props) => {\n const [rowModesModel, setRowModesModel] = React.useState({});\n const rowModesModelRef = React.useRef(rowModesModel);\n const prevRowModesModel = React.useRef({});\n const focusTimeout = React.useRef(undefined);\n const nextFocusedCell = React.useRef(null);\n const {\n processRowUpdate,\n onProcessRowUpdateError,\n rowModesModel: rowModesModelProp,\n onRowModesModelChange\n } = props;\n const runIfEditModeIsRow = callback => (...args) => {\n if (props.editMode === GridEditModes.Row) {\n callback(...args);\n }\n };\n const throwIfNotEditable = React.useCallback((id, field) => {\n const params = apiRef.current.getCellParams(id, field);\n if (!apiRef.current.isCellEditable(params)) {\n throw new Error(`MUI X: The cell with id=${id} and field=${field} is not editable.`);\n }\n }, [apiRef]);\n const throwIfNotInMode = React.useCallback((id, mode) => {\n if (apiRef.current.getRowMode(id) !== mode) {\n throw new Error(`MUI X: The row with id=${id} is not in ${mode} mode.`);\n }\n }, [apiRef]);\n const hasFieldsWithErrors = React.useCallback(rowId => {\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n return Object.values(editingState[rowId]).some(fieldProps => fieldProps.error);\n }, [apiRef]);\n const handleCellDoubleClick = React.useCallback((params, event) => {\n if (!params.isEditable) {\n return;\n }\n if (apiRef.current.getRowMode(params.id) === GridRowModes.Edit) {\n return;\n }\n const rowParams = apiRef.current.getRowParams(params.id);\n const newParams = _extends({}, rowParams, {\n field: params.field,\n reason: GridRowEditStartReasons.cellDoubleClick\n });\n apiRef.current.publishEvent('rowEditStart', newParams, event);\n }, [apiRef]);\n const handleCellFocusIn = React.useCallback(params => {\n nextFocusedCell.current = params;\n }, []);\n const handleCellFocusOut = React.useCallback((params, event) => {\n if (!params.isEditable) {\n return;\n }\n if (apiRef.current.getRowMode(params.id) === GridRowModes.View) {\n return;\n }\n // The mechanism to detect if we can stop editing a row is different from\n // the cell editing. Instead of triggering it when clicking outside a cell,\n // we must check if another cell in the same row was not clicked. To achieve\n // that, first we keep track of all cells that gained focus. When a cell loses\n // focus we check if the next cell that received focus is from a different row.\n nextFocusedCell.current = null;\n focusTimeout.current = setTimeout(() => {\n if (nextFocusedCell.current?.id !== params.id) {\n // The row might have been deleted during the click\n if (!apiRef.current.getRow(params.id)) {\n return;\n }\n\n // The row may already changed its mode\n if (apiRef.current.getRowMode(params.id) === GridRowModes.View) {\n return;\n }\n if (hasFieldsWithErrors(params.id)) {\n return;\n }\n const rowParams = apiRef.current.getRowParams(params.id);\n const newParams = _extends({}, rowParams, {\n field: params.field,\n reason: GridRowEditStopReasons.rowFocusOut\n });\n apiRef.current.publishEvent('rowEditStop', newParams, event);\n }\n });\n }, [apiRef, hasFieldsWithErrors]);\n React.useEffect(() => {\n return () => {\n clearTimeout(focusTimeout.current);\n };\n }, []);\n const handleCellKeyDown = React.useCallback((params, event) => {\n if (params.cellMode === GridRowModes.Edit) {\n // Wait until IME is settled for Asian languages like Japanese and Chinese\n // TODO: to replace at one point. See https://github.com/mui/material-ui/pull/39713#discussion_r1381678957.\n if (event.which === 229) {\n return;\n }\n let reason;\n if (event.key === 'Escape') {\n reason = GridRowEditStopReasons.escapeKeyDown;\n } else if (event.key === 'Enter') {\n reason = GridRowEditStopReasons.enterKeyDown;\n } else if (event.key === 'Tab') {\n const columnFields = gridVisibleColumnFieldsSelector(apiRef).filter(field => {\n const column = apiRef.current.getColumn(field);\n if (column.type === GRID_ACTIONS_COLUMN_TYPE) {\n return true;\n }\n return apiRef.current.isCellEditable(apiRef.current.getCellParams(params.id, field));\n });\n if (event.shiftKey) {\n if (params.field === columnFields[0]) {\n // Exit if user pressed Shift+Tab on the first field\n reason = GridRowEditStopReasons.shiftTabKeyDown;\n }\n } else if (params.field === columnFields[columnFields.length - 1]) {\n // Exit if user pressed Tab on the last field\n reason = GridRowEditStopReasons.tabKeyDown;\n }\n\n // Always prevent going to the next element in the tab sequence because the focus is\n // handled manually to support edit components rendered inside Portals\n event.preventDefault();\n if (!reason) {\n const index = columnFields.findIndex(field => field === params.field);\n const nextFieldToFocus = columnFields[event.shiftKey ? index - 1 : index + 1];\n apiRef.current.setCellFocus(params.id, nextFieldToFocus);\n }\n }\n if (reason) {\n if (reason !== GridRowEditStopReasons.escapeKeyDown && hasFieldsWithErrors(params.id)) {\n return;\n }\n const newParams = _extends({}, apiRef.current.getRowParams(params.id), {\n reason,\n field: params.field\n });\n apiRef.current.publishEvent('rowEditStop', newParams, event);\n }\n } else if (params.isEditable) {\n let reason;\n const canStartEditing = apiRef.current.unstable_applyPipeProcessors('canStartEditing', true, {\n event,\n cellParams: params,\n editMode: 'row'\n });\n if (!canStartEditing) {\n return;\n }\n if (isPrintableKey(event)) {\n reason = GridRowEditStartReasons.printableKeyDown;\n } else if (isPasteShortcut(event)) {\n reason = GridRowEditStartReasons.printableKeyDown;\n } else if (event.key === 'Enter') {\n reason = GridRowEditStartReasons.enterKeyDown;\n } else if (event.key === 'Backspace' || event.key === 'Delete') {\n reason = GridRowEditStartReasons.deleteKeyDown;\n }\n if (reason) {\n const rowParams = apiRef.current.getRowParams(params.id);\n const newParams = _extends({}, rowParams, {\n field: params.field,\n reason\n });\n apiRef.current.publishEvent('rowEditStart', newParams, event);\n }\n }\n }, [apiRef, hasFieldsWithErrors]);\n const handleRowEditStart = React.useCallback(params => {\n const {\n id,\n field,\n reason\n } = params;\n const startRowEditModeParams = {\n id,\n fieldToFocus: field\n };\n if (reason === GridRowEditStartReasons.printableKeyDown || reason === GridRowEditStartReasons.deleteKeyDown) {\n startRowEditModeParams.deleteValue = !!field;\n }\n apiRef.current.startRowEditMode(startRowEditModeParams);\n }, [apiRef]);\n const handleRowEditStop = React.useCallback(params => {\n const {\n id,\n reason,\n field\n } = params;\n apiRef.current.runPendingEditCellValueMutation(id);\n let cellToFocusAfter;\n if (reason === GridRowEditStopReasons.enterKeyDown) {\n cellToFocusAfter = 'below';\n } else if (reason === GridRowEditStopReasons.tabKeyDown) {\n cellToFocusAfter = 'right';\n } else if (reason === GridRowEditStopReasons.shiftTabKeyDown) {\n cellToFocusAfter = 'left';\n }\n const ignoreModifications = reason === 'escapeKeyDown';\n apiRef.current.stopRowEditMode({\n id,\n ignoreModifications,\n field,\n cellToFocusAfter\n });\n }, [apiRef]);\n useGridApiEventHandler(apiRef, 'cellDoubleClick', runIfEditModeIsRow(handleCellDoubleClick));\n useGridApiEventHandler(apiRef, 'cellFocusIn', runIfEditModeIsRow(handleCellFocusIn));\n useGridApiEventHandler(apiRef, 'cellFocusOut', runIfEditModeIsRow(handleCellFocusOut));\n useGridApiEventHandler(apiRef, 'cellKeyDown', runIfEditModeIsRow(handleCellKeyDown));\n useGridApiEventHandler(apiRef, 'rowEditStart', runIfEditModeIsRow(handleRowEditStart));\n useGridApiEventHandler(apiRef, 'rowEditStop', runIfEditModeIsRow(handleRowEditStop));\n useGridApiOptionHandler(apiRef, 'rowEditStart', props.onRowEditStart);\n useGridApiOptionHandler(apiRef, 'rowEditStop', props.onRowEditStop);\n const getRowMode = React.useCallback(id => {\n if (props.editMode === GridEditModes.Cell) {\n return GridRowModes.View;\n }\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n const isEditing = editingState[id] && Object.keys(editingState[id]).length > 0;\n return isEditing ? GridRowModes.Edit : GridRowModes.View;\n }, [apiRef, props.editMode]);\n const updateRowModesModel = useEventCallback(newModel => {\n const isNewModelDifferentFromProp = newModel !== props.rowModesModel;\n if (onRowModesModelChange && isNewModelDifferentFromProp) {\n onRowModesModelChange(newModel, {\n api: apiRef.current\n });\n }\n if (props.rowModesModel && isNewModelDifferentFromProp) {\n return; // The prop always win\n }\n setRowModesModel(newModel);\n rowModesModelRef.current = newModel;\n apiRef.current.publishEvent('rowModesModelChange', newModel);\n });\n const updateRowInRowModesModel = React.useCallback((id, newProps) => {\n const newModel = _extends({}, rowModesModelRef.current);\n if (newProps !== null) {\n newModel[id] = _extends({}, newProps);\n } else {\n delete newModel[id];\n }\n updateRowModesModel(newModel);\n }, [updateRowModesModel]);\n const updateOrDeleteRowState = React.useCallback((id, newProps) => {\n apiRef.current.setState(state => {\n const newEditingState = _extends({}, state.editRows);\n if (newProps !== null) {\n newEditingState[id] = newProps;\n } else {\n delete newEditingState[id];\n }\n return _extends({}, state, {\n editRows: newEditingState\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef]);\n const updateOrDeleteFieldState = React.useCallback((id, field, newProps) => {\n apiRef.current.setState(state => {\n const newEditingState = _extends({}, state.editRows);\n if (newProps !== null) {\n newEditingState[id] = _extends({}, newEditingState[id], {\n [field]: _extends({}, newProps)\n });\n } else {\n delete newEditingState[id][field];\n if (Object.keys(newEditingState[id]).length === 0) {\n delete newEditingState[id];\n }\n }\n return _extends({}, state, {\n editRows: newEditingState\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef]);\n const startRowEditMode = React.useCallback(params => {\n const {\n id\n } = params,\n other = _objectWithoutPropertiesLoose(params, _excluded);\n throwIfNotInMode(id, GridRowModes.View);\n updateRowInRowModesModel(id, _extends({\n mode: GridRowModes.Edit\n }, other));\n }, [throwIfNotInMode, updateRowInRowModesModel]);\n const updateStateToStartRowEditMode = useEventCallback(params => {\n const {\n id,\n fieldToFocus,\n deleteValue,\n initialValue\n } = params;\n const columnFields = gridColumnFieldsSelector(apiRef);\n const newProps = columnFields.reduce((acc, field) => {\n const cellParams = apiRef.current.getCellParams(id, field);\n if (!cellParams.isEditable) {\n return acc;\n }\n const column = apiRef.current.getColumn(field);\n let newValue = apiRef.current.getCellValue(id, field);\n if (fieldToFocus === field && (deleteValue || initialValue)) {\n if (deleteValue) {\n newValue = getDefaultCellValue(column);\n } else if (initialValue) {\n newValue = initialValue;\n }\n }\n acc[field] = {\n value: newValue,\n error: false,\n isProcessingProps: !!column.preProcessEditCellProps && deleteValue\n };\n return acc;\n }, {});\n updateOrDeleteRowState(id, newProps);\n if (fieldToFocus) {\n apiRef.current.setCellFocus(id, fieldToFocus);\n }\n columnFields.filter(field => !!apiRef.current.getColumn(field).preProcessEditCellProps && deleteValue).forEach(field => {\n const column = apiRef.current.getColumn(field);\n const value = apiRef.current.getCellValue(id, field);\n const newValue = deleteValue ? getDefaultCellValue(column) : initialValue ?? value;\n Promise.resolve(column.preProcessEditCellProps({\n id,\n row: apiRef.current.getRow(id),\n props: newProps[field],\n hasChanged: newValue !== value\n })).then(processedProps => {\n // Check if still in edit mode before updating\n if (apiRef.current.getRowMode(id) === GridRowModes.Edit) {\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n updateOrDeleteFieldState(id, field, _extends({}, processedProps, {\n value: editingState[id][field].value,\n isProcessingProps: false\n }));\n }\n });\n });\n });\n const stopRowEditMode = React.useCallback(params => {\n const {\n id\n } = params,\n other = _objectWithoutPropertiesLoose(params, _excluded2);\n throwIfNotInMode(id, GridRowModes.Edit);\n updateRowInRowModesModel(id, _extends({\n mode: GridRowModes.View\n }, other));\n }, [throwIfNotInMode, updateRowInRowModesModel]);\n const updateStateToStopRowEditMode = useEventCallback(params => {\n const {\n id,\n ignoreModifications,\n field: focusedField,\n cellToFocusAfter = 'none'\n } = params;\n apiRef.current.runPendingEditCellValueMutation(id);\n const finishRowEditMode = () => {\n if (cellToFocusAfter !== 'none' && focusedField) {\n apiRef.current.moveFocusToRelativeCell(id, focusedField, cellToFocusAfter);\n }\n updateOrDeleteRowState(id, null);\n updateRowInRowModesModel(id, null);\n };\n if (ignoreModifications) {\n finishRowEditMode();\n return;\n }\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n const row = apiRef.current.getRow(id);\n const isSomeFieldProcessingProps = Object.values(editingState[id]).some(fieldProps => fieldProps.isProcessingProps);\n if (isSomeFieldProcessingProps) {\n prevRowModesModel.current[id].mode = GridRowModes.Edit;\n return;\n }\n if (hasFieldsWithErrors(id)) {\n prevRowModesModel.current[id].mode = GridRowModes.Edit;\n // Revert the mode in the rowModesModel prop back to \"edit\"\n updateRowInRowModesModel(id, {\n mode: GridRowModes.Edit\n });\n return;\n }\n const rowUpdate = apiRef.current.getRowWithUpdatedValuesFromRowEditing(id);\n if (processRowUpdate) {\n const handleError = errorThrown => {\n prevRowModesModel.current[id].mode = GridRowModes.Edit;\n // Revert the mode in the rowModesModel prop back to \"edit\"\n updateRowInRowModesModel(id, {\n mode: GridRowModes.Edit\n });\n if (onProcessRowUpdateError) {\n onProcessRowUpdateError(errorThrown);\n } else if (process.env.NODE_ENV !== 'production') {\n warnOnce(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');\n }\n };\n try {\n Promise.resolve(processRowUpdate(rowUpdate, row, {\n rowId: id\n })).then(finalRowUpdate => {\n apiRef.current.updateRows([finalRowUpdate]);\n finishRowEditMode();\n }).catch(handleError);\n } catch (errorThrown) {\n handleError(errorThrown);\n }\n } else {\n apiRef.current.updateRows([rowUpdate]);\n finishRowEditMode();\n }\n });\n const setRowEditingEditCellValue = React.useCallback(params => {\n const {\n id,\n field,\n value,\n debounceMs,\n unstable_skipValueParser: skipValueParser\n } = params;\n throwIfNotEditable(id, field);\n const column = apiRef.current.getColumn(field);\n const row = apiRef.current.getRow(id);\n let parsedValue = value;\n if (column.valueParser && !skipValueParser) {\n parsedValue = column.valueParser(value, row, column, apiRef);\n }\n let editingState = gridEditRowsStateSelector(apiRef.current.state);\n let newProps = _extends({}, editingState[id][field], {\n value: parsedValue,\n changeReason: debounceMs ? 'debouncedSetEditCellValue' : 'setEditCellValue'\n });\n if (!column.preProcessEditCellProps) {\n updateOrDeleteFieldState(id, field, newProps);\n }\n return new Promise(resolve => {\n const promises = [];\n if (column.preProcessEditCellProps) {\n const hasChanged = newProps.value !== editingState[id][field].value;\n newProps = _extends({}, newProps, {\n isProcessingProps: true\n });\n updateOrDeleteFieldState(id, field, newProps);\n const _editingState$id = editingState[id],\n otherFieldsProps = _objectWithoutPropertiesLoose(_editingState$id, [field].map(_toPropertyKey));\n const promise = Promise.resolve(column.preProcessEditCellProps({\n id,\n row,\n props: newProps,\n hasChanged,\n otherFieldsProps\n })).then(processedProps => {\n // Check again if the row is in edit mode because the user may have\n // discarded the changes while the props were being processed.\n if (apiRef.current.getRowMode(id) === GridRowModes.View) {\n resolve(false);\n return;\n }\n editingState = gridEditRowsStateSelector(apiRef.current.state);\n processedProps = _extends({}, processedProps, {\n isProcessingProps: false\n });\n // We don't reuse the value from the props pre-processing because when the\n // promise resolves it may be already outdated. The only exception to this rule\n // is when there's no pre-processing.\n processedProps.value = column.preProcessEditCellProps ? editingState[id][field].value : parsedValue;\n updateOrDeleteFieldState(id, field, processedProps);\n });\n promises.push(promise);\n }\n Object.entries(editingState[id]).forEach(([thisField, fieldProps]) => {\n if (thisField === field) {\n return;\n }\n const fieldColumn = apiRef.current.getColumn(thisField);\n if (!fieldColumn.preProcessEditCellProps) {\n return;\n }\n fieldProps = _extends({}, fieldProps, {\n isProcessingProps: true\n });\n updateOrDeleteFieldState(id, thisField, fieldProps);\n editingState = gridEditRowsStateSelector(apiRef.current.state);\n const _editingState$id2 = editingState[id],\n otherFieldsProps = _objectWithoutPropertiesLoose(_editingState$id2, [thisField].map(_toPropertyKey));\n const promise = Promise.resolve(fieldColumn.preProcessEditCellProps({\n id,\n row,\n props: fieldProps,\n hasChanged: false,\n otherFieldsProps\n })).then(processedProps => {\n // Check again if the row is in edit mode because the user may have\n // discarded the changes while the props were being processed.\n if (apiRef.current.getRowMode(id) === GridRowModes.View) {\n resolve(false);\n return;\n }\n processedProps = _extends({}, processedProps, {\n isProcessingProps: false\n });\n updateOrDeleteFieldState(id, thisField, processedProps);\n });\n promises.push(promise);\n });\n Promise.all(promises).then(() => {\n if (apiRef.current.getRowMode(id) === GridRowModes.Edit) {\n editingState = gridEditRowsStateSelector(apiRef.current.state);\n resolve(!editingState[id][field].error);\n } else {\n resolve(false);\n }\n });\n });\n }, [apiRef, throwIfNotEditable, updateOrDeleteFieldState]);\n const getRowWithUpdatedValuesFromRowEditing = React.useCallback(id => {\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n const row = apiRef.current.getRow(id);\n if (!editingState[id]) {\n return apiRef.current.getRow(id);\n }\n let rowUpdate = _extends({}, row);\n Object.entries(editingState[id]).forEach(([field, fieldProps]) => {\n const column = apiRef.current.getColumn(field);\n if (column.valueSetter) {\n rowUpdate = column.valueSetter(fieldProps.value, rowUpdate, column, apiRef);\n } else {\n rowUpdate[field] = fieldProps.value;\n }\n });\n return rowUpdate;\n }, [apiRef]);\n const editingApi = {\n getRowMode,\n startRowEditMode,\n stopRowEditMode\n };\n const editingPrivateApi = {\n setRowEditingEditCellValue,\n getRowWithUpdatedValuesFromRowEditing\n };\n useGridApiMethod(apiRef, editingApi, 'public');\n useGridApiMethod(apiRef, editingPrivateApi, 'private');\n React.useEffect(() => {\n if (rowModesModelProp) {\n updateRowModesModel(rowModesModelProp);\n }\n }, [rowModesModelProp, updateRowModesModel]);\n\n // Run this effect synchronously so that the keyboard event can impact the yet-to-be-rendered input.\n useEnhancedEffect(() => {\n const idToIdLookup = gridRowsDataRowIdToIdLookupSelector(apiRef);\n\n // Update the ref here because updateStateToStopRowEditMode may change it later\n const copyOfPrevRowModesModel = prevRowModesModel.current;\n prevRowModesModel.current = deepClone(rowModesModel); // Do a deep-clone because the attributes might be changed later\n\n const ids = new Set([...Object.keys(rowModesModel), ...Object.keys(copyOfPrevRowModesModel)]);\n Array.from(ids).forEach(id => {\n const params = rowModesModel[id] ?? {\n mode: GridRowModes.View\n };\n const prevMode = copyOfPrevRowModesModel[id]?.mode || GridRowModes.View;\n const originalId = idToIdLookup[id] ?? id;\n if (params.mode === GridRowModes.Edit && prevMode === GridRowModes.View) {\n updateStateToStartRowEditMode(_extends({\n id: originalId\n }, params));\n } else if (params.mode === GridRowModes.View && prevMode === GridRowModes.Edit) {\n updateStateToStopRowEditMode(_extends({\n id: originalId\n }, params));\n }\n });\n }, [apiRef, rowModesModel, updateStateToStartRowEditMode, updateStateToStopRowEditMode]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { useGridCellEditing } from \"./useGridCellEditing.js\";\nimport { GridCellModes, GridEditModes } from \"../../../models/gridEditRowModel.js\";\nimport { useGridRowEditing } from \"./useGridRowEditing.js\";\nimport { gridEditRowsStateSelector } from \"./gridEditingSelectors.js\";\nimport { isAutogeneratedRowNode } from \"../rows/gridRowsUtils.js\";\nexport const editingStateInitializer = state => _extends({}, state, {\n editRows: {}\n});\nexport const useGridEditing = (apiRef, props) => {\n useGridCellEditing(apiRef, props);\n useGridRowEditing(apiRef, props);\n const debounceMap = React.useRef({});\n const {\n isCellEditable: isCellEditableProp\n } = props;\n const isCellEditable = React.useCallback(params => {\n if (isAutogeneratedRowNode(params.rowNode)) {\n return false;\n }\n if (!params.colDef.editable) {\n return false;\n }\n if (!params.colDef.renderEditCell) {\n return false;\n }\n if (isCellEditableProp) {\n return isCellEditableProp(params);\n }\n return true;\n }, [isCellEditableProp]);\n const maybeDebounce = (id, field, debounceMs, callback) => {\n if (!debounceMs) {\n callback();\n return;\n }\n if (!debounceMap.current[id]) {\n debounceMap.current[id] = {};\n }\n if (debounceMap.current[id][field]) {\n const [timeout] = debounceMap.current[id][field];\n clearTimeout(timeout);\n }\n\n // To run the callback immediately without waiting the timeout\n const runImmediately = () => {\n const [timeout] = debounceMap.current[id][field];\n clearTimeout(timeout);\n callback();\n delete debounceMap.current[id][field];\n };\n const timeout = setTimeout(() => {\n callback();\n delete debounceMap.current[id][field];\n }, debounceMs);\n debounceMap.current[id][field] = [timeout, runImmediately];\n };\n React.useEffect(() => {\n const debounces = debounceMap.current;\n return () => {\n Object.entries(debounces).forEach(([id, fields]) => {\n Object.keys(fields).forEach(field => {\n const [timeout] = debounces[id][field];\n clearTimeout(timeout);\n delete debounces[id][field];\n });\n });\n };\n }, []);\n const runPendingEditCellValueMutation = React.useCallback((id, field) => {\n if (!debounceMap.current[id]) {\n return;\n }\n if (!field) {\n Object.keys(debounceMap.current[id]).forEach(debouncedField => {\n const [, runCallback] = debounceMap.current[id][debouncedField];\n runCallback();\n });\n } else if (debounceMap.current[id][field]) {\n const [, runCallback] = debounceMap.current[id][field];\n runCallback();\n }\n }, []);\n const setEditCellValue = React.useCallback(params => {\n const {\n id,\n field,\n debounceMs\n } = params;\n return new Promise(resolve => {\n maybeDebounce(id, field, debounceMs, async () => {\n const setEditCellValueToCall = props.editMode === GridEditModes.Row ? apiRef.current.setRowEditingEditCellValue : apiRef.current.setCellEditingEditCellValue;\n\n // Check if the cell is in edit mode\n // By the time this callback runs the user may have cancelled the editing\n if (apiRef.current.getCellMode(id, field) === GridCellModes.Edit) {\n const result = await setEditCellValueToCall(params);\n resolve(result);\n }\n });\n });\n }, [apiRef, props.editMode]);\n const getRowWithUpdatedValues = React.useCallback((id, field) => {\n return props.editMode === GridEditModes.Cell ? apiRef.current.getRowWithUpdatedValuesFromCellEditing(id, field) : apiRef.current.getRowWithUpdatedValuesFromRowEditing(id);\n }, [apiRef, props.editMode]);\n const getEditCellMeta = React.useCallback((id, field) => {\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n return editingState[id]?.[field] ?? null;\n }, [apiRef]);\n const editingSharedApi = {\n isCellEditable,\n setEditCellValue,\n getRowWithUpdatedValues,\n unstable_getEditCellMeta: getEditCellMeta\n };\n const editingSharedPrivateApi = {\n runPendingEditCellValueMutation\n };\n useGridApiMethod(apiRef, editingSharedApi, 'public');\n useGridApiMethod(apiRef, editingSharedPrivateApi, 'private');\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useLazyRef from '@mui/utils/useLazyRef';\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { useGridLogger } from \"../../utils/useGridLogger.js\";\nimport { gridRowCountSelector, gridRowsLookupSelector, gridRowTreeSelector, gridRowGroupingNameSelector, gridRowTreeDepthsSelector, gridDataRowIdsSelector, gridRowsDataRowIdToIdLookupSelector, gridRowMaximumTreeDepthSelector, gridRowGroupsToFetchSelector } from \"./gridRowsSelector.js\";\nimport { useTimeout } from \"../../utils/useTimeout.js\";\nimport { GridSignature, useGridApiEventHandler } from \"../../utils/useGridApiEventHandler.js\";\nimport { useGridVisibleRows } from \"../../utils/useGridVisibleRows.js\";\nimport { gridSortedRowIdsSelector } from \"../sorting/gridSortingSelector.js\";\nimport { gridFilteredRowsLookupSelector } from \"../filter/gridFilterSelector.js\";\nimport { getTreeNodeDescendants, createRowsInternalCache, getRowsStateFromCache, isAutogeneratedRowNode, GRID_ROOT_GROUP_ID, GRID_ID_AUTOGENERATED, updateCacheWithNewRows, getTopLevelRowCount, getRowIdFromRowModel, computeRowsUpdates } from \"./gridRowsUtils.js\";\nimport { useGridRegisterPipeApplier } from \"../../core/pipeProcessing/index.js\";\nexport const rowsStateInitializer = (state, props, apiRef) => {\n const isDataSourceAvailable = !!props.unstable_dataSource;\n apiRef.current.caches.rows = createRowsInternalCache({\n rows: isDataSourceAvailable ? [] : props.rows,\n getRowId: props.getRowId,\n loading: props.loading,\n rowCount: props.rowCount\n });\n return _extends({}, state, {\n rows: getRowsStateFromCache({\n apiRef,\n rowCountProp: props.rowCount,\n loadingProp: isDataSourceAvailable ? true : props.loading,\n previousTree: null,\n previousTreeDepths: null\n })\n });\n};\nexport const useGridRows = (apiRef, props) => {\n if (process.env.NODE_ENV !== 'production') {\n try {\n // Freeze the `rows` prop so developers have a fast failure if they try to use Array.prototype.push().\n Object.freeze(props.rows);\n } catch (error) {\n // Sometimes, it's impossible to freeze, so we give up on it.\n }\n }\n const logger = useGridLogger(apiRef, 'useGridRows');\n const currentPage = useGridVisibleRows(apiRef, props);\n const lastUpdateMs = React.useRef(Date.now());\n const lastRowCount = React.useRef(props.rowCount);\n const timeout = useTimeout();\n const getRow = React.useCallback(id => {\n const model = gridRowsLookupSelector(apiRef)[id];\n if (model) {\n return model;\n }\n const node = apiRef.current.getRowNode(id);\n if (node && isAutogeneratedRowNode(node)) {\n return {\n [GRID_ID_AUTOGENERATED]: id\n };\n }\n return null;\n }, [apiRef]);\n const getRowIdProp = props.getRowId;\n const getRowId = React.useCallback(row => {\n if (GRID_ID_AUTOGENERATED in row) {\n return row[GRID_ID_AUTOGENERATED];\n }\n if (getRowIdProp) {\n return getRowIdProp(row);\n }\n return row.id;\n }, [getRowIdProp]);\n const lookup = React.useMemo(() => currentPage.rows.reduce((acc, {\n id\n }, index) => {\n acc[id] = index;\n return acc;\n }, {}), [currentPage.rows]);\n const throttledRowsChange = React.useCallback(({\n cache,\n throttle\n }) => {\n const run = () => {\n lastUpdateMs.current = Date.now();\n apiRef.current.setState(state => _extends({}, state, {\n rows: getRowsStateFromCache({\n apiRef,\n rowCountProp: props.rowCount,\n loadingProp: props.loading,\n previousTree: gridRowTreeSelector(apiRef),\n previousTreeDepths: gridRowTreeDepthsSelector(apiRef),\n previousGroupsToFetch: gridRowGroupsToFetchSelector(apiRef)\n })\n }));\n apiRef.current.publishEvent('rowsSet');\n apiRef.current.forceUpdate();\n };\n timeout.clear();\n apiRef.current.caches.rows = cache;\n if (!throttle) {\n run();\n return;\n }\n const throttleRemainingTimeMs = props.throttleRowsMs - (Date.now() - lastUpdateMs.current);\n if (throttleRemainingTimeMs > 0) {\n timeout.start(throttleRemainingTimeMs, run);\n return;\n }\n run();\n }, [props.throttleRowsMs, props.rowCount, props.loading, apiRef, timeout]);\n\n /**\n * API METHODS\n */\n const setRows = React.useCallback(rows => {\n logger.debug(`Updating all rows, new length ${rows.length}`);\n const cache = createRowsInternalCache({\n rows,\n getRowId: props.getRowId,\n loading: props.loading,\n rowCount: props.rowCount\n });\n const prevCache = apiRef.current.caches.rows;\n cache.rowsBeforePartialUpdates = prevCache.rowsBeforePartialUpdates;\n throttledRowsChange({\n cache,\n throttle: true\n });\n }, [logger, props.getRowId, props.loading, props.rowCount, throttledRowsChange, apiRef]);\n const updateRows = React.useCallback(updates => {\n if (props.signature === GridSignature.DataGrid && updates.length > 1) {\n throw new Error(['MUI X: You cannot update several rows at once in `apiRef.current.updateRows` on the DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\\n'));\n }\n const nonPinnedRowsUpdates = computeRowsUpdates(apiRef, updates, props.getRowId);\n const cache = updateCacheWithNewRows({\n updates: nonPinnedRowsUpdates,\n getRowId: props.getRowId,\n previousCache: apiRef.current.caches.rows\n });\n throttledRowsChange({\n cache,\n throttle: true\n });\n }, [props.signature, props.getRowId, throttledRowsChange, apiRef]);\n const updateServerRows = React.useCallback((updates, groupKeys) => {\n const nonPinnedRowsUpdates = computeRowsUpdates(apiRef, updates, props.getRowId);\n const cache = updateCacheWithNewRows({\n updates: nonPinnedRowsUpdates,\n getRowId: props.getRowId,\n previousCache: apiRef.current.caches.rows,\n groupKeys: groupKeys ?? []\n });\n throttledRowsChange({\n cache,\n throttle: false\n });\n }, [props.getRowId, throttledRowsChange, apiRef]);\n const setLoading = React.useCallback(loading => {\n if (loading === props.loading) {\n return;\n }\n logger.debug(`Setting loading to ${loading}`);\n apiRef.current.setState(state => _extends({}, state, {\n rows: _extends({}, state.rows, {\n loading\n })\n }));\n apiRef.current.caches.rows.loadingPropBeforePartialUpdates = loading;\n }, [props.loading, apiRef, logger]);\n const getRowModels = React.useCallback(() => {\n const dataRows = gridDataRowIdsSelector(apiRef);\n const idRowsLookup = gridRowsLookupSelector(apiRef);\n return new Map(dataRows.map(id => [id, idRowsLookup[id] ?? {}]));\n }, [apiRef]);\n const getRowsCount = React.useCallback(() => gridRowCountSelector(apiRef), [apiRef]);\n const getAllRowIds = React.useCallback(() => gridDataRowIdsSelector(apiRef), [apiRef]);\n const getRowIndexRelativeToVisibleRows = React.useCallback(id => lookup[id], [lookup]);\n const setRowChildrenExpansion = React.useCallback((id, isExpanded) => {\n const currentNode = apiRef.current.getRowNode(id);\n if (!currentNode) {\n throw new Error(`MUI X: No row with id #${id} found.`);\n }\n if (currentNode.type !== 'group') {\n throw new Error('MUI X: Only group nodes can be expanded or collapsed.');\n }\n const newNode = _extends({}, currentNode, {\n childrenExpanded: isExpanded\n });\n apiRef.current.setState(state => {\n return _extends({}, state, {\n rows: _extends({}, state.rows, {\n tree: _extends({}, state.rows.tree, {\n [id]: newNode\n })\n })\n });\n });\n apiRef.current.forceUpdate();\n apiRef.current.publishEvent('rowExpansionChange', newNode);\n }, [apiRef]);\n const getRowNode = React.useCallback(id => gridRowTreeSelector(apiRef)[id] ?? null, [apiRef]);\n const getRowGroupChildren = React.useCallback(({\n skipAutoGeneratedRows = true,\n groupId,\n applySorting,\n applyFiltering\n }) => {\n const tree = gridRowTreeSelector(apiRef);\n let children;\n if (applySorting) {\n const groupNode = tree[groupId];\n if (!groupNode) {\n return [];\n }\n const sortedRowIds = gridSortedRowIdsSelector(apiRef);\n children = [];\n const startIndex = sortedRowIds.findIndex(id => id === groupId) + 1;\n for (let index = startIndex; index < sortedRowIds.length && tree[sortedRowIds[index]].depth > groupNode.depth; index += 1) {\n const id = sortedRowIds[index];\n if (!skipAutoGeneratedRows || !isAutogeneratedRowNode(tree[id])) {\n children.push(id);\n }\n }\n } else {\n children = getTreeNodeDescendants(tree, groupId, skipAutoGeneratedRows);\n }\n if (applyFiltering) {\n const filteredRowsLookup = gridFilteredRowsLookupSelector(apiRef);\n children = children.filter(childId => filteredRowsLookup[childId] !== false);\n }\n return children;\n }, [apiRef]);\n const setRowIndex = React.useCallback((rowId, targetIndex) => {\n const node = apiRef.current.getRowNode(rowId);\n if (!node) {\n throw new Error(`MUI X: No row with id #${rowId} found.`);\n }\n if (node.parent !== GRID_ROOT_GROUP_ID) {\n throw new Error(`MUI X: The row reordering do not support reordering of grouped rows yet.`);\n }\n if (node.type !== 'leaf') {\n throw new Error(`MUI X: The row reordering do not support reordering of footer or grouping rows.`);\n }\n apiRef.current.setState(state => {\n const group = gridRowTreeSelector(state, apiRef.current.instanceId)[GRID_ROOT_GROUP_ID];\n const allRows = group.children;\n const oldIndex = allRows.findIndex(row => row === rowId);\n if (oldIndex === -1 || oldIndex === targetIndex) {\n return state;\n }\n logger.debug(`Moving row ${rowId} to index ${targetIndex}`);\n const updatedRows = [...allRows];\n updatedRows.splice(targetIndex, 0, updatedRows.splice(oldIndex, 1)[0]);\n return _extends({}, state, {\n rows: _extends({}, state.rows, {\n tree: _extends({}, state.rows.tree, {\n [GRID_ROOT_GROUP_ID]: _extends({}, group, {\n children: updatedRows\n })\n })\n })\n });\n });\n apiRef.current.publishEvent('rowsSet');\n }, [apiRef, logger]);\n const replaceRows = React.useCallback((firstRowToRender, newRows) => {\n if (props.signature === GridSignature.DataGrid && newRows.length > 1) {\n throw new Error(['MUI X: You cannot replace rows using `apiRef.current.unstable_replaceRows` on the DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\\n'));\n }\n if (newRows.length === 0) {\n return;\n }\n const treeDepth = gridRowMaximumTreeDepthSelector(apiRef);\n if (treeDepth > 1) {\n throw new Error('`apiRef.current.unstable_replaceRows` is not compatible with tree data and row grouping');\n }\n const tree = _extends({}, gridRowTreeSelector(apiRef));\n const dataRowIdToModelLookup = _extends({}, gridRowsLookupSelector(apiRef));\n const dataRowIdToIdLookup = _extends({}, gridRowsDataRowIdToIdLookupSelector(apiRef));\n const rootGroup = tree[GRID_ROOT_GROUP_ID];\n const rootGroupChildren = [...rootGroup.children];\n const seenIds = new Set();\n for (let i = 0; i < newRows.length; i += 1) {\n const rowModel = newRows[i];\n const rowId = getRowIdFromRowModel(rowModel, props.getRowId, 'A row was provided without id when calling replaceRows().');\n const [removedRowId] = rootGroupChildren.splice(firstRowToRender + i, 1, rowId);\n if (!seenIds.has(removedRowId)) {\n delete dataRowIdToModelLookup[removedRowId];\n delete dataRowIdToIdLookup[removedRowId];\n delete tree[removedRowId];\n }\n const rowTreeNodeConfig = {\n id: rowId,\n depth: 0,\n parent: GRID_ROOT_GROUP_ID,\n type: 'leaf',\n groupingKey: null\n };\n dataRowIdToModelLookup[rowId] = rowModel;\n dataRowIdToIdLookup[rowId] = rowId;\n tree[rowId] = rowTreeNodeConfig;\n seenIds.add(rowId);\n }\n tree[GRID_ROOT_GROUP_ID] = _extends({}, rootGroup, {\n children: rootGroupChildren\n });\n\n // Removes potential remaining skeleton rows from the dataRowIds.\n const dataRowIds = rootGroupChildren.filter(childId => tree[childId]?.type === 'leaf');\n apiRef.current.caches.rows.dataRowIdToModelLookup = dataRowIdToModelLookup;\n apiRef.current.caches.rows.dataRowIdToIdLookup = dataRowIdToIdLookup;\n apiRef.current.setState(state => _extends({}, state, {\n rows: _extends({}, state.rows, {\n dataRowIdToModelLookup,\n dataRowIdToIdLookup,\n dataRowIds,\n tree\n })\n }));\n apiRef.current.publishEvent('rowsSet');\n }, [apiRef, props.signature, props.getRowId]);\n const rowApi = {\n getRow,\n setLoading,\n getRowId,\n getRowModels,\n getRowsCount,\n getAllRowIds,\n setRows,\n updateRows,\n getRowNode,\n getRowIndexRelativeToVisibleRows,\n unstable_replaceRows: replaceRows\n };\n const rowProApi = {\n setRowIndex,\n setRowChildrenExpansion,\n getRowGroupChildren\n };\n const rowProPrivateApi = {\n updateServerRows\n };\n\n /**\n * EVENTS\n */\n const groupRows = React.useCallback(() => {\n logger.info(`Row grouping pre-processing have changed, regenerating the row tree`);\n let cache;\n if (apiRef.current.caches.rows.rowsBeforePartialUpdates === props.rows) {\n // The `props.rows` did not change since the last row grouping\n // We can use the current rows cache which contains the partial updates done recently.\n cache = _extends({}, apiRef.current.caches.rows, {\n updates: {\n type: 'full',\n rows: gridDataRowIdsSelector(apiRef)\n }\n });\n } else {\n // The `props.rows` has changed since the last row grouping\n // We must use the new `props.rows` on the new grouping\n // This occurs because this event is triggered before the `useEffect` on the rows when both the grouping pre-processing and the rows changes on the same render\n cache = createRowsInternalCache({\n rows: props.rows,\n getRowId: props.getRowId,\n loading: props.loading,\n rowCount: props.rowCount\n });\n }\n throttledRowsChange({\n cache,\n throttle: false\n });\n }, [logger, apiRef, props.rows, props.getRowId, props.loading, props.rowCount, throttledRowsChange]);\n const previousDataSource = useLazyRef(() => props.unstable_dataSource);\n const handleStrategyProcessorChange = React.useCallback(methodName => {\n if (props.unstable_dataSource && props.unstable_dataSource !== previousDataSource.current) {\n previousDataSource.current = props.unstable_dataSource;\n return;\n }\n if (methodName === 'rowTreeCreation') {\n groupRows();\n }\n }, [groupRows, previousDataSource, props.unstable_dataSource]);\n const handleStrategyActivityChange = React.useCallback(() => {\n // `rowTreeCreation` is the only processor ran when `strategyAvailabilityChange` is fired.\n // All the other processors listen to `rowsSet` which will be published by the `groupRows` method below.\n if (apiRef.current.getActiveStrategy('rowTree') !== gridRowGroupingNameSelector(apiRef)) {\n groupRows();\n }\n }, [apiRef, groupRows]);\n useGridApiEventHandler(apiRef, 'activeStrategyProcessorChange', handleStrategyProcessorChange);\n useGridApiEventHandler(apiRef, 'strategyAvailabilityChange', handleStrategyActivityChange);\n\n /**\n * APPLIERS\n */\n const applyHydrateRowsProcessor = React.useCallback(() => {\n apiRef.current.setState(state => {\n const response = apiRef.current.unstable_applyPipeProcessors('hydrateRows', {\n tree: gridRowTreeSelector(state, apiRef.current.instanceId),\n treeDepths: gridRowTreeDepthsSelector(state, apiRef.current.instanceId),\n dataRowIds: gridDataRowIdsSelector(state, apiRef.current.instanceId),\n dataRowIdToModelLookup: gridRowsLookupSelector(state, apiRef.current.instanceId),\n dataRowIdToIdLookup: gridRowsDataRowIdToIdLookupSelector(state, apiRef.current.instanceId)\n });\n return _extends({}, state, {\n rows: _extends({}, state.rows, response, {\n totalTopLevelRowCount: getTopLevelRowCount({\n tree: response.tree,\n rowCountProp: props.rowCount\n })\n })\n });\n });\n apiRef.current.publishEvent('rowsSet');\n apiRef.current.forceUpdate();\n }, [apiRef, props.rowCount]);\n useGridRegisterPipeApplier(apiRef, 'hydrateRows', applyHydrateRowsProcessor);\n useGridApiMethod(apiRef, rowApi, 'public');\n useGridApiMethod(apiRef, rowProApi, props.signature === GridSignature.DataGrid ? 'private' : 'public');\n useGridApiMethod(apiRef, rowProPrivateApi, 'private');\n\n // The effect do not track any value defined synchronously during the 1st render by hooks called after `useGridRows`\n // As a consequence, the state generated by the 1st run of this useEffect will always be equal to the initialization one\n const isFirstRender = React.useRef(true);\n React.useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n let isRowCountPropUpdated = false;\n if (props.rowCount !== lastRowCount.current) {\n isRowCountPropUpdated = true;\n lastRowCount.current = props.rowCount;\n }\n const areNewRowsAlreadyInState = apiRef.current.caches.rows.rowsBeforePartialUpdates === props.rows;\n const isNewLoadingAlreadyInState = apiRef.current.caches.rows.loadingPropBeforePartialUpdates === props.loading;\n const isNewRowCountAlreadyInState = apiRef.current.caches.rows.rowCountPropBeforePartialUpdates === props.rowCount;\n\n // The new rows have already been applied (most likely in the `'rowGroupsPreProcessingChange'` listener)\n if (areNewRowsAlreadyInState) {\n // If the loading prop has changed, we need to update its value in the state because it won't be done by `throttledRowsChange`\n if (!isNewLoadingAlreadyInState) {\n apiRef.current.setState(state => _extends({}, state, {\n rows: _extends({}, state.rows, {\n loading: props.loading\n })\n }));\n apiRef.current.caches.rows.loadingPropBeforePartialUpdates = props.loading;\n apiRef.current.forceUpdate();\n }\n if (!isNewRowCountAlreadyInState) {\n apiRef.current.setState(state => _extends({}, state, {\n rows: _extends({}, state.rows, {\n totalRowCount: Math.max(props.rowCount || 0, state.rows.totalRowCount),\n totalTopLevelRowCount: Math.max(props.rowCount || 0, state.rows.totalTopLevelRowCount)\n })\n }));\n apiRef.current.caches.rows.rowCountPropBeforePartialUpdates = props.rowCount;\n apiRef.current.forceUpdate();\n }\n if (!isRowCountPropUpdated) {\n return;\n }\n }\n logger.debug(`Updating all rows, new length ${props.rows?.length}`);\n throttledRowsChange({\n cache: createRowsInternalCache({\n rows: props.rows,\n getRowId: props.getRowId,\n loading: props.loading,\n rowCount: props.rowCount\n }),\n throttle: false\n });\n }, [props.rows, props.rowCount, props.getRowId, props.loading, logger, throttledRowsChange, apiRef]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { GRID_DEFAULT_STRATEGY, useGridRegisterStrategyProcessor } from \"../../core/strategyProcessing/index.js\";\nimport { buildRootGroup, GRID_ROOT_GROUP_ID } from \"./gridRowsUtils.js\";\nconst createFlatRowTree = rows => {\n const tree = {\n [GRID_ROOT_GROUP_ID]: _extends({}, buildRootGroup(), {\n children: rows\n })\n };\n for (let i = 0; i < rows.length; i += 1) {\n const rowId = rows[i];\n tree[rowId] = {\n id: rowId,\n depth: 0,\n parent: GRID_ROOT_GROUP_ID,\n type: 'leaf',\n groupingKey: null\n };\n }\n return {\n groupingName: GRID_DEFAULT_STRATEGY,\n tree,\n treeDepths: {\n 0: rows.length\n },\n dataRowIds: rows\n };\n};\nconst updateFlatRowTree = ({\n previousTree,\n actions\n}) => {\n const tree = _extends({}, previousTree);\n const idsToRemoveFromRootGroup = {};\n for (let i = 0; i < actions.remove.length; i += 1) {\n const idToDelete = actions.remove[i];\n idsToRemoveFromRootGroup[idToDelete] = true;\n delete tree[idToDelete];\n }\n for (let i = 0; i < actions.insert.length; i += 1) {\n const idToInsert = actions.insert[i];\n tree[idToInsert] = {\n id: idToInsert,\n depth: 0,\n parent: GRID_ROOT_GROUP_ID,\n type: 'leaf',\n groupingKey: null\n };\n }\n\n // TODO rows v6: Support row unpinning\n\n const rootGroup = tree[GRID_ROOT_GROUP_ID];\n let rootGroupChildren = [...rootGroup.children, ...actions.insert];\n if (Object.values(idsToRemoveFromRootGroup).length) {\n rootGroupChildren = rootGroupChildren.filter(id => !idsToRemoveFromRootGroup[id]);\n }\n tree[GRID_ROOT_GROUP_ID] = _extends({}, rootGroup, {\n children: rootGroupChildren\n });\n return {\n groupingName: GRID_DEFAULT_STRATEGY,\n tree,\n treeDepths: {\n 0: rootGroupChildren.length\n },\n dataRowIds: rootGroupChildren\n };\n};\nconst flatRowTreeCreationMethod = params => {\n if (params.updates.type === 'full') {\n return createFlatRowTree(params.updates.rows);\n }\n return updateFlatRowTree({\n previousTree: params.previousTree,\n actions: params.updates.actions\n });\n};\nexport const useGridRowsPreProcessors = apiRef => {\n useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'rowTreeCreation', flatRowTreeCreationMethod);\n};","import * as React from 'react';\nimport { getGridCellElement, getGridColumnHeaderElement, getGridRowElement } from \"../../../utils/domUtils.js\";\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { gridFocusCellSelector, gridTabIndexCellSelector } from \"../focus/gridFocusStateSelector.js\";\nimport { gridListColumnSelector } from \"../listView/gridListViewSelectors.js\";\nexport class MissingRowIdError extends Error {}\n\n/**\n * @requires useGridColumns (method)\n * @requires useGridRows (method)\n * @requires useGridFocus (state)\n * @requires useGridEditing (method)\n * TODO: Impossible priority - useGridEditing also needs to be after useGridParamsApi\n * TODO: Impossible priority - useGridFocus also needs to be after useGridParamsApi\n */\nexport function useGridParamsApi(apiRef, props) {\n const getColumnHeaderParams = React.useCallback(field => ({\n field,\n colDef: apiRef.current.getColumn(field)\n }), [apiRef]);\n const getRowParams = React.useCallback(id => {\n const row = apiRef.current.getRow(id);\n if (!row) {\n throw new MissingRowIdError(`No row with id #${id} found`);\n }\n const params = {\n id,\n columns: apiRef.current.getAllColumns(),\n row\n };\n return params;\n }, [apiRef]);\n const getCellParams = React.useCallback((id, field) => {\n const colDef = props.unstable_listView ? gridListColumnSelector(apiRef.current.state) : apiRef.current.getColumn(field);\n const row = apiRef.current.getRow(id);\n const rowNode = apiRef.current.getRowNode(id);\n if (!row || !rowNode) {\n throw new MissingRowIdError(`No row with id #${id} found`);\n }\n const rawValue = row[field];\n const value = colDef?.valueGetter ? colDef.valueGetter(rawValue, row, colDef, apiRef) : rawValue;\n const cellFocus = gridFocusCellSelector(apiRef);\n const cellTabIndex = gridTabIndexCellSelector(apiRef);\n const params = {\n id,\n field,\n row,\n rowNode,\n colDef,\n cellMode: apiRef.current.getCellMode(id, field),\n hasFocus: cellFocus !== null && cellFocus.field === field && cellFocus.id === id,\n tabIndex: cellTabIndex && cellTabIndex.field === field && cellTabIndex.id === id ? 0 : -1,\n value,\n formattedValue: value,\n isEditable: false,\n api: {}\n };\n if (colDef && colDef.valueFormatter) {\n params.formattedValue = colDef.valueFormatter(value, row, colDef, apiRef);\n }\n params.isEditable = colDef && apiRef.current.isCellEditable(params);\n return params;\n }, [apiRef, props.unstable_listView]);\n const getCellValue = React.useCallback((id, field) => {\n const colDef = apiRef.current.getColumn(field);\n const row = apiRef.current.getRow(id);\n if (!row) {\n throw new MissingRowIdError(`No row with id #${id} found`);\n }\n if (!colDef || !colDef.valueGetter) {\n return row[field];\n }\n return colDef.valueGetter(row[colDef.field], row, colDef, apiRef);\n }, [apiRef]);\n const getRowValue = React.useCallback((row, colDef) => {\n const field = colDef.field;\n if (!colDef || !colDef.valueGetter) {\n return row[field];\n }\n const value = row[colDef.field];\n return colDef.valueGetter(value, row, colDef, apiRef);\n }, [apiRef]);\n const getRowFormattedValue = React.useCallback((row, colDef) => {\n const value = getRowValue(row, colDef);\n if (!colDef || !colDef.valueFormatter) {\n return value;\n }\n return colDef.valueFormatter(value, row, colDef, apiRef);\n }, [apiRef, getRowValue]);\n const getColumnHeaderElement = React.useCallback(field => {\n if (!apiRef.current.rootElementRef.current) {\n return null;\n }\n return getGridColumnHeaderElement(apiRef.current.rootElementRef.current, field);\n }, [apiRef]);\n const getRowElement = React.useCallback(id => {\n if (!apiRef.current.rootElementRef.current) {\n return null;\n }\n return getGridRowElement(apiRef.current.rootElementRef.current, id);\n }, [apiRef]);\n const getCellElement = React.useCallback((id, field) => {\n if (!apiRef.current.rootElementRef.current) {\n return null;\n }\n return getGridCellElement(apiRef.current.rootElementRef.current, {\n id,\n field\n });\n }, [apiRef]);\n const paramsApi = {\n getCellValue,\n getCellParams,\n getCellElement,\n getRowValue,\n getRowFormattedValue,\n getRowParams,\n getRowElement,\n getColumnHeaderParams,\n getColumnHeaderElement\n };\n useGridApiMethod(apiRef, paramsApi, 'public');\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridSignature, useGridApiEventHandler } from \"../../utils/useGridApiEventHandler.js\";\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { useGridLogger } from \"../../utils/useGridLogger.js\";\nimport { useGridSelector } from \"../../utils/useGridSelector.js\";\nimport { gridRowsLookupSelector, gridRowMaximumTreeDepthSelector, gridRowTreeSelector } from \"../rows/gridRowsSelector.js\";\nimport { gridRowSelectionStateSelector, selectedGridRowsSelector, selectedIdsLookupSelector } from \"./gridRowSelectionSelector.js\";\nimport { gridPaginatedVisibleSortedGridRowIdsSelector } from \"../pagination/index.js\";\nimport { gridFocusCellSelector } from \"../focus/gridFocusStateSelector.js\";\nimport { gridExpandedSortedRowIdsSelector, gridFilteredRowsLookupSelector } from \"../filter/gridFilterSelector.js\";\nimport { GRID_CHECKBOX_SELECTION_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from \"../../../colDef/index.js\";\nimport { GridCellModes } from \"../../../models/gridEditRowModel.js\";\nimport { isKeyboardEvent, isNavigationKey } from \"../../../utils/keyboardUtils.js\";\nimport { useGridVisibleRows } from \"../../utils/useGridVisibleRows.js\";\nimport { GRID_DETAIL_PANEL_TOGGLE_FIELD } from \"../../../internals/constants.js\";\nimport { gridClasses } from \"../../../constants/gridClasses.js\";\nimport { isEventTargetInPortal } from \"../../../utils/domUtils.js\";\nimport { isMultipleRowSelectionEnabled, findRowsToSelect, findRowsToDeselect } from \"./utils.js\";\nconst getSelectionModelPropValue = (selectionModelProp, prevSelectionModel) => {\n if (selectionModelProp == null) {\n return selectionModelProp;\n }\n if (Array.isArray(selectionModelProp)) {\n return selectionModelProp;\n }\n if (prevSelectionModel && prevSelectionModel[0] === selectionModelProp) {\n return prevSelectionModel;\n }\n return [selectionModelProp];\n};\nexport const rowSelectionStateInitializer = (state, props) => _extends({}, state, {\n rowSelection: props.rowSelection ? getSelectionModelPropValue(props.rowSelectionModel) ?? [] : []\n});\n\n/**\n * @requires useGridRows (state, method) - can be after\n * @requires useGridParamsApi (method) - can be after\n * @requires useGridFocus (state) - can be after\n * @requires useGridKeyboardNavigation (`cellKeyDown` event must first be consumed by it)\n */\nexport const useGridRowSelection = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridSelection');\n const runIfRowSelectionIsEnabled = React.useCallback(callback => (...args) => {\n if (props.rowSelection) {\n callback(...args);\n }\n }, [props.rowSelection]);\n const applyAutoSelection = props.signature !== GridSignature.DataGrid && (props.rowSelectionPropagation?.parents || props.rowSelectionPropagation?.descendants);\n const propRowSelectionModel = React.useMemo(() => {\n return getSelectionModelPropValue(props.rowSelectionModel, gridRowSelectionStateSelector(apiRef.current.state));\n }, [apiRef, props.rowSelectionModel]);\n const lastRowToggled = React.useRef(null);\n apiRef.current.registerControlState({\n stateId: 'rowSelection',\n propModel: propRowSelectionModel,\n propOnChange: props.onRowSelectionModelChange,\n stateSelector: gridRowSelectionStateSelector,\n changeEvent: 'rowSelectionChange'\n });\n const {\n checkboxSelection,\n disableRowSelectionOnClick,\n isRowSelectable: propIsRowSelectable\n } = props;\n const canHaveMultipleSelection = isMultipleRowSelectionEnabled(props);\n const visibleRows = useGridVisibleRows(apiRef, props);\n const tree = useGridSelector(apiRef, gridRowTreeSelector);\n const isNestedData = useGridSelector(apiRef, gridRowMaximumTreeDepthSelector) > 1;\n const expandMouseRowRangeSelection = React.useCallback(id => {\n let endId = id;\n const startId = lastRowToggled.current ?? id;\n const isSelected = apiRef.current.isRowSelected(id);\n if (isSelected) {\n const visibleRowIds = gridExpandedSortedRowIdsSelector(apiRef);\n const startIndex = visibleRowIds.findIndex(rowId => rowId === startId);\n const endIndex = visibleRowIds.findIndex(rowId => rowId === endId);\n if (startIndex === endIndex) {\n return;\n }\n if (startIndex > endIndex) {\n endId = visibleRowIds[endIndex + 1];\n } else {\n endId = visibleRowIds[endIndex - 1];\n }\n }\n lastRowToggled.current = id;\n apiRef.current.selectRowRange({\n startId,\n endId\n }, !isSelected);\n }, [apiRef]);\n\n /*\n * API METHODS\n */\n const setRowSelectionModel = React.useCallback(model => {\n if (props.signature === GridSignature.DataGrid && !canHaveMultipleSelection && Array.isArray(model) && model.length > 1) {\n throw new Error(['MUI X: `rowSelectionModel` can only contain 1 item in DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock multiple selection.'].join('\\n'));\n }\n const currentModel = gridRowSelectionStateSelector(apiRef.current.state);\n if (currentModel !== model) {\n logger.debug(`Setting selection model`);\n apiRef.current.setState(state => _extends({}, state, {\n rowSelection: props.rowSelection ? model : []\n }));\n apiRef.current.forceUpdate();\n }\n }, [apiRef, logger, props.rowSelection, props.signature, canHaveMultipleSelection]);\n const isRowSelected = React.useCallback(id => gridRowSelectionStateSelector(apiRef.current.state).includes(id), [apiRef]);\n const isRowSelectable = React.useCallback(id => {\n if (props.rowSelection === false) {\n return false;\n }\n if (propIsRowSelectable && !propIsRowSelectable(apiRef.current.getRowParams(id))) {\n return false;\n }\n const rowNode = apiRef.current.getRowNode(id);\n if (rowNode?.type === 'footer' || rowNode?.type === 'pinnedRow') {\n return false;\n }\n return true;\n }, [apiRef, props.rowSelection, propIsRowSelectable]);\n const getSelectedRows = React.useCallback(() => selectedGridRowsSelector(apiRef), [apiRef]);\n const selectRow = React.useCallback((id, isSelected = true, resetSelection = false) => {\n if (!apiRef.current.isRowSelectable(id)) {\n return;\n }\n lastRowToggled.current = id;\n if (resetSelection) {\n logger.debug(`Setting selection for row ${id}`);\n const newSelection = [];\n const addRow = rowId => {\n newSelection.push(rowId);\n };\n if (isSelected) {\n addRow(id);\n if (applyAutoSelection) {\n findRowsToSelect(apiRef, tree, id, props.rowSelectionPropagation?.descendants ?? false, props.rowSelectionPropagation?.parents ?? false, addRow);\n }\n }\n apiRef.current.setRowSelectionModel(newSelection);\n } else {\n logger.debug(`Toggling selection for row ${id}`);\n const selection = gridRowSelectionStateSelector(apiRef.current.state);\n const newSelection = new Set(selection);\n newSelection.delete(id);\n const addRow = rowId => {\n newSelection.add(rowId);\n };\n const removeRow = rowId => {\n newSelection.delete(rowId);\n };\n if (isSelected) {\n addRow(id);\n if (applyAutoSelection) {\n findRowsToSelect(apiRef, tree, id, props.rowSelectionPropagation?.descendants ?? false, props.rowSelectionPropagation?.parents ?? false, addRow);\n }\n } else if (applyAutoSelection) {\n findRowsToDeselect(apiRef, tree, id, props.rowSelectionPropagation?.descendants ?? false, props.rowSelectionPropagation?.parents ?? false, removeRow);\n }\n const isSelectionValid = newSelection.size < 2 || canHaveMultipleSelection;\n if (isSelectionValid) {\n apiRef.current.setRowSelectionModel(Array.from(newSelection));\n }\n }\n }, [apiRef, logger, applyAutoSelection, tree, props.rowSelectionPropagation?.descendants, props.rowSelectionPropagation?.parents, canHaveMultipleSelection]);\n const selectRows = React.useCallback((ids, isSelected = true, resetSelection = false) => {\n logger.debug(`Setting selection for several rows`);\n const selectableIds = ids.filter(id => apiRef.current.isRowSelectable(id));\n let newSelection;\n if (resetSelection) {\n if (isSelected) {\n newSelection = new Set(selectableIds);\n if (applyAutoSelection) {\n const addRow = rowId => {\n newSelection.add(rowId);\n };\n selectableIds.forEach(id => {\n findRowsToSelect(apiRef, tree, id, props.rowSelectionPropagation?.descendants ?? false, props.rowSelectionPropagation?.parents ?? false, addRow);\n });\n }\n } else {\n newSelection = new Set();\n }\n const currentLookup = selectedIdsLookupSelector(apiRef);\n if (newSelection.size === Object.keys(currentLookup).length && Array.from(newSelection).every(id => currentLookup[id] === id)) {\n return;\n }\n } else {\n newSelection = new Set(Object.values(selectedIdsLookupSelector(apiRef)));\n const addRow = rowId => {\n newSelection.add(rowId);\n };\n const removeRow = rowId => {\n newSelection.delete(rowId);\n };\n selectableIds.forEach(id => {\n if (isSelected) {\n newSelection.add(id);\n if (applyAutoSelection) {\n findRowsToSelect(apiRef, tree, id, props.rowSelectionPropagation?.descendants ?? false, props.rowSelectionPropagation?.parents ?? false, addRow);\n }\n } else {\n removeRow(id);\n if (applyAutoSelection) {\n findRowsToDeselect(apiRef, tree, id, props.rowSelectionPropagation?.descendants ?? false, props.rowSelectionPropagation?.parents ?? false, removeRow);\n }\n }\n });\n }\n const isSelectionValid = newSelection.size < 2 || canHaveMultipleSelection;\n if (isSelectionValid) {\n apiRef.current.setRowSelectionModel(Array.from(newSelection));\n }\n }, [logger, applyAutoSelection, canHaveMultipleSelection, apiRef, tree, props.rowSelectionPropagation?.descendants, props.rowSelectionPropagation?.parents]);\n const selectRowRange = React.useCallback(({\n startId,\n endId\n }, isSelected = true, resetSelection = false) => {\n if (!apiRef.current.getRow(startId) || !apiRef.current.getRow(endId)) {\n return;\n }\n logger.debug(`Expanding selection from row ${startId} to row ${endId}`);\n\n // Using rows from all pages allow to select a range across several pages\n const allPagesRowIds = gridExpandedSortedRowIdsSelector(apiRef);\n const startIndex = allPagesRowIds.indexOf(startId);\n const endIndex = allPagesRowIds.indexOf(endId);\n const [start, end] = startIndex > endIndex ? [endIndex, startIndex] : [startIndex, endIndex];\n const rowsBetweenStartAndEnd = allPagesRowIds.slice(start, end + 1);\n apiRef.current.selectRows(rowsBetweenStartAndEnd, isSelected, resetSelection);\n }, [apiRef, logger]);\n const selectionPublicApi = {\n selectRow,\n setRowSelectionModel,\n getSelectedRows,\n isRowSelected,\n isRowSelectable\n };\n const selectionPrivateApi = {\n selectRows,\n selectRowRange\n };\n useGridApiMethod(apiRef, selectionPublicApi, 'public');\n useGridApiMethod(apiRef, selectionPrivateApi, props.signature === GridSignature.DataGrid ? 'private' : 'public');\n\n /*\n * EVENTS\n */\n const removeOutdatedSelection = React.useCallback((sortModelUpdated = false) => {\n const currentSelection = gridRowSelectionStateSelector(apiRef.current.state);\n const rowsLookup = gridRowsLookupSelector(apiRef);\n const filteredRowsLookup = gridFilteredRowsLookupSelector(apiRef);\n\n // We clone the existing object to avoid mutating the same object returned by the selector to others part of the project\n const selectionLookup = _extends({}, selectedIdsLookupSelector(apiRef));\n const isNonExistent = id => {\n if (props.filterMode === 'server') {\n return !rowsLookup[id];\n }\n return filteredRowsLookup[id] !== true;\n };\n let hasChanged = false;\n currentSelection.forEach(id => {\n if (isNonExistent(id)) {\n if (props.keepNonExistentRowsSelected) {\n return;\n }\n delete selectionLookup[id];\n hasChanged = true;\n return;\n }\n if (!props.rowSelectionPropagation?.parents) {\n return;\n }\n const node = tree[id];\n if (node.type === 'group') {\n const isAutoGenerated = node.isAutoGenerated;\n if (isAutoGenerated) {\n delete selectionLookup[id];\n hasChanged = true;\n return;\n }\n // Keep previously selected tree data parents selected if all their children are filtered out\n if (!node.children.every(childId => filteredRowsLookup[childId] === false)) {\n delete selectionLookup[id];\n hasChanged = true;\n }\n }\n });\n\n // For nested data, on row tree updation (filtering, adding rows, etc.) when the selection is\n // not empty, we need to re-run scanning of the tree to propagate the selection changes\n // Example: A parent whose de-selected children are filtered out should now be selected\n const shouldReapplyPropagation = isNestedData && props.rowSelectionPropagation?.parents && Object.keys(selectionLookup).length > 0;\n if (hasChanged || shouldReapplyPropagation && !sortModelUpdated) {\n const newSelection = Object.values(selectionLookup);\n if (shouldReapplyPropagation) {\n apiRef.current.selectRows(newSelection, true, true);\n } else {\n apiRef.current.setRowSelectionModel(newSelection);\n }\n }\n }, [apiRef, isNestedData, props.rowSelectionPropagation?.parents, props.keepNonExistentRowsSelected, props.filterMode, tree]);\n const handleSingleRowSelection = React.useCallback((id, event) => {\n const hasCtrlKey = event.metaKey || event.ctrlKey;\n\n // multiple selection is only allowed if:\n // - it is a checkboxSelection\n // - it is a keyboard selection\n // - Ctrl is pressed\n\n const isMultipleSelectionDisabled = !checkboxSelection && !hasCtrlKey && !isKeyboardEvent(event);\n const resetSelection = !canHaveMultipleSelection || isMultipleSelectionDisabled;\n const isSelected = apiRef.current.isRowSelected(id);\n if (resetSelection) {\n apiRef.current.selectRow(id, !isMultipleSelectionDisabled ? !isSelected : true, true);\n } else {\n apiRef.current.selectRow(id, !isSelected, false);\n }\n }, [apiRef, canHaveMultipleSelection, checkboxSelection]);\n const handleRowClick = React.useCallback((params, event) => {\n if (disableRowSelectionOnClick) {\n return;\n }\n const field = event.target.closest(`.${gridClasses.cell}`)?.getAttribute('data-field');\n if (field === GRID_CHECKBOX_SELECTION_COL_DEF.field) {\n // click on checkbox should not trigger row selection\n return;\n }\n if (field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {\n // click to open the detail panel should not select the row\n return;\n }\n if (field) {\n const column = apiRef.current.getColumn(field);\n if (column?.type === GRID_ACTIONS_COLUMN_TYPE) {\n return;\n }\n }\n const rowNode = apiRef.current.getRowNode(params.id);\n if (rowNode.type === 'pinnedRow') {\n return;\n }\n if (event.shiftKey && canHaveMultipleSelection) {\n expandMouseRowRangeSelection(params.id);\n } else {\n handleSingleRowSelection(params.id, event);\n }\n }, [disableRowSelectionOnClick, canHaveMultipleSelection, apiRef, expandMouseRowRangeSelection, handleSingleRowSelection]);\n const preventSelectionOnShift = React.useCallback((params, event) => {\n if (canHaveMultipleSelection && event.shiftKey) {\n window.getSelection()?.removeAllRanges();\n }\n }, [canHaveMultipleSelection]);\n const handleRowSelectionCheckboxChange = React.useCallback((params, event) => {\n if (canHaveMultipleSelection && event.nativeEvent.shiftKey) {\n expandMouseRowRangeSelection(params.id);\n } else {\n apiRef.current.selectRow(params.id, params.value, !canHaveMultipleSelection);\n }\n }, [apiRef, expandMouseRowRangeSelection, canHaveMultipleSelection]);\n const handleHeaderSelectionCheckboxChange = React.useCallback(params => {\n const rowsToBeSelected = props.pagination && props.checkboxSelectionVisibleOnly && props.paginationMode === 'client' ? gridPaginatedVisibleSortedGridRowIdsSelector(apiRef) : gridExpandedSortedRowIdsSelector(apiRef);\n apiRef.current.selectRows(rowsToBeSelected, params.value);\n }, [apiRef, props.checkboxSelectionVisibleOnly, props.pagination, props.paginationMode]);\n const handleCellKeyDown = React.useCallback((params, event) => {\n // Get the most recent cell mode because it may have been changed by another listener\n if (apiRef.current.getCellMode(params.id, params.field) === GridCellModes.Edit) {\n return;\n }\n\n // Ignore portal\n // Do not apply shortcuts if the focus is not on the cell root component\n if (isEventTargetInPortal(event)) {\n return;\n }\n if (isNavigationKey(event.key) && event.shiftKey) {\n // The cell that has focus after the keyboard navigation\n const focusCell = gridFocusCellSelector(apiRef);\n if (focusCell && focusCell.id !== params.id) {\n event.preventDefault();\n const isNextRowSelected = apiRef.current.isRowSelected(focusCell.id);\n if (!canHaveMultipleSelection) {\n apiRef.current.selectRow(focusCell.id, !isNextRowSelected, true);\n return;\n }\n const newRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(focusCell.id);\n const previousRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(params.id);\n let start;\n let end;\n if (newRowIndex > previousRowIndex) {\n if (isNextRowSelected) {\n // We are navigating to the bottom of the page and adding selected rows\n start = previousRowIndex;\n end = newRowIndex - 1;\n } else {\n // We are navigating to the bottom of the page and removing selected rows\n start = previousRowIndex;\n end = newRowIndex;\n }\n } else {\n // eslint-disable-next-line no-lonely-if\n if (isNextRowSelected) {\n // We are navigating to the top of the page and removing selected rows\n start = newRowIndex + 1;\n end = previousRowIndex;\n } else {\n // We are navigating to the top of the page and adding selected rows\n start = newRowIndex;\n end = previousRowIndex;\n }\n }\n const rowsBetweenStartAndEnd = visibleRows.rows.slice(start, end + 1).map(row => row.id);\n apiRef.current.selectRows(rowsBetweenStartAndEnd, !isNextRowSelected);\n return;\n }\n }\n if (event.key === ' ' && event.shiftKey) {\n event.preventDefault();\n handleSingleRowSelection(params.id, event);\n return;\n }\n if (String.fromCharCode(event.keyCode) === 'A' && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n selectRows(apiRef.current.getAllRowIds(), true);\n }\n }, [apiRef, handleSingleRowSelection, selectRows, visibleRows.rows, canHaveMultipleSelection]);\n useGridApiEventHandler(apiRef, 'sortedRowsSet', runIfRowSelectionIsEnabled(() => removeOutdatedSelection(true)));\n useGridApiEventHandler(apiRef, 'filteredRowsSet', runIfRowSelectionIsEnabled(removeOutdatedSelection));\n useGridApiEventHandler(apiRef, 'rowClick', runIfRowSelectionIsEnabled(handleRowClick));\n useGridApiEventHandler(apiRef, 'rowSelectionCheckboxChange', runIfRowSelectionIsEnabled(handleRowSelectionCheckboxChange));\n useGridApiEventHandler(apiRef, 'headerSelectionCheckboxChange', handleHeaderSelectionCheckboxChange);\n useGridApiEventHandler(apiRef, 'cellMouseDown', runIfRowSelectionIsEnabled(preventSelectionOnShift));\n useGridApiEventHandler(apiRef, 'cellKeyDown', runIfRowSelectionIsEnabled(handleCellKeyDown));\n\n /*\n * EFFECTS\n */\n React.useEffect(() => {\n if (propRowSelectionModel !== undefined) {\n apiRef.current.setRowSelectionModel(propRowSelectionModel);\n }\n }, [apiRef, propRowSelectionModel, props.rowSelection]);\n React.useEffect(() => {\n if (!props.rowSelection) {\n apiRef.current.setRowSelectionModel([]);\n }\n }, [apiRef, props.rowSelection]);\n const isStateControlled = propRowSelectionModel != null;\n React.useEffect(() => {\n if (isStateControlled || !props.rowSelection) {\n return;\n }\n\n // props.isRowSelectable changed\n const currentSelection = gridRowSelectionStateSelector(apiRef.current.state);\n if (isRowSelectable) {\n const newSelection = currentSelection.filter(id => isRowSelectable(id));\n if (newSelection.length < currentSelection.length) {\n apiRef.current.setRowSelectionModel(newSelection);\n }\n }\n }, [apiRef, isRowSelectable, isStateControlled, props.rowSelection]);\n React.useEffect(() => {\n if (!props.rowSelection || isStateControlled) {\n return;\n }\n const currentSelection = gridRowSelectionStateSelector(apiRef.current.state);\n if (!canHaveMultipleSelection && currentSelection.length > 1) {\n // See https://github.com/mui/mui-x/issues/8455\n apiRef.current.setRowSelectionModel([]);\n }\n }, [apiRef, canHaveMultipleSelection, checkboxSelection, isStateControlled, props.rowSelection]);\n React.useEffect(() => {\n runIfRowSelectionIsEnabled(removeOutdatedSelection);\n }, [removeOutdatedSelection, runIfRowSelectionIsEnabled]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useGridRegisterPipeProcessor } from \"../../core/pipeProcessing/index.js\";\nimport { getDataGridUtilityClass } from \"../../../constants/index.js\";\nimport { GRID_CHECKBOX_SELECTION_COL_DEF, GRID_CHECKBOX_SELECTION_FIELD } from \"../../../colDef/index.js\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n return React.useMemo(() => {\n const slots = {\n cellCheckbox: ['cellCheckbox'],\n columnHeaderCheckbox: ['columnHeaderCheckbox']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n }, [classes]);\n};\nexport const useGridRowSelectionPreProcessors = (apiRef, props) => {\n const ownerState = {\n classes: props.classes\n };\n const classes = useUtilityClasses(ownerState);\n const updateSelectionColumn = React.useCallback(columnsState => {\n const selectionColumn = _extends({}, GRID_CHECKBOX_SELECTION_COL_DEF, {\n cellClassName: classes.cellCheckbox,\n headerClassName: classes.columnHeaderCheckbox,\n headerName: apiRef.current.getLocaleText('checkboxSelectionHeaderName')\n });\n const shouldHaveSelectionColumn = props.checkboxSelection;\n const haveSelectionColumn = columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD] != null;\n if (shouldHaveSelectionColumn && !haveSelectionColumn) {\n columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD] = selectionColumn;\n columnsState.orderedFields = [GRID_CHECKBOX_SELECTION_FIELD, ...columnsState.orderedFields];\n } else if (!shouldHaveSelectionColumn && haveSelectionColumn) {\n delete columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD];\n columnsState.orderedFields = columnsState.orderedFields.filter(field => field !== GRID_CHECKBOX_SELECTION_FIELD);\n } else if (shouldHaveSelectionColumn && haveSelectionColumn) {\n columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD] = _extends({}, selectionColumn, columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD]);\n }\n return columnsState;\n }, [apiRef, classes, props.checkboxSelection]);\n useGridRegisterPipeProcessor(apiRef, 'hydrateColumns', updateSelectionColumn);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { useGridApiEventHandler } from \"../../utils/useGridApiEventHandler.js\";\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { useGridLogger } from \"../../utils/useGridLogger.js\";\nimport { gridColumnLookupSelector } from \"../columns/gridColumnsSelector.js\";\nimport { gridSortedRowEntriesSelector, gridSortedRowIdsSelector, gridSortModelSelector } from \"./gridSortingSelector.js\";\nimport { GRID_ROOT_GROUP_ID, gridRowTreeSelector } from \"../rows/index.js\";\nimport { useFirstRender } from \"../../utils/useFirstRender.js\";\nimport { useGridRegisterStrategyProcessor, GRID_DEFAULT_STRATEGY } from \"../../core/strategyProcessing/index.js\";\nimport { buildAggregatedSortingApplier, mergeStateWithSortModel, getNextGridSortDirection, sanitizeSortModel } from \"./gridSortingUtils.js\";\nimport { useGridRegisterPipeProcessor } from \"../../core/pipeProcessing/index.js\";\nimport { getTreeNodeDescendants } from \"../rows/gridRowsUtils.js\";\nexport const sortingStateInitializer = (state, props) => {\n const sortModel = props.sortModel ?? props.initialState?.sorting?.sortModel ?? [];\n return _extends({}, state, {\n sorting: {\n sortModel: sanitizeSortModel(sortModel, props.disableMultipleColumnsSorting),\n sortedRows: []\n }\n });\n};\n\n/**\n * @requires useGridRows (event)\n * @requires useGridColumns (event)\n */\nexport const useGridSorting = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridSorting');\n apiRef.current.registerControlState({\n stateId: 'sortModel',\n propModel: props.sortModel,\n propOnChange: props.onSortModelChange,\n stateSelector: gridSortModelSelector,\n changeEvent: 'sortModelChange'\n });\n const upsertSortModel = React.useCallback((field, sortItem) => {\n const sortModel = gridSortModelSelector(apiRef);\n const existingIdx = sortModel.findIndex(c => c.field === field);\n let newSortModel = [...sortModel];\n if (existingIdx > -1) {\n if (sortItem?.sort == null) {\n newSortModel.splice(existingIdx, 1);\n } else {\n newSortModel.splice(existingIdx, 1, sortItem);\n }\n } else {\n newSortModel = [...sortModel, sortItem];\n }\n return newSortModel;\n }, [apiRef]);\n const createSortItem = React.useCallback((col, directionOverride) => {\n const sortModel = gridSortModelSelector(apiRef);\n const existing = sortModel.find(c => c.field === col.field);\n if (existing) {\n const nextSort = directionOverride === undefined ? getNextGridSortDirection(col.sortingOrder ?? props.sortingOrder, existing.sort) : directionOverride;\n return nextSort === undefined ? undefined : _extends({}, existing, {\n sort: nextSort\n });\n }\n return {\n field: col.field,\n sort: directionOverride === undefined ? getNextGridSortDirection(col.sortingOrder ?? props.sortingOrder) : directionOverride\n };\n }, [apiRef, props.sortingOrder]);\n const addColumnMenuItem = React.useCallback((columnMenuItems, colDef) => {\n if (colDef == null || colDef.sortable === false || props.disableColumnSorting) {\n return columnMenuItems;\n }\n const sortingOrder = colDef.sortingOrder || props.sortingOrder;\n if (sortingOrder.some(item => !!item)) {\n return [...columnMenuItems, 'columnMenuSortItem'];\n }\n return columnMenuItems;\n }, [props.sortingOrder, props.disableColumnSorting]);\n\n /**\n * API METHODS\n */\n const applySorting = React.useCallback(() => {\n apiRef.current.setState(state => {\n if (props.sortingMode === 'server') {\n logger.debug('Skipping sorting rows as sortingMode = server');\n return _extends({}, state, {\n sorting: _extends({}, state.sorting, {\n sortedRows: getTreeNodeDescendants(gridRowTreeSelector(apiRef), GRID_ROOT_GROUP_ID, false)\n })\n });\n }\n const sortModel = gridSortModelSelector(state, apiRef.current.instanceId);\n const sortRowList = buildAggregatedSortingApplier(sortModel, apiRef);\n const sortedRows = apiRef.current.applyStrategyProcessor('sorting', {\n sortRowList\n });\n return _extends({}, state, {\n sorting: _extends({}, state.sorting, {\n sortedRows\n })\n });\n });\n apiRef.current.publishEvent('sortedRowsSet');\n apiRef.current.forceUpdate();\n }, [apiRef, logger, props.sortingMode]);\n const setSortModel = React.useCallback(model => {\n const currentModel = gridSortModelSelector(apiRef);\n if (currentModel !== model) {\n logger.debug(`Setting sort model`);\n apiRef.current.setState(mergeStateWithSortModel(model, props.disableMultipleColumnsSorting));\n apiRef.current.forceUpdate();\n apiRef.current.applySorting();\n }\n }, [apiRef, logger, props.disableMultipleColumnsSorting]);\n const sortColumn = React.useCallback((field, direction, allowMultipleSorting) => {\n const column = apiRef.current.getColumn(field);\n const sortItem = createSortItem(column, direction);\n let sortModel;\n if (!allowMultipleSorting || props.disableMultipleColumnsSorting) {\n sortModel = sortItem?.sort == null ? [] : [sortItem];\n } else {\n sortModel = upsertSortModel(column.field, sortItem);\n }\n apiRef.current.setSortModel(sortModel);\n }, [apiRef, upsertSortModel, createSortItem, props.disableMultipleColumnsSorting]);\n const getSortModel = React.useCallback(() => gridSortModelSelector(apiRef), [apiRef]);\n const getSortedRows = React.useCallback(() => {\n const sortedRows = gridSortedRowEntriesSelector(apiRef);\n return sortedRows.map(row => row.model);\n }, [apiRef]);\n const getSortedRowIds = React.useCallback(() => gridSortedRowIdsSelector(apiRef), [apiRef]);\n const getRowIdFromRowIndex = React.useCallback(index => apiRef.current.getSortedRowIds()[index], [apiRef]);\n const sortApi = {\n getSortModel,\n getSortedRows,\n getSortedRowIds,\n getRowIdFromRowIndex,\n setSortModel,\n sortColumn,\n applySorting\n };\n useGridApiMethod(apiRef, sortApi, 'public');\n\n /**\n * PRE-PROCESSING\n */\n const stateExportPreProcessing = React.useCallback((prevState, context) => {\n const sortModelToExport = gridSortModelSelector(apiRef);\n const shouldExportSortModel =\n // Always export if the `exportOnlyDirtyModels` property is not activated\n !context.exportOnlyDirtyModels ||\n // Always export if the model is controlled\n props.sortModel != null ||\n // Always export if the model has been initialized\n props.initialState?.sorting?.sortModel != null ||\n // Export if the model is not empty\n sortModelToExport.length > 0;\n if (!shouldExportSortModel) {\n return prevState;\n }\n return _extends({}, prevState, {\n sorting: {\n sortModel: sortModelToExport\n }\n });\n }, [apiRef, props.sortModel, props.initialState?.sorting?.sortModel]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n const sortModel = context.stateToRestore.sorting?.sortModel;\n if (sortModel == null) {\n return params;\n }\n apiRef.current.setState(mergeStateWithSortModel(sortModel, props.disableMultipleColumnsSorting));\n return _extends({}, params, {\n callbacks: [...params.callbacks, apiRef.current.applySorting]\n });\n }, [apiRef, props.disableMultipleColumnsSorting]);\n const flatSortingMethod = React.useCallback(params => {\n const rowTree = gridRowTreeSelector(apiRef);\n const rootGroupNode = rowTree[GRID_ROOT_GROUP_ID];\n const sortedChildren = params.sortRowList ? params.sortRowList(rootGroupNode.children.map(childId => rowTree[childId])) : [...rootGroupNode.children];\n if (rootGroupNode.footerId != null) {\n sortedChildren.push(rootGroupNode.footerId);\n }\n return sortedChildren;\n }, [apiRef]);\n useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'sorting', flatSortingMethod);\n\n /**\n * EVENTS\n */\n const handleColumnHeaderClick = React.useCallback(({\n field,\n colDef\n }, event) => {\n if (!colDef.sortable || props.disableColumnSorting) {\n return;\n }\n const allowMultipleSorting = event.shiftKey || event.metaKey || event.ctrlKey;\n sortColumn(field, undefined, allowMultipleSorting);\n }, [sortColumn, props.disableColumnSorting]);\n const handleColumnHeaderKeyDown = React.useCallback(({\n field,\n colDef\n }, event) => {\n if (!colDef.sortable || props.disableColumnSorting) {\n return;\n }\n // Ctrl + Enter opens the column menu\n if (event.key === 'Enter' && !event.ctrlKey && !event.metaKey) {\n sortColumn(field, undefined, event.shiftKey);\n }\n }, [sortColumn, props.disableColumnSorting]);\n const handleColumnsChange = React.useCallback(() => {\n // When the columns change we check that the sorted columns are still part of the dataset\n const sortModel = gridSortModelSelector(apiRef);\n const latestColumns = gridColumnLookupSelector(apiRef);\n if (sortModel.length > 0) {\n const newModel = sortModel.filter(sortItem => latestColumns[sortItem.field]);\n if (newModel.length < sortModel.length) {\n apiRef.current.setSortModel(newModel);\n }\n }\n }, [apiRef]);\n const handleStrategyProcessorChange = React.useCallback(methodName => {\n if (methodName === 'sorting') {\n apiRef.current.applySorting();\n }\n }, [apiRef]);\n useGridRegisterPipeProcessor(apiRef, 'columnMenu', addColumnMenuItem);\n useGridApiEventHandler(apiRef, 'columnHeaderClick', handleColumnHeaderClick);\n useGridApiEventHandler(apiRef, 'columnHeaderKeyDown', handleColumnHeaderKeyDown);\n useGridApiEventHandler(apiRef, 'rowsSet', apiRef.current.applySorting);\n useGridApiEventHandler(apiRef, 'columnsChange', handleColumnsChange);\n useGridApiEventHandler(apiRef, 'activeStrategyProcessorChange', handleStrategyProcessorChange);\n\n /**\n * 1ST RENDER\n */\n useFirstRender(() => {\n apiRef.current.applySorting();\n });\n\n /**\n * EFFECTS\n */\n useEnhancedEffect(() => {\n if (props.sortModel !== undefined) {\n apiRef.current.setSortModel(props.sortModel);\n }\n }, [apiRef, props.sortModel]);\n};","import * as React from 'react';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { useGridLogger } from \"../../utils/useGridLogger.js\";\nimport { gridColumnPositionsSelector, gridVisibleColumnDefinitionsSelector } from \"../columns/gridColumnsSelector.js\";\nimport { useGridSelector } from \"../../utils/useGridSelector.js\";\nimport { gridPageSelector, gridPageSizeSelector } from \"../pagination/gridPaginationSelector.js\";\nimport { gridRowCountSelector } from \"../rows/gridRowsSelector.js\";\nimport { gridRowsMetaSelector } from \"../rows/gridRowsMetaSelector.js\";\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { gridExpandedSortedRowEntriesSelector } from \"../filter/gridFilterSelector.js\";\nimport { gridDimensionsSelector } from \"../dimensions/index.js\";\nimport { gridListColumnSelector } from \"../listView/gridListViewSelectors.js\";\n\n// Logic copied from https://www.w3.org/TR/wai-aria-practices/examples/listbox/js/listbox.js\n// Similar to https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView\nfunction scrollIntoView(dimensions) {\n const {\n containerSize,\n scrollPosition,\n elementSize,\n elementOffset\n } = dimensions;\n const elementEnd = elementOffset + elementSize;\n // Always scroll to top when cell is higher than viewport to avoid scroll jump\n // See https://github.com/mui/mui-x/issues/4513 and https://github.com/mui/mui-x/issues/4514\n if (elementSize > containerSize) {\n return elementOffset;\n }\n if (elementEnd - containerSize > scrollPosition) {\n return elementEnd - containerSize;\n }\n if (elementOffset < scrollPosition) {\n return elementOffset;\n }\n return undefined;\n}\n\n/**\n * @requires useGridPagination (state) - can be after, async only\n * @requires useGridColumns (state) - can be after, async only\n * @requires useGridRows (state) - can be after, async only\n * @requires useGridRowsMeta (state) - can be after, async only\n * @requires useGridFilter (state)\n * @requires useGridColumnSpanning (method)\n */\nexport const useGridScroll = (apiRef, props) => {\n const isRtl = useRtl();\n const logger = useGridLogger(apiRef, 'useGridScroll');\n const colRef = apiRef.current.columnHeadersContainerRef;\n const virtualScrollerRef = apiRef.current.virtualScrollerRef;\n const visibleSortedRows = useGridSelector(apiRef, gridExpandedSortedRowEntriesSelector);\n const scrollToIndexes = React.useCallback(params => {\n const dimensions = gridDimensionsSelector(apiRef.current.state);\n const totalRowCount = gridRowCountSelector(apiRef);\n const visibleColumns = props.unstable_listView ? [gridListColumnSelector(apiRef.current.state)] : gridVisibleColumnDefinitionsSelector(apiRef);\n const scrollToHeader = params.rowIndex == null;\n if (!scrollToHeader && totalRowCount === 0 || visibleColumns.length === 0) {\n return false;\n }\n logger.debug(`Scrolling to cell at row ${params.rowIndex}, col: ${params.colIndex} `);\n let scrollCoordinates = {};\n if (params.colIndex !== undefined) {\n const columnPositions = gridColumnPositionsSelector(apiRef);\n let cellWidth;\n if (typeof params.rowIndex !== 'undefined') {\n const rowId = visibleSortedRows[params.rowIndex]?.id;\n const cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, params.colIndex);\n if (cellColSpanInfo && !cellColSpanInfo.spannedByColSpan) {\n cellWidth = cellColSpanInfo.cellProps.width;\n }\n }\n if (typeof cellWidth === 'undefined') {\n cellWidth = visibleColumns[params.colIndex].computedWidth;\n }\n // When using RTL, `scrollLeft` becomes negative, so we must ensure that we only compare values.\n scrollCoordinates.left = scrollIntoView({\n containerSize: dimensions.viewportOuterSize.width,\n scrollPosition: Math.abs(virtualScrollerRef.current.scrollLeft),\n elementSize: cellWidth,\n elementOffset: columnPositions[params.colIndex]\n });\n }\n if (params.rowIndex !== undefined) {\n const rowsMeta = gridRowsMetaSelector(apiRef.current.state);\n const page = gridPageSelector(apiRef);\n const pageSize = gridPageSizeSelector(apiRef);\n const elementIndex = !props.pagination ? params.rowIndex : params.rowIndex - page * pageSize;\n const targetOffsetHeight = rowsMeta.positions[elementIndex + 1] ? rowsMeta.positions[elementIndex + 1] - rowsMeta.positions[elementIndex] : rowsMeta.currentPageTotalHeight - rowsMeta.positions[elementIndex];\n scrollCoordinates.top = scrollIntoView({\n containerSize: dimensions.viewportInnerSize.height,\n scrollPosition: virtualScrollerRef.current.scrollTop,\n elementSize: targetOffsetHeight,\n elementOffset: rowsMeta.positions[elementIndex]\n });\n }\n scrollCoordinates = apiRef.current.unstable_applyPipeProcessors('scrollToIndexes', scrollCoordinates, params);\n if (typeof scrollCoordinates.left !== undefined || typeof scrollCoordinates.top !== undefined) {\n apiRef.current.scroll(scrollCoordinates);\n return true;\n }\n return false;\n }, [logger, apiRef, virtualScrollerRef, props.pagination, visibleSortedRows, props.unstable_listView]);\n const scroll = React.useCallback(params => {\n if (virtualScrollerRef.current && params.left !== undefined && colRef.current) {\n const direction = isRtl ? -1 : 1;\n colRef.current.scrollLeft = params.left;\n virtualScrollerRef.current.scrollLeft = direction * params.left;\n logger.debug(`Scrolling left: ${params.left}`);\n }\n if (virtualScrollerRef.current && params.top !== undefined) {\n virtualScrollerRef.current.scrollTop = params.top;\n logger.debug(`Scrolling top: ${params.top}`);\n }\n logger.debug(`Scrolling, updating container, and viewport`);\n }, [virtualScrollerRef, isRtl, colRef, logger]);\n const getScrollPosition = React.useCallback(() => {\n if (!virtualScrollerRef?.current) {\n return {\n top: 0,\n left: 0\n };\n }\n return {\n top: virtualScrollerRef.current.scrollTop,\n left: virtualScrollerRef.current.scrollLeft\n };\n }, [virtualScrollerRef]);\n const scrollApi = {\n scroll,\n scrollToIndexes,\n getScrollPosition\n };\n useGridApiMethod(apiRef, scrollApi, 'public');\n};","import { GridEditModes } from \"../models/gridEditRowModel.js\";\n/**\n * The default values of `DataGridPropsWithDefaultValues` to inject in the props of DataGrid.\n */\nexport const DATA_GRID_PROPS_DEFAULT_VALUES = {\n autoHeight: false,\n autoPageSize: false,\n autosizeOnMount: false,\n checkboxSelection: false,\n checkboxSelectionVisibleOnly: false,\n clipboardCopyCellDelimiter: '\\t',\n columnBufferPx: 150,\n columnHeaderHeight: 56,\n disableAutosize: false,\n disableColumnFilter: false,\n disableColumnMenu: false,\n disableColumnReorder: false,\n disableColumnResize: false,\n disableColumnSelector: false,\n disableColumnSorting: false,\n disableDensitySelector: false,\n disableEval: false,\n disableMultipleColumnsFiltering: false,\n disableMultipleColumnsSorting: false,\n disableMultipleRowSelection: false,\n disableRowSelectionOnClick: false,\n disableVirtualization: false,\n editMode: GridEditModes.Cell,\n filterDebounceMs: 150,\n filterMode: 'client',\n hideFooter: false,\n hideFooterPagination: false,\n hideFooterRowCount: false,\n hideFooterSelectedRowCount: false,\n ignoreDiacritics: false,\n ignoreValueFormatterDuringExport: false,\n // TODO v8: Update to 'select'\n indeterminateCheckboxAction: 'deselect',\n keepColumnPositionIfDraggedOutside: false,\n keepNonExistentRowsSelected: false,\n loading: false,\n logger: console,\n logLevel: process.env.NODE_ENV === 'production' ? 'error' : 'warn',\n pageSizeOptions: [25, 50, 100],\n pagination: false,\n paginationMode: 'client',\n resizeThrottleMs: 60,\n rowBufferPx: 150,\n rowHeight: 52,\n rowPositionsDebounceMs: 166,\n rows: [],\n rowSelection: true,\n rowSpacingType: 'margin',\n showCellVerticalBorder: false,\n showColumnVerticalBorder: false,\n sortingMode: 'client',\n sortingOrder: ['asc', 'desc', null],\n throttleRowsMs: 0,\n unstable_rowSpanning: false,\n virtualizeColumnsWithAutoRowHeight: false\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_ownerDocument as ownerDocument, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useEventCallback as useEventCallback, unstable_ownerWindow as ownerWindow } from '@mui/utils';\nimport { throttle } from '@mui/x-internals/throttle';\nimport { useGridApiEventHandler, useGridApiOptionHandler } from \"../../utils/useGridApiEventHandler.js\";\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { useGridLogger } from \"../../utils/useGridLogger.js\";\nimport { gridColumnsTotalWidthSelector, gridVisiblePinnedColumnDefinitionsSelector } from \"../columns/index.js\";\nimport { gridDimensionsSelector } from \"./gridDimensionsSelectors.js\";\nimport { gridDensityFactorSelector } from \"../density/index.js\";\nimport { gridRenderContextSelector } from \"../virtualization/index.js\";\nimport { useGridSelector } from \"../../utils/index.js\";\nimport { getVisibleRows } from \"../../utils/useGridVisibleRows.js\";\nimport { gridRowsMetaSelector } from \"../rows/gridRowsMetaSelector.js\";\nimport { calculatePinnedRowsHeight, getValidRowHeight, rowHeightWarning } from \"../rows/gridRowsUtils.js\";\nimport { getTotalHeaderHeight } from \"../columns/gridColumnsUtils.js\";\nimport { DATA_GRID_PROPS_DEFAULT_VALUES } from \"../../../constants/dataGridPropsDefaultValues.js\";\nconst EMPTY_SIZE = {\n width: 0,\n height: 0\n};\nconst EMPTY_DIMENSIONS = {\n isReady: false,\n root: EMPTY_SIZE,\n viewportOuterSize: EMPTY_SIZE,\n viewportInnerSize: EMPTY_SIZE,\n contentSize: EMPTY_SIZE,\n minimumSize: EMPTY_SIZE,\n hasScrollX: false,\n hasScrollY: false,\n scrollbarSize: 0,\n headerHeight: 0,\n groupHeaderHeight: 0,\n headerFilterHeight: 0,\n rowWidth: 0,\n rowHeight: 0,\n columnsTotalWidth: 0,\n leftPinnedWidth: 0,\n rightPinnedWidth: 0,\n headersTotalHeight: 0,\n topContainerHeight: 0,\n bottomContainerHeight: 0\n};\nexport const dimensionsStateInitializer = state => {\n const dimensions = EMPTY_DIMENSIONS;\n return _extends({}, state, {\n dimensions\n });\n};\nexport function useGridDimensions(apiRef, props) {\n const logger = useGridLogger(apiRef, 'useResizeContainer');\n const errorShown = React.useRef(false);\n const rootDimensionsRef = React.useRef(EMPTY_SIZE);\n const dimensionsState = useGridSelector(apiRef, gridDimensionsSelector);\n const rowsMeta = useGridSelector(apiRef, gridRowsMetaSelector);\n const pinnedColumns = useGridSelector(apiRef, gridVisiblePinnedColumnDefinitionsSelector);\n const densityFactor = useGridSelector(apiRef, gridDensityFactorSelector);\n const validRowHeight = React.useMemo(() => getValidRowHeight(props.rowHeight, DATA_GRID_PROPS_DEFAULT_VALUES.rowHeight, rowHeightWarning), [props.rowHeight]);\n const rowHeight = Math.floor(validRowHeight * densityFactor);\n const headerHeight = Math.floor(props.columnHeaderHeight * densityFactor);\n const groupHeaderHeight = Math.floor((props.columnGroupHeaderHeight ?? props.columnHeaderHeight) * densityFactor);\n const headerFilterHeight = Math.floor((props.headerFilterHeight ?? props.columnHeaderHeight) * densityFactor);\n const columnsTotalWidth = roundToDecimalPlaces(gridColumnsTotalWidthSelector(apiRef), 6);\n const headersTotalHeight = getTotalHeaderHeight(apiRef, props);\n const leftPinnedWidth = pinnedColumns.left.reduce((w, col) => w + col.computedWidth, 0);\n const rightPinnedWidth = pinnedColumns.right.reduce((w, col) => w + col.computedWidth, 0);\n const [savedSize, setSavedSize] = React.useState();\n const debouncedSetSavedSize = React.useMemo(() => throttle(setSavedSize, props.resizeThrottleMs), [props.resizeThrottleMs]);\n React.useEffect(() => debouncedSetSavedSize.clear, [debouncedSetSavedSize]);\n const previousSize = React.useRef(undefined);\n const getRootDimensions = () => apiRef.current.state.dimensions;\n const setDimensions = useEventCallback(dimensions => {\n apiRef.current.setState(state => _extends({}, state, {\n dimensions\n }));\n });\n const resize = React.useCallback(() => {\n const element = apiRef.current.mainElementRef.current;\n if (!element) {\n return;\n }\n const computedStyle = ownerWindow(element).getComputedStyle(element);\n const newSize = {\n width: parseFloat(computedStyle.width) || 0,\n height: parseFloat(computedStyle.height) || 0\n };\n if (!previousSize.current || !areElementSizesEqual(previousSize.current, newSize)) {\n apiRef.current.publishEvent('resize', newSize);\n previousSize.current = newSize;\n }\n }, [apiRef]);\n const getViewportPageSize = React.useCallback(() => {\n const dimensions = gridDimensionsSelector(apiRef.current.state);\n if (!dimensions.isReady) {\n return 0;\n }\n const currentPage = getVisibleRows(apiRef, {\n pagination: props.pagination,\n paginationMode: props.paginationMode\n });\n\n // TODO: Use a combination of scrollTop, dimensions.viewportInnerSize.height and rowsMeta.possitions\n // to find out the maximum number of rows that can fit in the visible part of the grid\n if (props.getRowHeight) {\n const renderContext = gridRenderContextSelector(apiRef);\n const viewportPageSize = renderContext.lastRowIndex - renderContext.firstRowIndex;\n return Math.min(viewportPageSize - 1, currentPage.rows.length);\n }\n const maximumPageSizeWithoutScrollBar = Math.floor(dimensions.viewportInnerSize.height / rowHeight);\n return Math.min(maximumPageSizeWithoutScrollBar, currentPage.rows.length);\n }, [apiRef, props.pagination, props.paginationMode, props.getRowHeight, rowHeight]);\n const updateDimensions = React.useCallback(() => {\n const rootElement = apiRef.current.rootElementRef.current;\n const pinnedRowsHeight = calculatePinnedRowsHeight(apiRef);\n const scrollbarSize = measureScrollbarSize(rootElement, columnsTotalWidth, props.scrollbarSize);\n const topContainerHeight = headersTotalHeight + pinnedRowsHeight.top;\n const bottomContainerHeight = pinnedRowsHeight.bottom;\n const nonPinnedColumnsTotalWidth = columnsTotalWidth - leftPinnedWidth - rightPinnedWidth;\n const contentSize = {\n width: nonPinnedColumnsTotalWidth,\n height: rowsMeta.currentPageTotalHeight\n };\n let viewportOuterSize;\n let viewportInnerSize;\n let hasScrollX = false;\n let hasScrollY = false;\n if (props.autoHeight) {\n hasScrollY = false;\n hasScrollX = Math.round(columnsTotalWidth) > Math.round(rootDimensionsRef.current.width);\n viewportOuterSize = {\n width: rootDimensionsRef.current.width,\n height: topContainerHeight + bottomContainerHeight + contentSize.height\n };\n viewportInnerSize = {\n width: Math.max(0, viewportOuterSize.width - (hasScrollY ? scrollbarSize : 0)),\n height: Math.max(0, viewportOuterSize.height - (hasScrollX ? scrollbarSize : 0))\n };\n } else {\n viewportOuterSize = {\n width: rootDimensionsRef.current.width,\n height: rootDimensionsRef.current.height\n };\n viewportInnerSize = {\n width: Math.max(0, viewportOuterSize.width - leftPinnedWidth - rightPinnedWidth),\n height: Math.max(0, viewportOuterSize.height - topContainerHeight - bottomContainerHeight)\n };\n const content = contentSize;\n const container = viewportInnerSize;\n const hasScrollXIfNoYScrollBar = content.width > container.width;\n const hasScrollYIfNoXScrollBar = content.height > container.height;\n if (hasScrollXIfNoYScrollBar || hasScrollYIfNoXScrollBar) {\n hasScrollY = hasScrollYIfNoXScrollBar;\n hasScrollX = content.width + (hasScrollY ? scrollbarSize : 0) > container.width;\n\n // We recalculate the scroll y to consider the size of the x scrollbar.\n if (hasScrollX) {\n hasScrollY = content.height + scrollbarSize > container.height;\n }\n }\n if (hasScrollY) {\n viewportInnerSize.width -= scrollbarSize;\n }\n if (hasScrollX) {\n viewportInnerSize.height -= scrollbarSize;\n }\n }\n const rowWidth = Math.max(viewportOuterSize.width, columnsTotalWidth + (hasScrollY ? scrollbarSize : 0));\n const minimumSize = {\n width: columnsTotalWidth,\n height: topContainerHeight + contentSize.height + bottomContainerHeight\n };\n const newDimensions = {\n isReady: true,\n root: rootDimensionsRef.current,\n viewportOuterSize,\n viewportInnerSize,\n contentSize,\n minimumSize,\n hasScrollX,\n hasScrollY,\n scrollbarSize,\n headerHeight,\n groupHeaderHeight,\n headerFilterHeight,\n rowWidth,\n rowHeight,\n columnsTotalWidth,\n leftPinnedWidth,\n rightPinnedWidth,\n headersTotalHeight,\n topContainerHeight,\n bottomContainerHeight\n };\n const prevDimensions = apiRef.current.state.dimensions;\n setDimensions(newDimensions);\n if (!areElementSizesEqual(newDimensions.viewportInnerSize, prevDimensions.viewportInnerSize)) {\n apiRef.current.publishEvent('viewportInnerSizeChange', newDimensions.viewportInnerSize);\n }\n apiRef.current.updateRenderContext?.();\n }, [apiRef, setDimensions, props.scrollbarSize, props.autoHeight, rowsMeta.currentPageTotalHeight, rowHeight, headerHeight, groupHeaderHeight, headerFilterHeight, columnsTotalWidth, headersTotalHeight, leftPinnedWidth, rightPinnedWidth]);\n const apiPublic = {\n resize,\n getRootDimensions\n };\n const apiPrivate = {\n updateDimensions,\n getViewportPageSize\n };\n useGridApiMethod(apiRef, apiPublic, 'public');\n useGridApiMethod(apiRef, apiPrivate, 'private');\n useEnhancedEffect(() => {\n if (savedSize) {\n updateDimensions();\n apiRef.current.publishEvent('debouncedResize', rootDimensionsRef.current);\n }\n }, [apiRef, savedSize, updateDimensions]);\n const root = apiRef.current.rootElementRef.current;\n useEnhancedEffect(() => {\n if (!root) {\n return;\n }\n const set = (k, v) => root.style.setProperty(k, v);\n set('--DataGrid-width', `${dimensionsState.viewportOuterSize.width}px`);\n set('--DataGrid-hasScrollX', `${Number(dimensionsState.hasScrollX)}`);\n set('--DataGrid-hasScrollY', `${Number(dimensionsState.hasScrollY)}`);\n set('--DataGrid-scrollbarSize', `${dimensionsState.scrollbarSize}px`);\n set('--DataGrid-rowWidth', `${dimensionsState.rowWidth}px`);\n set('--DataGrid-columnsTotalWidth', `${dimensionsState.columnsTotalWidth}px`);\n set('--DataGrid-leftPinnedWidth', `${dimensionsState.leftPinnedWidth}px`);\n set('--DataGrid-rightPinnedWidth', `${dimensionsState.rightPinnedWidth}px`);\n set('--DataGrid-headerHeight', `${dimensionsState.headerHeight}px`);\n set('--DataGrid-headersTotalHeight', `${dimensionsState.headersTotalHeight}px`);\n set('--DataGrid-topContainerHeight', `${dimensionsState.topContainerHeight}px`);\n set('--DataGrid-bottomContainerHeight', `${dimensionsState.bottomContainerHeight}px`);\n set('--height', `${dimensionsState.rowHeight}px`);\n }, [root, dimensionsState]);\n const isFirstSizing = React.useRef(true);\n const handleResize = React.useCallback(size => {\n rootDimensionsRef.current = size;\n\n // jsdom has no layout capabilities\n const isJSDOM = /jsdom|HappyDOM/.test(window.navigator.userAgent);\n if (size.height === 0 && !errorShown.current && !props.autoHeight && !isJSDOM) {\n logger.error(['The parent DOM element of the Data Grid has an empty height.', 'Please make sure that this element has an intrinsic height.', 'The grid displays with a height of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\\n'));\n errorShown.current = true;\n }\n if (size.width === 0 && !errorShown.current && !isJSDOM) {\n logger.error(['The parent DOM element of the Data Grid has an empty width.', 'Please make sure that this element has an intrinsic width.', 'The grid displays with a width of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\\n'));\n errorShown.current = true;\n }\n if (isFirstSizing.current) {\n // We want to initialize the grid dimensions as soon as possible to avoid flickering\n setSavedSize(size);\n isFirstSizing.current = false;\n return;\n }\n debouncedSetSavedSize(size);\n }, [props.autoHeight, debouncedSetSavedSize, logger]);\n useEnhancedEffect(updateDimensions, [updateDimensions]);\n useGridApiOptionHandler(apiRef, 'sortedRowsSet', updateDimensions);\n useGridApiOptionHandler(apiRef, 'paginationModelChange', updateDimensions);\n useGridApiOptionHandler(apiRef, 'columnsChange', updateDimensions);\n useGridApiEventHandler(apiRef, 'resize', handleResize);\n useGridApiOptionHandler(apiRef, 'debouncedResize', props.onResize);\n}\nfunction measureScrollbarSize(rootElement, columnsTotalWidth, scrollbarSize) {\n if (scrollbarSize !== undefined) {\n return scrollbarSize;\n }\n if (rootElement === null || columnsTotalWidth === 0) {\n return 0;\n }\n const doc = ownerDocument(rootElement);\n const scrollDiv = doc.createElement('div');\n scrollDiv.style.width = '99px';\n scrollDiv.style.height = '99px';\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.overflow = 'scroll';\n scrollDiv.className = 'scrollDiv';\n rootElement.appendChild(scrollDiv);\n const size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n rootElement.removeChild(scrollDiv);\n return size;\n}\n\n// Get rid of floating point imprecision errors\n// https://github.com/mui/mui-x/issues/9550#issuecomment-1619020477\nfunction roundToDecimalPlaces(value, decimals) {\n return Math.round(value * 10 ** decimals) / 10 ** decimals;\n}\nfunction areElementSizesEqual(a, b) {\n return a.width === b.width && a.height === b.height;\n}","export function throttle(func, wait = 166) {\n let timeout;\n let lastArgs;\n const later = () => {\n timeout = undefined;\n func(...lastArgs);\n };\n function throttled(...args) {\n lastArgs = args;\n if (timeout === undefined) {\n timeout = setTimeout(later, wait);\n }\n }\n throttled.clear = () => {\n clearTimeout(timeout);\n timeout = undefined;\n };\n return throttled;\n}","/* eslint-disable */\n\n/**\n * HACK: Minimal shim to get jsdom to work.\n */\nexport const ResizeObserver = typeof globalThis.ResizeObserver !== 'undefined' ? globalThis.ResizeObserver : class ResizeObserver {\n observe() {}\n unobserve() {}\n disconnect() {}\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useLazyRef from '@mui/utils/useLazyRef';\nimport { ResizeObserver } from \"../../../utils/ResizeObserver.js\";\nimport { useGridVisibleRows } from \"../../utils/useGridVisibleRows.js\";\nimport { eslintUseValue } from \"../../../utils/utils.js\";\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { useGridSelector } from \"../../utils/useGridSelector.js\";\nimport { gridDensityFactorSelector } from \"../density/densitySelector.js\";\nimport { gridFilterModelSelector } from \"../filter/gridFilterSelector.js\";\nimport { gridPaginationSelector } from \"../pagination/gridPaginationSelector.js\";\nimport { gridSortModelSelector } from \"../sorting/gridSortingSelector.js\";\nimport { useGridRegisterPipeApplier } from \"../../core/pipeProcessing/index.js\";\nimport { gridPinnedRowsSelector } from \"./gridRowsSelector.js\";\nimport { gridDimensionsSelector } from \"../dimensions/gridDimensionsSelectors.js\";\nimport { getValidRowHeight, getRowHeightWarning } from \"./gridRowsUtils.js\";\n/* eslint-disable no-underscore-dangle */\n\nexport const rowsMetaStateInitializer = (state, props, apiRef) => {\n apiRef.current.caches.rowsMeta = {\n heights: new Map()\n };\n return _extends({}, state, {\n rowsMeta: {\n currentPageTotalHeight: 0,\n positions: []\n }\n });\n};\n\n/**\n * @requires useGridPageSize (method)\n * @requires useGridPage (method)\n */\nexport const useGridRowsMeta = (apiRef, props) => {\n const {\n getRowHeight: getRowHeightProp,\n getRowSpacing,\n getEstimatedRowHeight\n } = props;\n const heightCache = apiRef.current.caches.rowsMeta.heights;\n const lastMeasuredRowIndex = React.useRef(-1);\n const hasRowWithAutoHeight = React.useRef(false);\n const isHeightMetaValid = React.useRef(false);\n const densityFactor = useGridSelector(apiRef, gridDensityFactorSelector);\n const filterModel = useGridSelector(apiRef, gridFilterModelSelector);\n const paginationState = useGridSelector(apiRef, gridPaginationSelector);\n const sortModel = useGridSelector(apiRef, gridSortModelSelector);\n const currentPage = useGridVisibleRows(apiRef, props);\n const pinnedRows = useGridSelector(apiRef, gridPinnedRowsSelector);\n const rowHeight = useGridSelector(apiRef, () => gridDimensionsSelector(apiRef.current.state).rowHeight);\n const getRowHeightEntry = rowId => {\n let entry = heightCache.get(rowId);\n if (entry === undefined) {\n entry = {\n content: rowHeight,\n spacingTop: 0,\n spacingBottom: 0,\n detail: 0,\n autoHeight: false,\n needsFirstMeasurement: true\n };\n heightCache.set(rowId, entry);\n }\n return entry;\n };\n const processHeightEntry = React.useCallback(row => {\n // HACK: rowHeight trails behind the most up-to-date value just enough to\n // mess the initial rowsMeta hydration :/\n const baseRowHeight = gridDimensionsSelector(apiRef.current.state).rowHeight;\n eslintUseValue(rowHeight);\n const entry = apiRef.current.getRowHeightEntry(row.id);\n if (!getRowHeightProp) {\n entry.content = baseRowHeight;\n entry.needsFirstMeasurement = false;\n } else {\n const rowHeightFromUser = getRowHeightProp(_extends({}, row, {\n densityFactor\n }));\n if (rowHeightFromUser === 'auto') {\n if (entry.needsFirstMeasurement) {\n const estimatedRowHeight = getEstimatedRowHeight ? getEstimatedRowHeight(_extends({}, row, {\n densityFactor\n })) : baseRowHeight;\n\n // If the row was not measured yet use the estimated row height\n entry.content = estimatedRowHeight ?? baseRowHeight;\n }\n hasRowWithAutoHeight.current = true;\n entry.autoHeight = true;\n } else {\n // Default back to base rowHeight if getRowHeight returns invalid value.\n entry.content = getValidRowHeight(rowHeightFromUser, baseRowHeight, getRowHeightWarning);\n entry.needsFirstMeasurement = false;\n entry.autoHeight = false;\n }\n }\n if (getRowSpacing) {\n const indexRelativeToCurrentPage = apiRef.current.getRowIndexRelativeToVisibleRows(row.id);\n const spacing = getRowSpacing(_extends({}, row, {\n isFirstVisible: indexRelativeToCurrentPage === 0,\n isLastVisible: indexRelativeToCurrentPage === currentPage.rows.length - 1,\n indexRelativeToCurrentPage\n }));\n entry.spacingTop = spacing.top ?? 0;\n entry.spacingBottom = spacing.bottom ?? 0;\n } else {\n entry.spacingTop = 0;\n entry.spacingBottom = 0;\n }\n apiRef.current.unstable_applyPipeProcessors('rowHeight', entry, row);\n return entry;\n }, [apiRef, currentPage.rows.length, getRowHeightProp, getEstimatedRowHeight, rowHeight, getRowSpacing, densityFactor]);\n const hydrateRowsMeta = React.useCallback(() => {\n hasRowWithAutoHeight.current = false;\n pinnedRows.top.forEach(processHeightEntry);\n pinnedRows.bottom.forEach(processHeightEntry);\n const positions = [];\n const currentPageTotalHeight = currentPage.rows.reduce((acc, row) => {\n positions.push(acc);\n const entry = processHeightEntry(row);\n const total = entry.content + entry.spacingTop + entry.spacingBottom + entry.detail;\n return acc + total;\n }, 0);\n if (!hasRowWithAutoHeight.current) {\n // No row has height=auto, so all rows are already measured\n lastMeasuredRowIndex.current = Infinity;\n }\n apiRef.current.setState(state => {\n return _extends({}, state, {\n rowsMeta: {\n currentPageTotalHeight,\n positions\n }\n });\n });\n isHeightMetaValid.current = true;\n }, [apiRef, pinnedRows, currentPage.rows, processHeightEntry]);\n const getRowHeight = rowId => {\n return heightCache.get(rowId)?.content ?? rowHeight;\n };\n const storeRowHeightMeasurement = (id, height) => {\n const entry = apiRef.current.getRowHeightEntry(id);\n const didChange = entry.content !== height;\n entry.needsFirstMeasurement = false;\n entry.content = height;\n isHeightMetaValid.current &&= !didChange;\n };\n const rowHasAutoHeight = id => {\n return heightCache.get(id)?.autoHeight ?? false;\n };\n const getLastMeasuredRowIndex = () => {\n return lastMeasuredRowIndex.current;\n };\n const setLastMeasuredRowIndex = index => {\n if (hasRowWithAutoHeight.current && index > lastMeasuredRowIndex.current) {\n lastMeasuredRowIndex.current = index;\n }\n };\n const resetRowHeights = () => {\n heightCache.clear();\n hydrateRowsMeta();\n };\n const resizeObserver = useLazyRef(() => new ResizeObserver(entries => {\n for (let i = 0; i < entries.length; i += 1) {\n const entry = entries[i];\n const height = entry.borderBoxSize && entry.borderBoxSize.length > 0 ? entry.borderBoxSize[0].blockSize : entry.contentRect.height;\n const rowId = entry.target.__mui_id;\n apiRef.current.unstable_storeRowHeightMeasurement(rowId, height);\n }\n if (!isHeightMetaValid.current) {\n apiRef.current.requestPipeProcessorsApplication('rowHeight');\n }\n })).current;\n const observeRowHeight = (element, rowId) => {\n element.__mui_id = rowId;\n resizeObserver.observe(element);\n return () => resizeObserver.unobserve(element);\n };\n useGridRegisterPipeApplier(apiRef, 'rowHeight', hydrateRowsMeta);\n\n // The effect is used to build the rows meta data - currentPageTotalHeight and positions.\n // Because of variable row height this is needed for the virtualization\n React.useEffect(() => {\n hydrateRowsMeta();\n }, [filterModel, paginationState, sortModel, hydrateRowsMeta]);\n const rowsMetaApi = {\n unstable_getRowHeight: getRowHeight,\n unstable_setLastMeasuredRowIndex: setLastMeasuredRowIndex,\n unstable_storeRowHeightMeasurement: storeRowHeightMeasurement,\n resetRowHeights\n };\n const rowsMetaPrivateApi = {\n hydrateRowsMeta,\n observeRowHeight,\n rowHasAutoHeight,\n getRowHeightEntry,\n getLastMeasuredRowIndex\n };\n useGridApiMethod(apiRef, rowsMetaApi, 'public');\n useGridApiMethod(apiRef, rowsMetaPrivateApi, 'private');\n};","import * as React from 'react';\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { useGridApiEventHandler } from \"../../utils/useGridApiEventHandler.js\";\n/**\n * @requires useGridColumns (method, event)\n * @requires useGridParamsApi (method)\n */\nexport const useGridColumnSpanning = apiRef => {\n const lookup = React.useRef({});\n const getCellColSpanInfo = (rowId, columnIndex) => {\n return lookup.current[rowId]?.[columnIndex];\n };\n const resetColSpan = () => {\n lookup.current = {};\n };\n\n // Calculate `colSpan` for each cell in the row\n const calculateColSpan = React.useCallback(({\n rowId,\n minFirstColumn,\n maxLastColumn,\n columns\n }) => {\n for (let i = minFirstColumn; i < maxLastColumn; i += 1) {\n const cellProps = calculateCellColSpan({\n apiRef,\n lookup: lookup.current,\n columnIndex: i,\n rowId,\n minFirstColumnIndex: minFirstColumn,\n maxLastColumnIndex: maxLastColumn,\n columns\n });\n if (cellProps.colSpan > 1) {\n i += cellProps.colSpan - 1;\n }\n }\n }, [apiRef]);\n const columnSpanningPublicApi = {\n unstable_getCellColSpanInfo: getCellColSpanInfo\n };\n const columnSpanningPrivateApi = {\n resetColSpan,\n calculateColSpan\n };\n useGridApiMethod(apiRef, columnSpanningPublicApi, 'public');\n useGridApiMethod(apiRef, columnSpanningPrivateApi, 'private');\n useGridApiEventHandler(apiRef, 'columnOrderChange', resetColSpan);\n};\nfunction calculateCellColSpan(params) {\n const {\n apiRef,\n lookup,\n columnIndex,\n rowId,\n minFirstColumnIndex,\n maxLastColumnIndex,\n columns\n } = params;\n const columnsLength = columns.length;\n const column = columns[columnIndex];\n const row = apiRef.current.getRow(rowId);\n const value = apiRef.current.getRowValue(row, column);\n const colSpan = typeof column.colSpan === 'function' ? column.colSpan(value, row, column, apiRef) : column.colSpan;\n if (!colSpan || colSpan === 1) {\n setCellColSpanInfo(lookup, rowId, columnIndex, {\n spannedByColSpan: false,\n cellProps: {\n colSpan: 1,\n width: column.computedWidth\n }\n });\n return {\n colSpan: 1\n };\n }\n let width = column.computedWidth;\n for (let j = 1; j < colSpan; j += 1) {\n const nextColumnIndex = columnIndex + j;\n // Cells should be spanned only within their column section (left-pinned, right-pinned and unpinned).\n if (nextColumnIndex >= minFirstColumnIndex && nextColumnIndex < maxLastColumnIndex) {\n const nextColumn = columns[nextColumnIndex];\n width += nextColumn.computedWidth;\n setCellColSpanInfo(lookup, rowId, columnIndex + j, {\n spannedByColSpan: true,\n rightVisibleCellIndex: Math.min(columnIndex + colSpan, columnsLength - 1),\n leftVisibleCellIndex: columnIndex\n });\n }\n setCellColSpanInfo(lookup, rowId, columnIndex, {\n spannedByColSpan: false,\n cellProps: {\n colSpan,\n width\n }\n });\n }\n return {\n colSpan\n };\n}\nfunction setCellColSpanInfo(lookup, rowId, columnIndex, cellColSpanInfo) {\n if (!lookup[rowId]) {\n lookup[rowId] = {};\n }\n lookup[rowId][columnIndex] = cellColSpanInfo;\n}","export function isLeaf(node) {\n return node.field !== undefined;\n}\n\n/**\n * A function used to process headerClassName params.\n */\n\n/**\n * The union type representing the [[GridColDef]] column header class type.\n */","import { isLeaf } from \"../../../models/gridColumnGrouping.js\";\nimport { isDeepEqual } from \"../../../utils/utils.js\";\n// This is the recurrence function that help writing `unwrapGroupingColumnModel()`\nconst recurrentUnwrapGroupingColumnModel = (columnGroupNode, parents, unwrappedGroupingModelToComplete) => {\n if (isLeaf(columnGroupNode)) {\n if (unwrappedGroupingModelToComplete[columnGroupNode.field] !== undefined) {\n throw new Error([`MUI X: columnGroupingModel contains duplicated field`, `column field ${columnGroupNode.field} occurs two times in the grouping model:`, `- ${unwrappedGroupingModelToComplete[columnGroupNode.field].join(' > ')}`, `- ${parents.join(' > ')}`].join('\\n'));\n }\n unwrappedGroupingModelToComplete[columnGroupNode.field] = parents;\n return;\n }\n const {\n groupId,\n children\n } = columnGroupNode;\n children.forEach(child => {\n recurrentUnwrapGroupingColumnModel(child, [...parents, groupId], unwrappedGroupingModelToComplete);\n });\n};\n\n/**\n * This is a function that provide for each column the array of its parents.\n * Parents are ordered from the root to the leaf.\n * @param columnGroupingModel The model such as provided in DataGrid props\n * @returns An object `{[field]: groupIds}` where `groupIds` is the parents of the column `field`\n */\nexport const unwrapGroupingColumnModel = columnGroupingModel => {\n if (!columnGroupingModel) {\n return {};\n }\n const unwrappedSubTree = {};\n columnGroupingModel.forEach(columnGroupNode => {\n recurrentUnwrapGroupingColumnModel(columnGroupNode, [], unwrappedSubTree);\n });\n return unwrappedSubTree;\n};\nexport const getColumnGroupsHeaderStructure = (orderedColumns, unwrappedGroupingModel, pinnedFields) => {\n const getParents = field => unwrappedGroupingModel[field] ?? [];\n const groupingHeaderStructure = [];\n const maxDepth = Math.max(...orderedColumns.map(field => getParents(field).length));\n const haveSameParents = (field1, field2, depth) => isDeepEqual(getParents(field1).slice(0, depth + 1), getParents(field2).slice(0, depth + 1));\n const haveDifferentContainers = (field1, field2) => {\n if (pinnedFields?.left && pinnedFields.left.includes(field1) && !pinnedFields.left.includes(field2)) {\n return true;\n }\n if (pinnedFields?.right && !pinnedFields.right.includes(field1) && pinnedFields.right.includes(field2)) {\n return true;\n }\n return false;\n };\n for (let depth = 0; depth < maxDepth; depth += 1) {\n const depthStructure = orderedColumns.reduce((structure, newField) => {\n const groupId = getParents(newField)[depth] ?? null;\n if (structure.length === 0) {\n return [{\n columnFields: [newField],\n groupId\n }];\n }\n const lastGroup = structure[structure.length - 1];\n const prevField = lastGroup.columnFields[lastGroup.columnFields.length - 1];\n const prevGroupId = lastGroup.groupId;\n if (prevGroupId !== groupId || !haveSameParents(prevField, newField, depth) ||\n // Fix for https://github.com/mui/mui-x/issues/7041\n haveDifferentContainers(prevField, newField)) {\n // It's a new group\n return [...structure, {\n columnFields: [newField],\n groupId\n }];\n }\n\n // It extends the previous group\n return [...structure.slice(0, structure.length - 1), {\n columnFields: [...lastGroup.columnFields, newField],\n groupId\n }];\n }, []);\n groupingHeaderStructure.push(depthStructure);\n }\n return groupingHeaderStructure;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"groupId\", \"children\"];\nimport * as React from 'react';\nimport { isLeaf } from \"../../../models/gridColumnGrouping.js\";\nimport { gridColumnGroupsLookupSelector, gridColumnGroupsUnwrappedModelSelector } from \"./gridColumnGroupsSelector.js\";\nimport { useGridApiMethod } from \"../../utils/useGridApiMethod.js\";\nimport { getColumnGroupsHeaderStructure, unwrapGroupingColumnModel } from \"./gridColumnGroupsUtils.js\";\nimport { useGridApiEventHandler } from \"../../utils/useGridApiEventHandler.js\";\nimport { gridColumnFieldsSelector, gridVisibleColumnFieldsSelector } from \"../columns/index.js\";\nconst createGroupLookup = columnGroupingModel => {\n let groupLookup = {};\n columnGroupingModel.forEach(node => {\n if (isLeaf(node)) {\n return;\n }\n const {\n groupId,\n children\n } = node,\n other = _objectWithoutPropertiesLoose(node, _excluded);\n if (!groupId) {\n throw new Error('MUI X: An element of the columnGroupingModel does not have either `field` or `groupId`.');\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!children) {\n console.warn(`MUI X: group groupId=${groupId} has no children.`);\n }\n }\n const groupParam = _extends({}, other, {\n groupId\n });\n const subTreeLookup = createGroupLookup(children);\n if (subTreeLookup[groupId] !== undefined || groupLookup[groupId] !== undefined) {\n throw new Error(`MUI X: The groupId ${groupId} is used multiple times in the columnGroupingModel.`);\n }\n groupLookup = _extends({}, groupLookup, subTreeLookup, {\n [groupId]: groupParam\n });\n });\n return _extends({}, groupLookup);\n};\nexport const columnGroupsStateInitializer = (state, props, apiRef) => {\n if (!props.columnGroupingModel) {\n return state;\n }\n const columnFields = gridColumnFieldsSelector(apiRef);\n const visibleColumnFields = gridVisibleColumnFieldsSelector(apiRef);\n const groupLookup = createGroupLookup(props.columnGroupingModel ?? []);\n const unwrappedGroupingModel = unwrapGroupingColumnModel(props.columnGroupingModel ?? []);\n const columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(columnFields, unwrappedGroupingModel, apiRef.current.state.pinnedColumns ?? {});\n const maxDepth = visibleColumnFields.length === 0 ? 0 : Math.max(...visibleColumnFields.map(field => unwrappedGroupingModel[field]?.length ?? 0));\n return _extends({}, state, {\n columnGrouping: {\n lookup: groupLookup,\n unwrappedGroupingModel,\n headerStructure: columnGroupsHeaderStructure,\n maxDepth\n }\n });\n};\n\n/**\n * @requires useGridColumns (method, event)\n * @requires useGridParamsApi (method)\n */\nexport const useGridColumnGrouping = (apiRef, props) => {\n /**\n * API METHODS\n */\n const getColumnGroupPath = React.useCallback(field => {\n const unwrappedGroupingModel = gridColumnGroupsUnwrappedModelSelector(apiRef);\n return unwrappedGroupingModel[field] ?? [];\n }, [apiRef]);\n const getAllGroupDetails = React.useCallback(() => {\n const columnGroupLookup = gridColumnGroupsLookupSelector(apiRef);\n return columnGroupLookup;\n }, [apiRef]);\n const columnGroupingApi = {\n getColumnGroupPath,\n getAllGroupDetails\n };\n useGridApiMethod(apiRef, columnGroupingApi, 'public');\n const handleColumnIndexChange = React.useCallback(() => {\n const unwrappedGroupingModel = unwrapGroupingColumnModel(props.columnGroupingModel ?? []);\n apiRef.current.setState(state => {\n const orderedFields = state.columns?.orderedFields ?? [];\n const pinnedColumns = state.pinnedColumns ?? {};\n const columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(orderedFields, unwrappedGroupingModel, pinnedColumns);\n return _extends({}, state, {\n columnGrouping: _extends({}, state.columnGrouping, {\n headerStructure: columnGroupsHeaderStructure\n })\n });\n });\n }, [apiRef, props.columnGroupingModel]);\n const updateColumnGroupingState = React.useCallback(columnGroupingModel => {\n // @ts-expect-error Move this logic to `Pro` package\n const pinnedColumns = apiRef.current.getPinnedColumns?.() ?? {};\n const columnFields = gridColumnFieldsSelector(apiRef);\n const visibleColumnFields = gridVisibleColumnFieldsSelector(apiRef);\n const groupLookup = createGroupLookup(columnGroupingModel ?? []);\n const unwrappedGroupingModel = unwrapGroupingColumnModel(columnGroupingModel ?? []);\n const columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(columnFields, unwrappedGroupingModel, pinnedColumns);\n const maxDepth = visibleColumnFields.length === 0 ? 0 : Math.max(...visibleColumnFields.map(field => unwrappedGroupingModel[field]?.length ?? 0));\n apiRef.current.setState(state => {\n return _extends({}, state, {\n columnGrouping: {\n lookup: groupLookup,\n unwrappedGroupingModel,\n headerStructure: columnGroupsHeaderStructure,\n maxDepth\n }\n });\n });\n }, [apiRef]);\n useGridApiEventHandler(apiRef, 'columnIndexChange', handleColumnIndexChange);\n useGridApiEventHandler(apiRef, 'columnsChange', () => {\n updateColumnGroupingState(props.columnGroupingModel);\n });\n useGridApiEventHandler(apiRef, 'columnVisibilityModelChange', () => {\n updateColumnGroupingState(props.columnGroupingModel);\n });\n\n /**\n * EFFECTS\n */\n React.useEffect(() => {\n updateColumnGroupingState(props.columnGroupingModel);\n }, [updateColumnGroupingState, props.columnGroupingModel]);\n};","export const DEFAULT_GRID_AUTOSIZE_OPTIONS = {\n includeHeaders: true,\n includeOutliers: false,\n outliersFactor: 1.5,\n expand: false,\n disableColumnVirtualization: true\n};\n\n/**\n * The Resize API interface that is available in the grid `apiRef`.\n */","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_ownerDocument as ownerDocument, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport useLazyRef from '@mui/utils/useLazyRef';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { findGridCellElementsFromCol, findGridElement, findLeftPinnedCellsAfterCol, findRightPinnedCellsBeforeCol, getFieldFromHeaderElem, findHeaderElementFromField, getFieldsFromGroupHeaderElem, findGroupHeaderElementsFromField, findGridHeader, findGridCells, findParentElementFromClassName, findLeftPinnedHeadersAfterCol, findRightPinnedHeadersBeforeCol, escapeOperandAttributeSelector } from \"../../../utils/domUtils.js\";\nimport { DEFAULT_GRID_AUTOSIZE_OPTIONS } from \"./gridColumnResizeApi.js\";\nimport { gridClasses } from \"../../../constants/gridClasses.js\";\nimport { useGridApiEventHandler, useGridApiMethod, useGridApiOptionHandler, useGridLogger, useGridNativeEventListener, useGridSelector, useOnMount } from \"../../utils/index.js\";\nimport { gridVirtualizationColumnEnabledSelector } from \"../virtualization/index.js\";\nimport { createControllablePromise } from \"../../../utils/createControllablePromise.js\";\nimport { clamp } from \"../../../utils/utils.js\";\nimport { useTimeout } from \"../../utils/useTimeout.js\";\nimport { GridPinnedColumnPosition } from \"../columns/gridColumnsInterfaces.js\";\nimport { gridColumnsStateSelector } from \"../columns/index.js\";\nfunction trackFinger(event, currentTouchId) {\n if (currentTouchId !== undefined && event.changedTouches) {\n for (let i = 0; i < event.changedTouches.length; i += 1) {\n const touch = event.changedTouches[i];\n if (touch.identifier === currentTouchId) {\n return {\n x: touch.clientX,\n y: touch.clientY\n };\n }\n }\n return false;\n }\n return {\n x: event.clientX,\n y: event.clientY\n };\n}\nfunction computeNewWidth(initialOffsetToSeparator, clickX, columnBounds, resizeDirection) {\n let newWidth = initialOffsetToSeparator;\n if (resizeDirection === 'Right') {\n newWidth += clickX - columnBounds.left;\n } else {\n newWidth += columnBounds.right - clickX;\n }\n return newWidth;\n}\nfunction computeOffsetToSeparator(clickX, columnBounds, resizeDirection) {\n if (resizeDirection === 'Left') {\n return clickX - columnBounds.left;\n }\n return columnBounds.right - clickX;\n}\nfunction flipResizeDirection(side) {\n if (side === 'Right') {\n return 'Left';\n }\n return 'Right';\n}\nfunction getResizeDirection(separator, isRtl) {\n const side = separator.classList.contains(gridClasses['columnSeparator--sideRight']) ? 'Right' : 'Left';\n if (isRtl) {\n // Resizing logic should be mirrored in the RTL case\n return flipResizeDirection(side);\n }\n return side;\n}\nfunction preventClick(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n\n/**\n * Checker that returns a promise that resolves when the column virtualization\n * is disabled.\n */\nfunction useColumnVirtualizationDisabled(apiRef) {\n const promise = React.useRef(undefined);\n const selector = () => gridVirtualizationColumnEnabledSelector(apiRef);\n const value = useGridSelector(apiRef, selector);\n React.useEffect(() => {\n if (promise.current && value === false) {\n promise.current.resolve();\n promise.current = undefined;\n }\n });\n const asyncCheck = () => {\n if (!promise.current) {\n if (selector() === false) {\n return Promise.resolve();\n }\n promise.current = createControllablePromise();\n }\n return promise.current;\n };\n return asyncCheck;\n}\n\n/**\n * Basic statistical outlier detection, checks if the value is `F * IQR` away from\n * the Q1 and Q3 boundaries. IQR: interquartile range.\n */\nfunction excludeOutliers(inputValues, factor) {\n if (inputValues.length < 4) {\n return inputValues;\n }\n const values = inputValues.slice();\n values.sort((a, b) => a - b);\n const q1 = values[Math.floor(values.length * 0.25)];\n const q3 = values[Math.floor(values.length * 0.75) - 1];\n const iqr = q3 - q1;\n\n // We make a small adjustment if `iqr < 5` for the cases where the IQR is\n // very small (for example zero) due to very close by values in the input data.\n // Otherwise, with an IQR of `0`, anything outside that would be considered\n // an outlier, but it makes more sense visually to allow for this 5px variance\n // rather than showing a cropped cell.\n const deviation = iqr < 5 ? 5 : iqr * factor;\n return values.filter(v => v > q1 - deviation && v < q3 + deviation);\n}\nfunction extractColumnWidths(apiRef, options, columns) {\n const widthByField = {};\n const root = apiRef.current.rootElementRef.current;\n root.classList.add(gridClasses.autosizing);\n columns.forEach(column => {\n const cells = findGridCells(apiRef.current, column.field);\n const widths = cells.map(cell => {\n return cell.getBoundingClientRect().width ?? 0;\n });\n const filteredWidths = options.includeOutliers ? widths : excludeOutliers(widths, options.outliersFactor);\n if (options.includeHeaders) {\n const header = findGridHeader(apiRef.current, column.field);\n if (header) {\n const title = header.querySelector(`.${gridClasses.columnHeaderTitle}`);\n const content = header.querySelector(`.${gridClasses.columnHeaderTitleContainerContent}`);\n const iconContainer = header.querySelector(`.${gridClasses.iconButtonContainer}`);\n const menuContainer = header.querySelector(`.${gridClasses.menuIcon}`);\n const element = title ?? content;\n const style = window.getComputedStyle(header, null);\n const paddingWidth = parseInt(style.paddingLeft, 10) + parseInt(style.paddingRight, 10);\n const contentWidth = element.scrollWidth + 1;\n const width = contentWidth + paddingWidth + (iconContainer?.clientWidth ?? 0) + (menuContainer?.clientWidth ?? 0);\n filteredWidths.push(width);\n }\n }\n const hasColumnMin = column.minWidth !== -Infinity && column.minWidth !== undefined;\n const hasColumnMax = column.maxWidth !== Infinity && column.maxWidth !== undefined;\n const min = hasColumnMin ? column.minWidth : 0;\n const max = hasColumnMax ? column.maxWidth : Infinity;\n const maxContent = filteredWidths.length === 0 ? 0 : Math.max(...filteredWidths);\n widthByField[column.field] = clamp(maxContent, min, max);\n });\n root.classList.remove(gridClasses.autosizing);\n return widthByField;\n}\nexport const columnResizeStateInitializer = state => _extends({}, state, {\n columnResize: {\n resizingColumnField: ''\n }\n});\nfunction createResizeRefs() {\n return {\n colDef: undefined,\n initialColWidth: 0,\n initialTotalWidth: 0,\n previousMouseClickEvent: undefined,\n columnHeaderElement: undefined,\n headerFilterElement: undefined,\n groupHeaderElements: [],\n cellElements: [],\n leftPinnedCellsAfter: [],\n rightPinnedCellsBefore: [],\n fillerLeft: undefined,\n fillerRight: undefined,\n leftPinnedHeadersAfter: [],\n rightPinnedHeadersBefore: []\n };\n}\n\n/**\n * @requires useGridColumns (method, event)\n * TODO: improve experience for last column\n */\nexport const useGridColumnResize = (apiRef, props) => {\n const isRtl = useRtl();\n const logger = useGridLogger(apiRef, 'useGridColumnResize');\n const refs = useLazyRef(createResizeRefs).current;\n\n // To improve accessibility, the separator has padding on both sides.\n // Clicking inside the padding area should be treated as a click in the separator.\n // This ref stores the offset between the click and the separator.\n const initialOffsetToSeparator = React.useRef(null);\n const resizeDirection = React.useRef(null);\n const stopResizeEventTimeout = useTimeout();\n const touchId = React.useRef(undefined);\n const updateWidth = newWidth => {\n logger.debug(`Updating width to ${newWidth} for col ${refs.colDef.field}`);\n const prevWidth = refs.columnHeaderElement.offsetWidth;\n const widthDiff = newWidth - prevWidth;\n const columnWidthDiff = newWidth - refs.initialColWidth;\n const newTotalWidth = refs.initialTotalWidth + columnWidthDiff;\n apiRef.current.rootElementRef?.current?.style.setProperty('--DataGrid-rowWidth', `${newTotalWidth}px`);\n refs.colDef.computedWidth = newWidth;\n refs.colDef.width = newWidth;\n refs.colDef.flex = 0;\n refs.columnHeaderElement.style.width = `${newWidth}px`;\n const headerFilterElement = refs.headerFilterElement;\n if (headerFilterElement) {\n headerFilterElement.style.width = `${newWidth}px`;\n }\n refs.groupHeaderElements.forEach(element => {\n const div = element;\n let finalWidth;\n if (div.getAttribute('aria-colspan') === '1') {\n finalWidth = `${newWidth}px`;\n } else {\n // Cell with colspan > 1 cannot be just updated width new width.\n // Instead, we add width diff to the current width.\n finalWidth = `${div.offsetWidth + widthDiff}px`;\n }\n div.style.width = finalWidth;\n });\n refs.cellElements.forEach(element => {\n const div = element;\n let finalWidth;\n if (div.getAttribute('aria-colspan') === '1') {\n finalWidth = `${newWidth}px`;\n } else {\n // Cell with colspan > 1 cannot be just updated width new width.\n // Instead, we add width diff to the current width.\n finalWidth = `${div.offsetWidth + widthDiff}px`;\n }\n div.style.setProperty('--width', finalWidth);\n });\n const pinnedPosition = apiRef.current.unstable_applyPipeProcessors('isColumnPinned', false, refs.colDef.field);\n if (pinnedPosition === GridPinnedColumnPosition.LEFT) {\n updateProperty(refs.fillerLeft, 'width', widthDiff);\n refs.leftPinnedCellsAfter.forEach(cell => {\n updateProperty(cell, 'left', widthDiff);\n });\n refs.leftPinnedHeadersAfter.forEach(header => {\n updateProperty(header, 'left', widthDiff);\n });\n }\n if (pinnedPosition === GridPinnedColumnPosition.RIGHT) {\n updateProperty(refs.fillerRight, 'width', widthDiff);\n refs.rightPinnedCellsBefore.forEach(cell => {\n updateProperty(cell, 'right', widthDiff);\n });\n refs.rightPinnedHeadersBefore.forEach(header => {\n updateProperty(header, 'right', widthDiff);\n });\n }\n };\n const finishResize = nativeEvent => {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n stopListening();\n\n // Prevent double-clicks from being interpreted as two separate clicks\n if (refs.previousMouseClickEvent) {\n const prevEvent = refs.previousMouseClickEvent;\n const prevTimeStamp = prevEvent.timeStamp;\n const prevClientX = prevEvent.clientX;\n const prevClientY = prevEvent.clientY;\n\n // Check if the current event is part of a double-click\n if (nativeEvent.timeStamp - prevTimeStamp < 300 && nativeEvent.clientX === prevClientX && nativeEvent.clientY === prevClientY) {\n refs.previousMouseClickEvent = undefined;\n apiRef.current.publishEvent('columnResizeStop', null, nativeEvent);\n return;\n }\n }\n if (refs.colDef) {\n apiRef.current.setColumnWidth(refs.colDef.field, refs.colDef.width);\n logger.debug(`Updating col ${refs.colDef.field} with new width: ${refs.colDef.width}`);\n\n // Since during resizing we update the columns width outside of React, React is unable to\n // reapply the right style properties. We need to sync the state manually.\n // So we reapply the same logic as in https://github.com/mui/mui-x/blob/0511bf65543ca05d2602a5a3e0a6156f2fc8e759/packages/x-data-grid/src/hooks/features/columnHeaders/useGridColumnHeaders.tsx#L405\n const columnsState = gridColumnsStateSelector(apiRef.current.state);\n refs.groupHeaderElements.forEach(element => {\n const fields = getFieldsFromGroupHeaderElem(element);\n const div = element;\n const newWidth = fields.reduce((acc, field) => {\n if (columnsState.columnVisibilityModel[field] !== false) {\n return acc + columnsState.lookup[field].computedWidth;\n }\n return acc;\n }, 0);\n const finalWidth = `${newWidth}px`;\n div.style.width = finalWidth;\n });\n }\n stopResizeEventTimeout.start(0, () => {\n apiRef.current.publishEvent('columnResizeStop', null, nativeEvent);\n });\n };\n const storeReferences = (colDef, separator, xStart) => {\n const root = apiRef.current.rootElementRef.current;\n refs.initialColWidth = colDef.computedWidth;\n refs.initialTotalWidth = apiRef.current.getRootDimensions().rowWidth;\n refs.colDef = colDef;\n refs.columnHeaderElement = findHeaderElementFromField(apiRef.current.columnHeadersContainerRef.current, colDef.field);\n const headerFilterElement = root.querySelector(`.${gridClasses.headerFilterRow} [data-field=\"${escapeOperandAttributeSelector(colDef.field)}\"]`);\n if (headerFilterElement) {\n refs.headerFilterElement = headerFilterElement;\n }\n refs.groupHeaderElements = findGroupHeaderElementsFromField(apiRef.current.columnHeadersContainerRef?.current, colDef.field);\n refs.cellElements = findGridCellElementsFromCol(refs.columnHeaderElement, apiRef.current);\n refs.fillerLeft = findGridElement(apiRef.current, isRtl ? 'filler--pinnedRight' : 'filler--pinnedLeft');\n refs.fillerRight = findGridElement(apiRef.current, isRtl ? 'filler--pinnedLeft' : 'filler--pinnedRight');\n const pinnedPosition = apiRef.current.unstable_applyPipeProcessors('isColumnPinned', false, refs.colDef.field);\n refs.leftPinnedCellsAfter = pinnedPosition !== GridPinnedColumnPosition.LEFT ? [] : findLeftPinnedCellsAfterCol(apiRef.current, refs.columnHeaderElement, isRtl);\n refs.rightPinnedCellsBefore = pinnedPosition !== GridPinnedColumnPosition.RIGHT ? [] : findRightPinnedCellsBeforeCol(apiRef.current, refs.columnHeaderElement, isRtl);\n refs.leftPinnedHeadersAfter = pinnedPosition !== GridPinnedColumnPosition.LEFT ? [] : findLeftPinnedHeadersAfterCol(apiRef.current, refs.columnHeaderElement, isRtl);\n refs.rightPinnedHeadersBefore = pinnedPosition !== GridPinnedColumnPosition.RIGHT ? [] : findRightPinnedHeadersBeforeCol(apiRef.current, refs.columnHeaderElement, isRtl);\n resizeDirection.current = getResizeDirection(separator, isRtl);\n initialOffsetToSeparator.current = computeOffsetToSeparator(xStart, refs.columnHeaderElement.getBoundingClientRect(), resizeDirection.current);\n };\n const handleResizeMouseUp = useEventCallback(finishResize);\n const handleResizeMouseMove = useEventCallback(nativeEvent => {\n // Cancel move in case some other element consumed a mouseup event and it was not fired.\n if (nativeEvent.buttons === 0) {\n handleResizeMouseUp(nativeEvent);\n return;\n }\n let newWidth = computeNewWidth(initialOffsetToSeparator.current, nativeEvent.clientX, refs.columnHeaderElement.getBoundingClientRect(), resizeDirection.current);\n newWidth = clamp(newWidth, refs.colDef.minWidth, refs.colDef.maxWidth);\n updateWidth(newWidth);\n const params = {\n element: refs.columnHeaderElement,\n colDef: refs.colDef,\n width: newWidth\n };\n apiRef.current.publishEvent('columnResize', params, nativeEvent);\n });\n const handleTouchEnd = useEventCallback(nativeEvent => {\n const finger = trackFinger(nativeEvent, touchId.current);\n if (!finger) {\n return;\n }\n finishResize(nativeEvent);\n });\n const handleTouchMove = useEventCallback(nativeEvent => {\n const finger = trackFinger(nativeEvent, touchId.current);\n if (!finger) {\n return;\n }\n\n // Cancel move in case some other element consumed a touchmove event and it was not fired.\n if (nativeEvent.type === 'mousemove' && nativeEvent.buttons === 0) {\n handleTouchEnd(nativeEvent);\n return;\n }\n let newWidth = computeNewWidth(initialOffsetToSeparator.current, finger.x, refs.columnHeaderElement.getBoundingClientRect(), resizeDirection.current);\n newWidth = clamp(newWidth, refs.colDef.minWidth, refs.colDef.maxWidth);\n updateWidth(newWidth);\n const params = {\n element: refs.columnHeaderElement,\n colDef: refs.colDef,\n width: newWidth\n };\n apiRef.current.publishEvent('columnResize', params, nativeEvent);\n });\n const handleTouchStart = useEventCallback(event => {\n const cellSeparator = findParentElementFromClassName(event.target, gridClasses['columnSeparator--resizable']);\n // Let the event bubble if the target is not a col separator\n if (!cellSeparator) {\n return;\n }\n const touch = event.changedTouches[0];\n if (touch != null) {\n // A number that uniquely identifies the current finger in the touch session.\n touchId.current = touch.identifier;\n }\n const columnHeaderElement = findParentElementFromClassName(event.target, gridClasses.columnHeader);\n const field = getFieldFromHeaderElem(columnHeaderElement);\n const colDef = apiRef.current.getColumn(field);\n logger.debug(`Start Resize on col ${colDef.field}`);\n apiRef.current.publishEvent('columnResizeStart', {\n field\n }, event);\n storeReferences(colDef, cellSeparator, touch.clientX);\n const doc = ownerDocument(event.currentTarget);\n doc.addEventListener('touchmove', handleTouchMove);\n doc.addEventListener('touchend', handleTouchEnd);\n });\n const stopListening = React.useCallback(() => {\n const doc = ownerDocument(apiRef.current.rootElementRef.current);\n doc.body.style.removeProperty('cursor');\n doc.removeEventListener('mousemove', handleResizeMouseMove);\n doc.removeEventListener('mouseup', handleResizeMouseUp);\n doc.removeEventListener('touchmove', handleTouchMove);\n doc.removeEventListener('touchend', handleTouchEnd);\n // The click event runs right after the mouseup event, we want to wait until it\n // has been canceled before removing our handler.\n setTimeout(() => {\n doc.removeEventListener('click', preventClick, true);\n }, 100);\n if (refs.columnHeaderElement) {\n refs.columnHeaderElement.style.pointerEvents = 'unset';\n }\n }, [apiRef, refs, handleResizeMouseMove, handleResizeMouseUp, handleTouchMove, handleTouchEnd]);\n const handleResizeStart = React.useCallback(({\n field\n }) => {\n apiRef.current.setState(state => _extends({}, state, {\n columnResize: _extends({}, state.columnResize, {\n resizingColumnField: field\n })\n }));\n apiRef.current.forceUpdate();\n }, [apiRef]);\n const handleResizeStop = React.useCallback(() => {\n apiRef.current.setState(state => _extends({}, state, {\n columnResize: _extends({}, state.columnResize, {\n resizingColumnField: ''\n })\n }));\n apiRef.current.forceUpdate();\n }, [apiRef]);\n const handleColumnResizeMouseDown = useEventCallback(({\n colDef\n }, event) => {\n // Only handle left clicks\n if (event.button !== 0) {\n return;\n }\n\n // Skip if the column isn't resizable\n if (!event.currentTarget.classList.contains(gridClasses['columnSeparator--resizable'])) {\n return;\n }\n\n // Avoid text selection\n event.preventDefault();\n logger.debug(`Start Resize on col ${colDef.field}`);\n apiRef.current.publishEvent('columnResizeStart', {\n field: colDef.field\n }, event);\n storeReferences(colDef, event.currentTarget, event.clientX);\n const doc = ownerDocument(apiRef.current.rootElementRef.current);\n doc.body.style.cursor = 'col-resize';\n refs.previousMouseClickEvent = event.nativeEvent;\n doc.addEventListener('mousemove', handleResizeMouseMove);\n doc.addEventListener('mouseup', handleResizeMouseUp);\n\n // Prevent the click event if we have resized the column.\n // Fixes https://github.com/mui/mui-x/issues/4777\n doc.addEventListener('click', preventClick, true);\n });\n const handleColumnSeparatorDoubleClick = useEventCallback((params, event) => {\n if (props.disableAutosize) {\n return;\n }\n\n // Only handle left clicks\n if (event.button !== 0) {\n return;\n }\n const column = apiRef.current.state.columns.lookup[params.field];\n if (column.resizable === false) {\n return;\n }\n apiRef.current.autosizeColumns(_extends({}, props.autosizeOptions, {\n disableColumnVirtualization: false,\n columns: [column.field]\n }));\n });\n\n /**\n * API METHODS\n */\n\n const columnVirtualizationDisabled = useColumnVirtualizationDisabled(apiRef);\n const isAutosizingRef = React.useRef(false);\n const autosizeColumns = React.useCallback(async userOptions => {\n const root = apiRef.current.rootElementRef?.current;\n if (!root) {\n return;\n }\n if (isAutosizingRef.current) {\n return;\n }\n isAutosizingRef.current = true;\n const state = gridColumnsStateSelector(apiRef.current.state);\n const options = _extends({}, DEFAULT_GRID_AUTOSIZE_OPTIONS, userOptions, {\n columns: userOptions?.columns ?? state.orderedFields\n });\n options.columns = options.columns.filter(c => state.columnVisibilityModel[c] !== false);\n const columns = options.columns.map(c => apiRef.current.state.columns.lookup[c]);\n try {\n if (!props.disableVirtualization && options.disableColumnVirtualization) {\n apiRef.current.unstable_setColumnVirtualization(false);\n await columnVirtualizationDisabled();\n }\n const widthByField = extractColumnWidths(apiRef, options, columns);\n const newColumns = columns.map(column => _extends({}, column, {\n width: widthByField[column.field],\n computedWidth: widthByField[column.field],\n flex: 0\n }));\n if (options.expand) {\n const visibleColumns = state.orderedFields.map(field => state.lookup[field]).filter(c => state.columnVisibilityModel[c.field] !== false);\n const totalWidth = visibleColumns.reduce((total, column) => total + (widthByField[column.field] ?? column.computedWidth ?? column.width), 0);\n const availableWidth = apiRef.current.getRootDimensions().viewportInnerSize.width;\n const remainingWidth = availableWidth - totalWidth;\n if (remainingWidth > 0) {\n const widthPerColumn = remainingWidth / (newColumns.length || 1);\n newColumns.forEach(column => {\n column.width += widthPerColumn;\n column.computedWidth += widthPerColumn;\n });\n }\n }\n apiRef.current.updateColumns(newColumns);\n newColumns.forEach((newColumn, index) => {\n if (newColumn.width !== columns[index].width) {\n const width = newColumn.width;\n apiRef.current.publishEvent('columnWidthChange', {\n element: apiRef.current.getColumnHeaderElement(newColumn.field),\n colDef: newColumn,\n width\n });\n }\n });\n } finally {\n if (!props.disableVirtualization) {\n apiRef.current.unstable_setColumnVirtualization(true);\n }\n isAutosizingRef.current = false;\n }\n }, [apiRef, columnVirtualizationDisabled, props.disableVirtualization]);\n\n /**\n * EFFECTS\n */\n\n React.useEffect(() => stopListening, [stopListening]);\n useOnMount(() => {\n if (props.autosizeOnMount) {\n Promise.resolve().then(() => {\n apiRef.current.autosizeColumns(props.autosizeOptions);\n });\n }\n });\n useGridNativeEventListener(apiRef, () => apiRef.current.columnHeadersContainerRef?.current, 'touchstart', handleTouchStart, {\n passive: true\n });\n useGridApiMethod(apiRef, {\n autosizeColumns\n }, 'public');\n useGridApiEventHandler(apiRef, 'columnResizeStop', handleResizeStop);\n useGridApiEventHandler(apiRef, 'columnResizeStart', handleResizeStart);\n useGridApiEventHandler(apiRef, 'columnSeparatorMouseDown', handleColumnResizeMouseDown);\n useGridApiEventHandler(apiRef, 'columnSeparatorDoubleClick', handleColumnSeparatorDoubleClick);\n useGridApiOptionHandler(apiRef, 'columnResize', props.onColumnResize);\n useGridApiOptionHandler(apiRef, 'columnWidthChange', props.onColumnWidthChange);\n};\nfunction updateProperty(element, property, delta) {\n if (!element) {\n return;\n }\n element.style[property] = `${parseInt(element.style[property], 10) + delta}px`;\n}","export function createControllablePromise() {\n let resolve;\n let reject;\n const promise = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n promise.resolve = resolve;\n promise.reject = reject;\n return promise;\n}","export function getUnprocessedRange(testRange, processedRange) {\n if (testRange.firstRowIndex >= processedRange.firstRowIndex && testRange.lastRowIndex <= processedRange.lastRowIndex) {\n return null;\n }\n // Overflowing at the end\n // Example: testRange={ firstRowIndex: 10, lastRowIndex: 20 }, processedRange={ firstRowIndex: 0, lastRowIndex: 15 }\n // Unprocessed Range={ firstRowIndex: 16, lastRowIndex: 20 }\n if (testRange.firstRowIndex >= processedRange.firstRowIndex && testRange.lastRowIndex > processedRange.lastRowIndex) {\n return {\n firstRowIndex: processedRange.lastRowIndex,\n lastRowIndex: testRange.lastRowIndex\n };\n }\n // Overflowing at the beginning\n // Example: testRange={ firstRowIndex: 0, lastRowIndex: 20 }, processedRange={ firstRowIndex: 16, lastRowIndex: 30 }\n // Unprocessed Range={ firstRowIndex: 0, lastRowIndex: 15 }\n if (testRange.firstRowIndex < processedRange.firstRowIndex && testRange.lastRowIndex <= processedRange.lastRowIndex) {\n return {\n firstRowIndex: testRange.firstRowIndex,\n lastRowIndex: processedRange.firstRowIndex - 1\n };\n }\n // TODO: Should return two ranges handle overflowing at both ends ?\n return testRange;\n}\nexport function isRowContextInitialized(renderContext) {\n return renderContext.firstRowIndex !== 0 || renderContext.lastRowIndex !== 0;\n}\nexport function isRowRangeUpdated(range1, range2) {\n return range1.firstRowIndex !== range2.firstRowIndex || range1.lastRowIndex !== range2.lastRowIndex;\n}\nexport const getCellValue = (row, colDef, apiRef) => {\n if (!row) {\n return null;\n }\n let cellValue = row[colDef.field];\n const valueGetter = colDef.rowSpanValueGetter ?? colDef.valueGetter;\n if (valueGetter) {\n cellValue = valueGetter(cellValue, row, colDef, apiRef);\n }\n return cellValue;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useLazyRef from '@mui/utils/useLazyRef';\nimport { GRID_DETAIL_PANEL_TOGGLE_FIELD } from \"../../../internals/constants.js\";\nimport { gridVisibleColumnDefinitionsSelector } from \"../columns/gridColumnsSelector.js\";\nimport { useGridVisibleRows } from \"../../utils/useGridVisibleRows.js\";\nimport { gridRenderContextSelector } from \"../virtualization/gridVirtualizationSelectors.js\";\nimport { useGridSelector } from \"../../utils/useGridSelector.js\";\nimport { gridRowTreeSelector } from \"./gridRowsSelector.js\";\nimport { getUnprocessedRange, isRowRangeUpdated, isRowContextInitialized, getCellValue } from \"./gridRowSpanningUtils.js\";\nimport { GRID_CHECKBOX_SELECTION_FIELD } from \"../../../colDef/gridCheckboxSelectionColDef.js\";\nconst EMPTY_STATE = {\n spannedCells: {},\n hiddenCells: {},\n hiddenCellOriginMap: {}\n};\nconst EMPTY_RANGE = {\n firstRowIndex: 0,\n lastRowIndex: 0\n};\nconst skippedFields = new Set([GRID_CHECKBOX_SELECTION_FIELD, '__reorder__', GRID_DETAIL_PANEL_TOGGLE_FIELD]);\n/**\n * Default number of rows to process during state initialization to avoid flickering.\n * Number `20` is arbitrarily chosen to be large enough to cover most of the cases without\n * compromising performance.\n */\nconst DEFAULT_ROWS_TO_PROCESS = 20;\nconst computeRowSpanningState = (apiRef, colDefs, visibleRows, range, rangeToProcess, resetState, processedRange) => {\n const spannedCells = resetState ? {} : _extends({}, apiRef.current.state.rowSpanning.spannedCells);\n const hiddenCells = resetState ? {} : _extends({}, apiRef.current.state.rowSpanning.hiddenCells);\n const hiddenCellOriginMap = resetState ? {} : _extends({}, apiRef.current.state.rowSpanning.hiddenCellOriginMap);\n if (resetState) {\n processedRange = EMPTY_RANGE;\n }\n colDefs.forEach(colDef => {\n if (skippedFields.has(colDef.field)) {\n return;\n }\n for (let index = rangeToProcess.firstRowIndex; index < rangeToProcess.lastRowIndex; index += 1) {\n const row = visibleRows[index];\n if (hiddenCells[row.id]?.[colDef.field]) {\n continue;\n }\n const cellValue = getCellValue(row.model, colDef, apiRef);\n if (cellValue == null) {\n continue;\n }\n let spannedRowId = row.id;\n let spannedRowIndex = index;\n let rowSpan = 0;\n\n // For first index, also scan in the previous rows to handle the reset state case e.g by sorting\n const backwardsHiddenCells = [];\n if (index === rangeToProcess.firstRowIndex) {\n let prevIndex = index - 1;\n const prevRowEntry = visibleRows[prevIndex];\n while (prevIndex >= range.firstRowIndex && getCellValue(prevRowEntry.model, colDef, apiRef) === cellValue) {\n const currentRow = visibleRows[prevIndex + 1];\n if (hiddenCells[currentRow.id]) {\n hiddenCells[currentRow.id][colDef.field] = true;\n } else {\n hiddenCells[currentRow.id] = {\n [colDef.field]: true\n };\n }\n backwardsHiddenCells.push(index);\n rowSpan += 1;\n spannedRowId = prevRowEntry.id;\n spannedRowIndex = prevIndex;\n prevIndex -= 1;\n }\n }\n backwardsHiddenCells.forEach(hiddenCellIndex => {\n if (hiddenCellOriginMap[hiddenCellIndex]) {\n hiddenCellOriginMap[hiddenCellIndex][colDef.field] = spannedRowIndex;\n } else {\n hiddenCellOriginMap[hiddenCellIndex] = {\n [colDef.field]: spannedRowIndex\n };\n }\n });\n\n // Scan the next rows\n let relativeIndex = index + 1;\n while (relativeIndex <= range.lastRowIndex && visibleRows[relativeIndex] && getCellValue(visibleRows[relativeIndex].model, colDef, apiRef) === cellValue) {\n const currentRow = visibleRows[relativeIndex];\n if (hiddenCells[currentRow.id]) {\n hiddenCells[currentRow.id][colDef.field] = true;\n } else {\n hiddenCells[currentRow.id] = {\n [colDef.field]: true\n };\n }\n if (hiddenCellOriginMap[relativeIndex]) {\n hiddenCellOriginMap[relativeIndex][colDef.field] = spannedRowIndex;\n } else {\n hiddenCellOriginMap[relativeIndex] = {\n [colDef.field]: spannedRowIndex\n };\n }\n relativeIndex += 1;\n rowSpan += 1;\n }\n if (rowSpan > 0) {\n if (spannedCells[spannedRowId]) {\n spannedCells[spannedRowId][colDef.field] = rowSpan + 1;\n } else {\n spannedCells[spannedRowId] = {\n [colDef.field]: rowSpan + 1\n };\n }\n }\n }\n processedRange = {\n firstRowIndex: Math.min(processedRange.firstRowIndex, rangeToProcess.firstRowIndex),\n lastRowIndex: Math.max(processedRange.lastRowIndex, rangeToProcess.lastRowIndex)\n };\n });\n return {\n spannedCells,\n hiddenCells,\n hiddenCellOriginMap,\n processedRange\n };\n};\n\n/**\n * @requires columnsStateInitializer (method) - should be initialized before\n * @requires rowsStateInitializer (method) - should be initialized before\n * @requires filterStateInitializer (method) - should be initialized before\n */\nexport const rowSpanningStateInitializer = (state, props, apiRef) => {\n if (props.unstable_rowSpanning) {\n const rowIds = state.rows.dataRowIds || [];\n const orderedFields = state.columns.orderedFields || [];\n const dataRowIdToModelLookup = state.rows.dataRowIdToModelLookup;\n const columnsLookup = state.columns.lookup;\n const isFilteringPending = Boolean(state.filter.filterModel.items.length) || Boolean(state.filter.filterModel.quickFilterValues?.length);\n if (!rowIds.length || !orderedFields.length || !dataRowIdToModelLookup || !columnsLookup || isFilteringPending) {\n return _extends({}, state, {\n rowSpanning: EMPTY_STATE\n });\n }\n const rangeToProcess = {\n firstRowIndex: 0,\n lastRowIndex: Math.min(DEFAULT_ROWS_TO_PROCESS, Math.max(rowIds.length, 0))\n };\n const rows = rowIds.map(id => ({\n id,\n model: dataRowIdToModelLookup[id]\n }));\n const colDefs = orderedFields.map(field => columnsLookup[field]);\n const {\n spannedCells,\n hiddenCells,\n hiddenCellOriginMap\n } = computeRowSpanningState(apiRef, colDefs, rows, rangeToProcess, rangeToProcess, true, EMPTY_RANGE);\n return _extends({}, state, {\n rowSpanning: {\n spannedCells,\n hiddenCells,\n hiddenCellOriginMap\n }\n });\n }\n return _extends({}, state, {\n rowSpanning: EMPTY_STATE\n });\n};\nexport const useGridRowSpanning = (apiRef, props) => {\n const {\n range,\n rows: visibleRows\n } = useGridVisibleRows(apiRef, props);\n const renderContext = useGridSelector(apiRef, gridRenderContextSelector);\n const colDefs = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);\n const tree = useGridSelector(apiRef, gridRowTreeSelector);\n const processedRange = useLazyRef(() => {\n return Object.keys(apiRef.current.state.rowSpanning.spannedCells).length > 0 ? {\n firstRowIndex: 0,\n lastRowIndex: Math.min(DEFAULT_ROWS_TO_PROCESS, Math.max(apiRef.current.state.rows.dataRowIds.length, 0))\n } : EMPTY_RANGE;\n });\n const lastRange = React.useRef(EMPTY_RANGE);\n const updateRowSpanningState = React.useCallback(\n // A reset needs to occur when:\n // - The `unstable_rowSpanning` prop is updated (feature flag)\n // - The filtering is applied\n // - The sorting is applied\n // - The `paginationModel` is updated\n // - The rows are updated\n (resetState = true) => {\n if (!props.unstable_rowSpanning) {\n if (apiRef.current.state.rowSpanning !== EMPTY_STATE) {\n apiRef.current.setState(state => _extends({}, state, {\n rowSpanning: EMPTY_STATE\n }));\n }\n return;\n }\n if (range === null || !isRowContextInitialized(renderContext)) {\n return;\n }\n if (resetState) {\n processedRange.current = EMPTY_RANGE;\n }\n const rangeToProcess = getUnprocessedRange({\n firstRowIndex: renderContext.firstRowIndex,\n lastRowIndex: Math.min(renderContext.lastRowIndex, range.lastRowIndex + 1)\n }, processedRange.current);\n if (rangeToProcess === null) {\n return;\n }\n const {\n spannedCells,\n hiddenCells,\n hiddenCellOriginMap,\n processedRange: newProcessedRange\n } = computeRowSpanningState(apiRef, colDefs, visibleRows, range, rangeToProcess, resetState, processedRange.current);\n processedRange.current = newProcessedRange;\n const newSpannedCellsCount = Object.keys(spannedCells).length;\n const newHiddenCellsCount = Object.keys(hiddenCells).length;\n const currentSpannedCellsCount = Object.keys(apiRef.current.state.rowSpanning.spannedCells).length;\n const currentHiddenCellsCount = Object.keys(apiRef.current.state.rowSpanning.hiddenCells).length;\n const shouldUpdateState = resetState || newSpannedCellsCount !== currentSpannedCellsCount || newHiddenCellsCount !== currentHiddenCellsCount;\n if (!shouldUpdateState) {\n return;\n }\n apiRef.current.setState(state => {\n return _extends({}, state, {\n rowSpanning: {\n spannedCells,\n hiddenCells,\n hiddenCellOriginMap\n }\n });\n });\n }, [apiRef, props.unstable_rowSpanning, range, renderContext, visibleRows, colDefs, processedRange]);\n const prevRenderContext = React.useRef(renderContext);\n const isFirstRender = React.useRef(true);\n const shouldResetState = React.useRef(false);\n const previousTree = React.useRef(tree);\n React.useEffect(() => {\n const firstRender = isFirstRender.current;\n if (isFirstRender.current) {\n isFirstRender.current = false;\n }\n if (tree !== previousTree.current) {\n previousTree.current = tree;\n updateRowSpanningState(true);\n return;\n }\n if (range && lastRange.current && isRowRangeUpdated(range, lastRange.current)) {\n lastRange.current = range;\n shouldResetState.current = true;\n }\n if (!firstRender && prevRenderContext.current !== renderContext) {\n if (isRowRangeUpdated(prevRenderContext.current, renderContext)) {\n updateRowSpanningState(shouldResetState.current);\n shouldResetState.current = false;\n }\n prevRenderContext.current = renderContext;\n return;\n }\n updateRowSpanningState();\n }, [updateRowSpanningState, renderContext, range, lastRange, tree]);\n};","const warnedOnceCache = new Set();\n\n// TODO move to @base_ui/internals. Base UI, etc. need this helper.\nexport function warnOnce(message, gravity = 'warning') {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n const cleanMessage = Array.isArray(message) ? message.join('\\n') : message;\n if (!warnedOnceCache.has(cleanMessage)) {\n warnedOnceCache.add(cleanMessage);\n if (gravity === 'error') {\n console.error(cleanMessage);\n } else {\n console.warn(cleanMessage);\n }\n }\n}\nexport function clearWarningsCache() {\n warnedOnceCache.clear();\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { warnOnce } from '@mui/x-internals/warning';\nimport { gridDimensionsSelector } from \"../dimensions/index.js\";\nimport { useGridApiEventHandler } from \"../../utils/useGridApiEventHandler.js\";\nexport const listViewStateInitializer = (state, props, apiRef) => _extends({}, state, {\n listViewColumn: props.unstable_listColumn ? _extends({}, props.unstable_listColumn, {\n computedWidth: getListColumnWidth(apiRef)\n }) : undefined\n});\nexport function useGridListView(apiRef, props) {\n /*\n * EVENTS\n */\n const updateListColumnWidth = () => {\n apiRef.current.setState(state => {\n if (!state.listViewColumn) {\n return state;\n }\n return _extends({}, state, {\n listViewColumn: _extends({}, state.listViewColumn, {\n computedWidth: getListColumnWidth(apiRef)\n })\n });\n });\n };\n const prevInnerWidth = React.useRef(null);\n const handleGridSizeChange = viewportInnerSize => {\n if (prevInnerWidth.current !== viewportInnerSize.width) {\n prevInnerWidth.current = viewportInnerSize.width;\n updateListColumnWidth();\n }\n };\n useGridApiEventHandler(apiRef, 'viewportInnerSizeChange', handleGridSizeChange);\n useGridApiEventHandler(apiRef, 'columnVisibilityModelChange', updateListColumnWidth);\n\n /*\n * EFFECTS\n */\n React.useEffect(() => {\n const listColumn = props.unstable_listColumn;\n if (listColumn) {\n apiRef.current.setState(state => {\n return _extends({}, state, {\n listViewColumn: _extends({}, listColumn, {\n computedWidth: getListColumnWidth(apiRef)\n })\n });\n });\n }\n }, [apiRef, props.unstable_listColumn]);\n React.useEffect(() => {\n if (props.unstable_listView && !props.unstable_listColumn) {\n warnOnce(['MUI X: The `unstable_listColumn` prop must be set if `unstable_listView` is enabled.', 'To fix, pass a column definition to the `unstable_listColumn` prop, e.g. `{ field: \"example\", renderCell: (params) => <div>{params.row.id}</div> }`.', 'For more details, see https://mui.com/x/react-data-grid/list-view/']);\n }\n }, [props.unstable_listView, props.unstable_listColumn]);\n}\nfunction getListColumnWidth(apiRef) {\n return gridDimensionsSelector(apiRef.current.state).viewportInnerSize.width;\n}","import { useGridInitialization } from \"../hooks/core/useGridInitialization.js\";\nimport { useGridInitializeState } from \"../hooks/utils/useGridInitializeState.js\";\nimport { useGridClipboard } from \"../hooks/features/clipboard/useGridClipboard.js\";\nimport { columnMenuStateInitializer, useGridColumnMenu } from \"../hooks/features/columnMenu/useGridColumnMenu.js\";\nimport { useGridColumns, columnsStateInitializer } from \"../hooks/features/columns/useGridColumns.js\";\nimport { densityStateInitializer, useGridDensity } from \"../hooks/features/density/useGridDensity.js\";\nimport { useGridCsvExport } from \"../hooks/features/export/useGridCsvExport.js\";\nimport { useGridPrintExport } from \"../hooks/features/export/useGridPrintExport.js\";\nimport { useGridFilter, filterStateInitializer } from \"../hooks/features/filter/useGridFilter.js\";\nimport { focusStateInitializer, useGridFocus } from \"../hooks/features/focus/useGridFocus.js\";\nimport { useGridKeyboardNavigation } from \"../hooks/features/keyboardNavigation/useGridKeyboardNavigation.js\";\nimport { useGridPagination, paginationStateInitializer } from \"../hooks/features/pagination/useGridPagination.js\";\nimport { useGridPreferencesPanel, preferencePanelStateInitializer } from \"../hooks/features/preferencesPanel/useGridPreferencesPanel.js\";\nimport { useGridEditing, editingStateInitializer } from \"../hooks/features/editing/useGridEditing.js\";\nimport { useGridRows, rowsStateInitializer } from \"../hooks/features/rows/useGridRows.js\";\nimport { useGridRowsPreProcessors } from \"../hooks/features/rows/useGridRowsPreProcessors.js\";\nimport { useGridParamsApi } from \"../hooks/features/rows/useGridParamsApi.js\";\nimport { rowSelectionStateInitializer, useGridRowSelection } from \"../hooks/features/rowSelection/useGridRowSelection.js\";\nimport { useGridRowSelectionPreProcessors } from \"../hooks/features/rowSelection/useGridRowSelectionPreProcessors.js\";\nimport { useGridSorting, sortingStateInitializer } from \"../hooks/features/sorting/useGridSorting.js\";\nimport { useGridScroll } from \"../hooks/features/scroll/useGridScroll.js\";\nimport { useGridEvents } from \"../hooks/features/events/useGridEvents.js\";\nimport { dimensionsStateInitializer, useGridDimensions } from \"../hooks/features/dimensions/useGridDimensions.js\";\nimport { rowsMetaStateInitializer, useGridRowsMeta } from \"../hooks/features/rows/useGridRowsMeta.js\";\nimport { useGridStatePersistence } from \"../hooks/features/statePersistence/useGridStatePersistence.js\";\nimport { useGridColumnSpanning } from \"../hooks/features/columns/useGridColumnSpanning.js\";\nimport { useGridColumnGrouping, columnGroupsStateInitializer } from \"../hooks/features/columnGrouping/useGridColumnGrouping.js\";\nimport { useGridVirtualization, virtualizationStateInitializer } from \"../hooks/features/virtualization/index.js\";\nimport { columnResizeStateInitializer, useGridColumnResize } from \"../hooks/features/columnResize/useGridColumnResize.js\";\nimport { rowSpanningStateInitializer, useGridRowSpanning } from \"../hooks/features/rows/useGridRowSpanning.js\";\nimport { listViewStateInitializer, useGridListView } from \"../hooks/features/listView/useGridListView.js\";\nexport const useDataGridComponent = (inputApiRef, props) => {\n const apiRef = useGridInitialization(inputApiRef, props);\n\n /**\n * Register all pre-processors called during state initialization here.\n */\n useGridRowSelectionPreProcessors(apiRef, props);\n useGridRowsPreProcessors(apiRef);\n\n /**\n * Register all state initializers here.\n */\n useGridInitializeState(dimensionsStateInitializer, apiRef, props);\n useGridInitializeState(rowSelectionStateInitializer, apiRef, props);\n useGridInitializeState(columnsStateInitializer, apiRef, props);\n useGridInitializeState(rowsStateInitializer, apiRef, props);\n useGridInitializeState(editingStateInitializer, apiRef, props);\n useGridInitializeState(focusStateInitializer, apiRef, props);\n useGridInitializeState(sortingStateInitializer, apiRef, props);\n useGridInitializeState(preferencePanelStateInitializer, apiRef, props);\n useGridInitializeState(filterStateInitializer, apiRef, props);\n useGridInitializeState(rowSpanningStateInitializer, apiRef, props);\n useGridInitializeState(densityStateInitializer, apiRef, props);\n useGridInitializeState(columnResizeStateInitializer, apiRef, props);\n useGridInitializeState(paginationStateInitializer, apiRef, props);\n useGridInitializeState(rowsMetaStateInitializer, apiRef, props);\n useGridInitializeState(columnMenuStateInitializer, apiRef, props);\n useGridInitializeState(columnGroupsStateInitializer, apiRef, props);\n useGridInitializeState(virtualizationStateInitializer, apiRef, props);\n useGridInitializeState(listViewStateInitializer, apiRef, props);\n useGridKeyboardNavigation(apiRef, props);\n useGridRowSelection(apiRef, props);\n useGridColumns(apiRef, props);\n useGridRows(apiRef, props);\n useGridRowSpanning(apiRef, props);\n useGridParamsApi(apiRef, props);\n useGridColumnSpanning(apiRef);\n useGridColumnGrouping(apiRef, props);\n useGridEditing(apiRef, props);\n useGridFocus(apiRef, props);\n useGridPreferencesPanel(apiRef, props);\n useGridFilter(apiRef, props);\n useGridSorting(apiRef, props);\n useGridDensity(apiRef, props);\n useGridColumnResize(apiRef, props);\n useGridPagination(apiRef, props);\n useGridRowsMeta(apiRef, props);\n useGridScroll(apiRef, props);\n useGridColumnMenu(apiRef);\n useGridCsvExport(apiRef, props);\n useGridPrintExport(apiRef, props);\n useGridClipboard(apiRef, props);\n useGridDimensions(apiRef, props);\n useGridEvents(apiRef, props);\n useGridStatePersistence(apiRef);\n useGridVirtualization(apiRef, props);\n useGridListView(apiRef, props);\n return apiRef;\n};","import { useGridApiOptionHandler } from \"../../utils/useGridApiEventHandler.js\";\n/**\n * @requires useGridFocus (event) - can be after, async only\n * @requires useGridColumns (event) - can be after, async only\n */\nexport function useGridEvents(apiRef, props) {\n useGridApiOptionHandler(apiRef, 'columnHeaderClick', props.onColumnHeaderClick);\n useGridApiOptionHandler(apiRef, 'columnHeaderContextMenu', props.onColumnHeaderContextMenu);\n useGridApiOptionHandler(apiRef, 'columnHeaderDoubleClick', props.onColumnHeaderDoubleClick);\n useGridApiOptionHandler(apiRef, 'columnHeaderOver', props.onColumnHeaderOver);\n useGridApiOptionHandler(apiRef, 'columnHeaderOut', props.onColumnHeaderOut);\n useGridApiOptionHandler(apiRef, 'columnHeaderEnter', props.onColumnHeaderEnter);\n useGridApiOptionHandler(apiRef, 'columnHeaderLeave', props.onColumnHeaderLeave);\n useGridApiOptionHandler(apiRef, 'cellClick', props.onCellClick);\n useGridApiOptionHandler(apiRef, 'cellDoubleClick', props.onCellDoubleClick);\n useGridApiOptionHandler(apiRef, 'cellKeyDown', props.onCellKeyDown);\n useGridApiOptionHandler(apiRef, 'preferencePanelClose', props.onPreferencePanelClose);\n useGridApiOptionHandler(apiRef, 'preferencePanelOpen', props.onPreferencePanelOpen);\n useGridApiOptionHandler(apiRef, 'menuOpen', props.onMenuOpen);\n useGridApiOptionHandler(apiRef, 'menuClose', props.onMenuClose);\n useGridApiOptionHandler(apiRef, 'rowDoubleClick', props.onRowDoubleClick);\n useGridApiOptionHandler(apiRef, 'rowClick', props.onRowClick);\n useGridApiOptionHandler(apiRef, 'stateChange', props.onStateChange);\n}","import * as React from 'react';\nimport { useGridApiMethod } from \"../../utils/index.js\";\nexport const useGridStatePersistence = apiRef => {\n const exportState = React.useCallback((params = {}) => {\n const stateToExport = apiRef.current.unstable_applyPipeProcessors('exportState', {}, params);\n return stateToExport;\n }, [apiRef]);\n const restoreState = React.useCallback(stateToRestore => {\n const response = apiRef.current.unstable_applyPipeProcessors('restoreState', {\n callbacks: []\n }, {\n stateToRestore\n });\n response.callbacks.forEach(callback => {\n callback();\n });\n apiRef.current.forceUpdate();\n }, [apiRef]);\n const statePersistenceApi = {\n exportState,\n restoreState\n };\n useGridApiMethod(apiRef, statePersistenceApi, 'public');\n};","export const GRID_DEFAULT_LOCALE_TEXT = {\n // Root\n noRowsLabel: 'No rows',\n noResultsOverlayLabel: 'No results found.',\n // Density selector toolbar button text\n toolbarDensity: 'Density',\n toolbarDensityLabel: 'Density',\n toolbarDensityCompact: 'Compact',\n toolbarDensityStandard: 'Standard',\n toolbarDensityComfortable: 'Comfortable',\n // Columns selector toolbar button text\n toolbarColumns: 'Columns',\n toolbarColumnsLabel: 'Select columns',\n // Filters toolbar button text\n toolbarFilters: 'Filters',\n toolbarFiltersLabel: 'Show filters',\n toolbarFiltersTooltipHide: 'Hide filters',\n toolbarFiltersTooltipShow: 'Show filters',\n toolbarFiltersTooltipActive: count => count !== 1 ? `${count} active filters` : `${count} active filter`,\n // Quick filter toolbar field\n toolbarQuickFilterPlaceholder: 'Search…',\n toolbarQuickFilterLabel: 'Search',\n toolbarQuickFilterDeleteIconLabel: 'Clear',\n // Export selector toolbar button text\n toolbarExport: 'Export',\n toolbarExportLabel: 'Export',\n toolbarExportCSV: 'Download as CSV',\n toolbarExportPrint: 'Print',\n toolbarExportExcel: 'Download as Excel',\n // Columns management text\n columnsManagementSearchTitle: 'Search',\n columnsManagementNoColumns: 'No columns',\n columnsManagementShowHideAllText: 'Show/Hide All',\n columnsManagementReset: 'Reset',\n columnsManagementDeleteIconLabel: 'Clear',\n // Filter panel text\n filterPanelAddFilter: 'Add filter',\n filterPanelRemoveAll: 'Remove all',\n filterPanelDeleteIconLabel: 'Delete',\n filterPanelLogicOperator: 'Logic operator',\n filterPanelOperator: 'Operator',\n filterPanelOperatorAnd: 'And',\n filterPanelOperatorOr: 'Or',\n filterPanelColumns: 'Columns',\n filterPanelInputLabel: 'Value',\n filterPanelInputPlaceholder: 'Filter value',\n // Filter operators text\n filterOperatorContains: 'contains',\n filterOperatorDoesNotContain: 'does not contain',\n filterOperatorEquals: 'equals',\n filterOperatorDoesNotEqual: 'does not equal',\n filterOperatorStartsWith: 'starts with',\n filterOperatorEndsWith: 'ends with',\n filterOperatorIs: 'is',\n filterOperatorNot: 'is not',\n filterOperatorAfter: 'is after',\n filterOperatorOnOrAfter: 'is on or after',\n filterOperatorBefore: 'is before',\n filterOperatorOnOrBefore: 'is on or before',\n filterOperatorIsEmpty: 'is empty',\n filterOperatorIsNotEmpty: 'is not empty',\n filterOperatorIsAnyOf: 'is any of',\n 'filterOperator=': '=',\n 'filterOperator!=': '!=',\n 'filterOperator>': '>',\n 'filterOperator>=': '>=',\n 'filterOperator<': '<',\n 'filterOperator<=': '<=',\n // Header filter operators text\n headerFilterOperatorContains: 'Contains',\n headerFilterOperatorDoesNotContain: 'Does not contain',\n headerFilterOperatorEquals: 'Equals',\n headerFilterOperatorDoesNotEqual: 'Does not equal',\n headerFilterOperatorStartsWith: 'Starts with',\n headerFilterOperatorEndsWith: 'Ends with',\n headerFilterOperatorIs: 'Is',\n headerFilterOperatorNot: 'Is not',\n headerFilterOperatorAfter: 'Is after',\n headerFilterOperatorOnOrAfter: 'Is on or after',\n headerFilterOperatorBefore: 'Is before',\n headerFilterOperatorOnOrBefore: 'Is on or before',\n headerFilterOperatorIsEmpty: 'Is empty',\n headerFilterOperatorIsNotEmpty: 'Is not empty',\n headerFilterOperatorIsAnyOf: 'Is any of',\n 'headerFilterOperator=': 'Equals',\n 'headerFilterOperator!=': 'Not equals',\n 'headerFilterOperator>': 'Greater than',\n 'headerFilterOperator>=': 'Greater than or equal to',\n 'headerFilterOperator<': 'Less than',\n 'headerFilterOperator<=': 'Less than or equal to',\n // Filter values text\n filterValueAny: 'any',\n filterValueTrue: 'true',\n filterValueFalse: 'false',\n // Column menu text\n columnMenuLabel: 'Menu',\n columnMenuShowColumns: 'Show columns',\n columnMenuManageColumns: 'Manage columns',\n columnMenuFilter: 'Filter',\n columnMenuHideColumn: 'Hide column',\n columnMenuUnsort: 'Unsort',\n columnMenuSortAsc: 'Sort by ASC',\n columnMenuSortDesc: 'Sort by DESC',\n // Column header text\n columnHeaderFiltersTooltipActive: count => count !== 1 ? `${count} active filters` : `${count} active filter`,\n columnHeaderFiltersLabel: 'Show filters',\n columnHeaderSortIconLabel: 'Sort',\n // Rows selected footer text\n footerRowSelected: count => count !== 1 ? `${count.toLocaleString()} rows selected` : `${count.toLocaleString()} row selected`,\n // Total row amount footer text\n footerTotalRows: 'Total Rows:',\n // Total visible row amount footer text\n footerTotalVisibleRows: (visibleCount, totalCount) => `${visibleCount.toLocaleString()} of ${totalCount.toLocaleString()}`,\n // Checkbox selection text\n checkboxSelectionHeaderName: 'Checkbox selection',\n checkboxSelectionSelectAllRows: 'Select all rows',\n checkboxSelectionUnselectAllRows: 'Unselect all rows',\n checkboxSelectionSelectRow: 'Select row',\n checkboxSelectionUnselectRow: 'Unselect row',\n // Boolean cell text\n booleanCellTrueLabel: 'yes',\n booleanCellFalseLabel: 'no',\n // Actions cell more text\n actionsCellMore: 'more',\n // Column pinning text\n pinToLeft: 'Pin to left',\n pinToRight: 'Pin to right',\n unpin: 'Unpin',\n // Tree Data\n treeDataGroupingHeaderName: 'Group',\n treeDataExpand: 'see children',\n treeDataCollapse: 'hide children',\n // Grouping columns\n groupingColumnHeaderName: 'Group',\n groupColumn: name => `Group by ${name}`,\n unGroupColumn: name => `Stop grouping by ${name}`,\n // Master/detail\n detailPanelToggle: 'Detail panel toggle',\n expandDetailPanel: 'Expand',\n collapseDetailPanel: 'Collapse',\n // Used core components translation keys\n MuiTablePagination: {},\n // Row reordering text\n rowReorderingHeaderName: 'Row reordering',\n // Aggregation\n aggregationMenuItemHeader: 'Aggregation',\n aggregationFunctionLabelSum: 'sum',\n aggregationFunctionLabelAvg: 'avg',\n aggregationFunctionLabelMin: 'min',\n aggregationFunctionLabelMax: 'max',\n aggregationFunctionLabelSize: 'size'\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"field\", \"type\", \"align\", \"width\", \"height\", \"empty\", \"style\", \"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Skeleton from '@mui/material/Skeleton';\nimport { unstable_composeClasses as composeClasses, unstable_capitalize as capitalize } from '@mui/utils';\nimport { fastMemo } from '@mui/x-internals/fastMemo';\nimport { createRandomNumberGenerator } from \"../../utils/utils.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CIRCULAR_CONTENT_SIZE = '1.3em';\nconst CONTENT_HEIGHT = '1.2em';\nconst DEFAULT_CONTENT_WIDTH_RANGE = [40, 80];\nconst CONTENT_WIDTH_RANGE_BY_TYPE = {\n number: [40, 60],\n string: [40, 80],\n date: [40, 60],\n dateTime: [60, 80],\n singleSelect: [40, 80]\n};\nconst useUtilityClasses = ownerState => {\n const {\n align,\n classes,\n empty\n } = ownerState;\n const slots = {\n root: ['cell', 'cellSkeleton', `cell--text${align ? capitalize(align) : 'Left'}`, empty && 'cellEmpty']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst randomNumberGenerator = createRandomNumberGenerator(12345);\nfunction GridSkeletonCell(props) {\n const {\n field,\n type,\n align,\n width,\n height,\n empty = false,\n style,\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes,\n align,\n empty\n };\n const classes = useUtilityClasses(ownerState);\n\n // Memo prevents the non-circular skeleton widths changing to random widths on every render\n const skeletonProps = React.useMemo(() => {\n const isCircularContent = type === 'boolean' || type === 'actions';\n if (isCircularContent) {\n return {\n variant: 'circular',\n width: CIRCULAR_CONTENT_SIZE,\n height: CIRCULAR_CONTENT_SIZE\n };\n }\n\n // The width of the skeleton is a random number between the min and max values\n // The min and max values are determined by the type of the column\n const [min, max] = type ? CONTENT_WIDTH_RANGE_BY_TYPE[type] ?? DEFAULT_CONTENT_WIDTH_RANGE : DEFAULT_CONTENT_WIDTH_RANGE;\n return {\n variant: 'text',\n width: `${Math.round(randomNumberGenerator(min, max))}%`,\n height: CONTENT_HEIGHT\n };\n }, [type]);\n return /*#__PURE__*/_jsx(\"div\", _extends({\n \"data-field\": field,\n className: clsx(classes.root, className),\n style: _extends({\n height,\n maxWidth: width,\n minWidth: width\n }, style)\n }, other, {\n children: !empty && /*#__PURE__*/_jsx(Skeleton, _extends({}, skeletonProps))\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridSkeletonCell.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n align: PropTypes.string,\n /**\n * If `true`, the cell will not display the skeleton but still reserve the cell space.\n * @default false\n */\n empty: PropTypes.bool,\n field: PropTypes.string,\n height: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),\n type: PropTypes.oneOf(['actions', 'boolean', 'custom', 'date', 'dateTime', 'number', 'singleSelect', 'string']),\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nconst Memoized = fastMemo(GridSkeletonCell);\nexport { Memoized as GridSkeletonCell };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from '@mui/system';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['iconButtonContainer']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridIconButtonContainerRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'IconButtonContainer',\n overridesResolver: (props, styles) => styles.iconButtonContainer\n})(() => ({\n display: 'flex',\n visibility: 'hidden',\n width: 0\n}));\nexport const GridIconButtonContainer = forwardRef(function GridIconButtonContainer(props, ref) {\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rootProps = useGridRootProps();\n const classes = useUtilityClasses(rootProps);\n return /*#__PURE__*/_jsx(GridIconButtonContainerRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: rootProps\n }, other, {\n ref: ref\n }));\n});","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"direction\", \"index\", \"sortingOrder\", \"disabled\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { GridIconButtonContainer } from \"./GridIconButtonContainer.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n icon: ['sortIcon']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nfunction getIcon(icons, direction, className, sortingOrder) {\n let Icon;\n const iconProps = {};\n if (direction === 'asc') {\n Icon = icons.columnSortedAscendingIcon;\n } else if (direction === 'desc') {\n Icon = icons.columnSortedDescendingIcon;\n } else {\n Icon = icons.columnUnsortedIcon;\n iconProps.sortingOrder = sortingOrder;\n }\n return Icon ? /*#__PURE__*/_jsx(Icon, _extends({\n fontSize: \"small\",\n className: className\n }, iconProps)) : null;\n}\nfunction GridColumnHeaderSortIconRaw(props) {\n const {\n direction,\n index,\n sortingOrder,\n disabled\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const ownerState = _extends({}, props, {\n classes: rootProps.classes\n });\n const classes = useUtilityClasses(ownerState);\n const iconElement = getIcon(rootProps.slots, direction, classes.icon, sortingOrder);\n if (!iconElement) {\n return null;\n }\n const iconButton = /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({\n tabIndex: -1,\n \"aria-label\": apiRef.current.getLocaleText('columnHeaderSortIconLabel'),\n title: apiRef.current.getLocaleText('columnHeaderSortIconLabel'),\n size: \"small\",\n disabled: disabled\n }, rootProps.slotProps?.baseIconButton, other, {\n children: iconElement\n }));\n return /*#__PURE__*/_jsxs(GridIconButtonContainer, {\n children: [index != null && /*#__PURE__*/_jsx(rootProps.slots.baseBadge, {\n badgeContent: index,\n color: \"default\",\n overlap: \"circular\",\n children: iconButton\n }), index == null && iconButton]\n });\n}\nconst GridColumnHeaderSortIcon = /*#__PURE__*/React.memo(GridColumnHeaderSortIconRaw);\nprocess.env.NODE_ENV !== \"production\" ? GridColumnHeaderSortIconRaw.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n direction: PropTypes.oneOf(['asc', 'desc']),\n disabled: PropTypes.bool,\n field: PropTypes.string.isRequired,\n index: PropTypes.number,\n sortingOrder: PropTypes.arrayOf(PropTypes.oneOf(['asc', 'desc'])).isRequired\n} : void 0;\nexport { GridColumnHeaderSortIcon };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"selectedRowCount\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from '@mui/system';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridApiContext } from \"../hooks/utils/useGridApiContext.js\";\nimport { getDataGridUtilityClass } from \"../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['selectedRowCount']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridSelectedRowCountRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'SelectedRowCount',\n overridesResolver: (props, styles) => styles.selectedRowCount\n})(({\n theme\n}) => ({\n alignItems: 'center',\n display: 'flex',\n margin: theme.spacing(0, 2),\n visibility: 'hidden',\n width: 0,\n height: 0,\n [theme.breakpoints.up('sm')]: {\n visibility: 'visible',\n width: 'auto',\n height: 'auto'\n }\n}));\nconst GridSelectedRowCount = forwardRef(function GridSelectedRowCount(props, ref) {\n const {\n className,\n selectedRowCount\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridApiContext();\n const ownerState = useGridRootProps();\n const classes = useUtilityClasses(ownerState);\n const rowSelectedText = apiRef.current.getLocaleText('footerRowSelected')(selectedRowCount);\n return /*#__PURE__*/_jsx(GridSelectedRowCountRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n ref: ref,\n children: rowSelectedText\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridSelectedRowCount.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n selectedRowCount: PropTypes.number.isRequired,\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { GridSelectedRowCount };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from '@mui/system';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['footerContainer', 'withBorderColor']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridFooterContainerRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'FooterContainer',\n overridesResolver: (props, styles) => styles.footerContainer\n})({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n minHeight: 52,\n borderTop: '1px solid'\n});\nconst GridFooterContainer = forwardRef(function GridFooterContainer(props, ref) {\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rootProps = useGridRootProps();\n const classes = useUtilityClasses(rootProps);\n return /*#__PURE__*/_jsx(GridFooterContainerRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: rootProps\n }, other, {\n ref: ref\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridFooterContainer.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { GridFooterContainer };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridSelector } from \"../hooks/utils/useGridSelector.js\";\nimport { gridTopLevelRowCountSelector } from \"../hooks/features/rows/gridRowsSelector.js\";\nimport { selectedGridRowsCountSelector } from \"../hooks/features/rowSelection/gridRowSelectionSelector.js\";\nimport { gridFilteredTopLevelRowCountSelector } from \"../hooks/features/filter/gridFilterSelector.js\";\nimport { useGridApiContext } from \"../hooks/utils/useGridApiContext.js\";\nimport { GridSelectedRowCount } from \"./GridSelectedRowCount.js\";\nimport { GridFooterContainer } from \"./containers/GridFooterContainer.js\";\nimport { useGridRootProps } from \"../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst GridFooter = forwardRef(function GridFooter(props, ref) {\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const totalTopLevelRowCount = useGridSelector(apiRef, gridTopLevelRowCountSelector);\n const selectedRowCount = useGridSelector(apiRef, selectedGridRowsCountSelector);\n const visibleTopLevelRowCount = useGridSelector(apiRef, gridFilteredTopLevelRowCountSelector);\n const selectedRowCountElement = !rootProps.hideFooterSelectedRowCount && selectedRowCount > 0 ? /*#__PURE__*/_jsx(GridSelectedRowCount, {\n selectedRowCount: selectedRowCount\n }) : /*#__PURE__*/_jsx(\"div\", {});\n const rowCountElement = !rootProps.hideFooterRowCount && !rootProps.pagination ? /*#__PURE__*/_jsx(rootProps.slots.footerRowCount, _extends({}, rootProps.slotProps?.footerRowCount, {\n rowCount: totalTopLevelRowCount,\n visibleRowCount: visibleTopLevelRowCount\n })) : null;\n const paginationElement = rootProps.pagination && !rootProps.hideFooterPagination && rootProps.slots.pagination && /*#__PURE__*/_jsx(rootProps.slots.pagination, _extends({}, rootProps.slotProps?.pagination));\n return /*#__PURE__*/_jsxs(GridFooterContainer, _extends({}, props, {\n ref: ref,\n children: [selectedRowCountElement, rowCountElement, paginationElement]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridFooter.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { GridFooter };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"rowCount\", \"visibleRowCount\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from '@mui/system';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridApiContext } from \"../hooks/utils/useGridApiContext.js\";\nimport { getDataGridUtilityClass } from \"../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../hooks/utils/useGridRootProps.js\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['rowCount']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridRowCountRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'RowCount',\n overridesResolver: (props, styles) => styles.rowCount\n})(({\n theme\n}) => ({\n alignItems: 'center',\n display: 'flex',\n margin: theme.spacing(0, 2)\n}));\nconst GridRowCount = forwardRef(function GridRowCount(props, ref) {\n const {\n className,\n rowCount,\n visibleRowCount\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridApiContext();\n const ownerState = useGridRootProps();\n const classes = useUtilityClasses(ownerState);\n if (rowCount === 0) {\n return null;\n }\n const text = visibleRowCount < rowCount ? apiRef.current.getLocaleText('footerTotalVisibleRows')(visibleRowCount, rowCount) : rowCount.toLocaleString();\n return /*#__PURE__*/_jsxs(GridRowCountRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n ref: ref,\n children: [apiRef.current.getLocaleText('footerTotalRows'), \" \", text]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridRowCount.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n rowCount: PropTypes.number.isRequired,\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n visibleRowCount: PropTypes.number.isRequired\n} : void 0;\nexport { GridRowCount };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from '@mui/system';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['overlay']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridOverlayRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'Overlay',\n overridesResolver: (_, styles) => styles.overlay\n})({\n width: '100%',\n height: '100%',\n display: 'flex',\n alignSelf: 'center',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'var(--unstable_DataGrid-overlayBackground)'\n});\nconst GridOverlay = forwardRef(function GridOverlay(props, ref) {\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rootProps = useGridRootProps();\n const classes = useUtilityClasses(rootProps);\n return /*#__PURE__*/_jsx(GridOverlayRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: rootProps\n }, other, {\n ref: ref\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridOverlay.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { GridOverlay };","import { GridPinnedColumnPosition } from \"../../hooks/features/columns/index.js\";\nexport const getPinnedCellOffset = (pinnedPosition, computedWidth, columnIndex, columnPositions, dimensions) => {\n const scrollbarWidth = dimensions.hasScrollY ? dimensions.scrollbarSize : 0;\n let pinnedOffset;\n switch (pinnedPosition) {\n case GridPinnedColumnPosition.LEFT:\n pinnedOffset = columnPositions[columnIndex];\n break;\n case GridPinnedColumnPosition.RIGHT:\n pinnedOffset = dimensions.columnsTotalWidth - columnPositions[columnIndex] - computedWidth + scrollbarWidth;\n break;\n default:\n pinnedOffset = 0;\n break;\n }\n return pinnedOffset;\n};","import { GridPinnedColumnPosition } from \"../hooks/features/columns/gridColumnsInterfaces.js\";\nexport const shouldCellShowRightBorder = (pinnedPosition, indexInSection, sectionLength, showCellVerticalBorderRootProp, gridHasFiller) => {\n const isSectionLastCell = indexInSection === sectionLength - 1;\n if (pinnedPosition === GridPinnedColumnPosition.LEFT && isSectionLastCell) {\n return true;\n }\n if (showCellVerticalBorderRootProp) {\n if (pinnedPosition === GridPinnedColumnPosition.LEFT) {\n return true;\n }\n if (pinnedPosition === GridPinnedColumnPosition.RIGHT) {\n return !isSectionLastCell;\n }\n // pinnedPosition === undefined, middle section\n return !isSectionLastCell || gridHasFiller;\n }\n return false;\n};\nexport const shouldCellShowLeftBorder = (pinnedPosition, indexInSection) => {\n return pinnedPosition === GridPinnedColumnPosition.RIGHT && indexInSection === 0;\n};","import * as React from 'react';\nimport clsx from 'clsx';\nimport { gridClasses } from \"../constants/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = {\n root: gridClasses.scrollbarFiller,\n header: gridClasses['scrollbarFiller--header'],\n borderTop: gridClasses['scrollbarFiller--borderTop'],\n borderBottom: gridClasses['scrollbarFiller--borderBottom'],\n pinnedRight: gridClasses['scrollbarFiller--pinnedRight']\n};\nfunction GridScrollbarFillerCell({\n header,\n borderTop = true,\n borderBottom,\n pinnedRight\n}) {\n return /*#__PURE__*/_jsx(\"div\", {\n role: \"presentation\",\n className: clsx(classes.root, header && classes.header, borderTop && classes.borderTop, borderBottom && classes.borderBottom, pinnedRight && classes.pinnedRight)\n });\n}\nexport { GridScrollbarFillerCell };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/system';\nimport useForkRef from '@mui/utils/useForkRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridApiContext } from \"../hooks/utils/useGridApiContext.js\";\nimport { useGridRootProps } from \"../hooks/utils/useGridRootProps.js\";\nimport { GridPinnedColumnPosition, gridColumnPositionsSelector, gridColumnsTotalWidthSelector, gridDimensionsSelector, gridVisibleColumnDefinitionsSelector, gridVisiblePinnedColumnDefinitionsSelector, useGridApiEventHandler, useGridSelector } from \"../hooks/index.js\";\nimport { getDataGridUtilityClass, gridClasses } from \"../constants/gridClasses.js\";\nimport { getPinnedCellOffset } from \"../internals/utils/getPinnedCellOffset.js\";\nimport { shouldCellShowLeftBorder, shouldCellShowRightBorder } from \"../utils/cellBorderUtils.js\";\nimport { escapeOperandAttributeSelector } from \"../utils/domUtils.js\";\nimport { GridScrollbarFillerCell } from \"./GridScrollbarFillerCell.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst SkeletonOverlay = styled('div', {\n name: 'MuiDataGrid',\n slot: 'SkeletonLoadingOverlay',\n overridesResolver: (props, styles) => styles.skeletonLoadingOverlay\n})({\n minWidth: '100%',\n width: 'max-content',\n // prevents overflow: clip; cutting off the x axis\n height: '100%',\n overflow: 'clip' // y axis is hidden while the x axis is allowed to overflow\n});\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['skeletonLoadingOverlay']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst getColIndex = el => parseInt(el.getAttribute('data-colindex'), 10);\nconst GridSkeletonLoadingOverlay = forwardRef(function GridSkeletonLoadingOverlay(props, forwardedRef) {\n const rootProps = useGridRootProps();\n const {\n slots\n } = rootProps;\n const classes = useUtilityClasses({\n classes: rootProps.classes\n });\n const ref = React.useRef(null);\n const handleRef = useForkRef(ref, forwardedRef);\n const apiRef = useGridApiContext();\n const dimensions = useGridSelector(apiRef, gridDimensionsSelector);\n const viewportHeight = dimensions?.viewportInnerSize.height ?? 0;\n const skeletonRowsCount = Math.ceil(viewportHeight / dimensions.rowHeight);\n const totalWidth = useGridSelector(apiRef, gridColumnsTotalWidthSelector);\n const positions = useGridSelector(apiRef, gridColumnPositionsSelector);\n const inViewportCount = React.useMemo(() => positions.filter(value => value <= totalWidth).length, [totalWidth, positions]);\n const allVisibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);\n const columns = React.useMemo(() => allVisibleColumns.slice(0, inViewportCount), [allVisibleColumns, inViewportCount]);\n const pinnedColumns = useGridSelector(apiRef, gridVisiblePinnedColumnDefinitionsSelector);\n const getPinnedStyle = React.useCallback((computedWidth, index, position) => {\n const pinnedOffset = getPinnedCellOffset(position, computedWidth, index, positions, dimensions);\n return {\n [position]: pinnedOffset\n };\n }, [dimensions, positions]);\n const getPinnedPosition = React.useCallback(field => {\n if (pinnedColumns.left.findIndex(col => col.field === field) !== -1) {\n return GridPinnedColumnPosition.LEFT;\n }\n if (pinnedColumns.right.findIndex(col => col.field === field) !== -1) {\n return GridPinnedColumnPosition.RIGHT;\n }\n return undefined;\n }, [pinnedColumns.left, pinnedColumns.right]);\n const children = React.useMemo(() => {\n const array = [];\n for (let i = 0; i < skeletonRowsCount; i += 1) {\n const rowCells = [];\n for (let colIndex = 0; colIndex < columns.length; colIndex += 1) {\n const column = columns[colIndex];\n const pinnedPosition = getPinnedPosition(column.field);\n const isPinnedLeft = pinnedPosition === GridPinnedColumnPosition.LEFT;\n const isPinnedRight = pinnedPosition === GridPinnedColumnPosition.RIGHT;\n const sectionLength = pinnedPosition ? pinnedColumns[pinnedPosition].length // pinned section\n : columns.length - pinnedColumns.left.length - pinnedColumns.right.length; // middle section\n const sectionIndex = pinnedPosition ? pinnedColumns[pinnedPosition].findIndex(col => col.field === column.field) // pinned section\n : colIndex - pinnedColumns.left.length; // middle section\n const pinnedStyle = pinnedPosition && getPinnedStyle(column.computedWidth, colIndex, pinnedPosition);\n const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;\n const showRightBorder = shouldCellShowRightBorder(pinnedPosition, sectionIndex, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);\n const showLeftBorder = shouldCellShowLeftBorder(pinnedPosition, sectionIndex);\n const isLastColumn = colIndex === columns.length - 1;\n const isFirstPinnedRight = isPinnedRight && sectionIndex === 0;\n const hasFillerBefore = isFirstPinnedRight && gridHasFiller;\n const hasFillerAfter = isLastColumn && !isFirstPinnedRight && gridHasFiller;\n const expandedWidth = dimensions.viewportOuterSize.width - dimensions.columnsTotalWidth;\n const emptyCellWidth = Math.max(0, expandedWidth);\n const emptyCell = /*#__PURE__*/_jsx(slots.skeletonCell, {\n width: emptyCellWidth,\n empty: true\n }, `skeleton-filler-column-${i}`);\n const scrollbarWidth = dimensions.hasScrollY ? dimensions.scrollbarSize : 0;\n const hasScrollbarFiller = isLastColumn && scrollbarWidth !== 0;\n if (hasFillerBefore) {\n rowCells.push(emptyCell);\n }\n rowCells.push(/*#__PURE__*/_jsx(slots.skeletonCell, {\n field: column.field,\n type: column.type,\n align: column.align,\n width: \"var(--width)\",\n height: dimensions.rowHeight,\n \"data-colindex\": colIndex,\n className: clsx(isPinnedLeft && gridClasses['cell--pinnedLeft'], isPinnedRight && gridClasses['cell--pinnedRight'], showRightBorder && gridClasses['cell--withRightBorder'], showLeftBorder && gridClasses['cell--withLeftBorder']),\n style: _extends({\n '--width': `${column.computedWidth}px`\n }, pinnedStyle)\n }, `skeleton-column-${i}-${column.field}`));\n if (hasFillerAfter) {\n rowCells.push(emptyCell);\n }\n if (hasScrollbarFiller) {\n rowCells.push(/*#__PURE__*/_jsx(GridScrollbarFillerCell, {\n pinnedRight: pinnedColumns.right.length > 0\n }, `skeleton-scrollbar-filler-${i}`));\n }\n }\n array.push(/*#__PURE__*/_jsx(\"div\", {\n className: clsx(gridClasses.row, gridClasses.rowSkeleton, i === 0 && gridClasses['row--firstVisible']),\n children: rowCells\n }, `skeleton-row-${i}`));\n }\n return array;\n }, [slots, columns, pinnedColumns, skeletonRowsCount, rootProps.showCellVerticalBorder, dimensions.columnsTotalWidth, dimensions.viewportOuterSize.width, dimensions.rowHeight, dimensions.hasScrollY, dimensions.scrollbarSize, getPinnedPosition, getPinnedStyle]);\n\n // Sync the column resize of the overlay columns with the grid\n const handleColumnResize = params => {\n const {\n colDef,\n width\n } = params;\n const cells = ref.current?.querySelectorAll(`[data-field=\"${escapeOperandAttributeSelector(colDef.field)}\"]`);\n if (!cells) {\n throw new Error('MUI X: Expected skeleton cells to be defined with `data-field` attribute.');\n }\n const resizedColIndex = columns.findIndex(col => col.field === colDef.field);\n const pinnedPosition = getPinnedPosition(colDef.field);\n const isPinnedLeft = pinnedPosition === GridPinnedColumnPosition.LEFT;\n const isPinnedRight = pinnedPosition === GridPinnedColumnPosition.RIGHT;\n const currentWidth = getComputedStyle(cells[0]).getPropertyValue('--width');\n const delta = parseInt(currentWidth, 10) - width;\n if (cells) {\n cells.forEach(element => {\n element.style.setProperty('--width', `${width}px`);\n });\n }\n if (isPinnedLeft) {\n const pinnedCells = ref.current?.querySelectorAll(`.${gridClasses['cell--pinnedLeft']}`);\n pinnedCells?.forEach(element => {\n const colIndex = getColIndex(element);\n if (colIndex > resizedColIndex) {\n element.style.left = `${parseInt(getComputedStyle(element).left, 10) - delta}px`;\n }\n });\n }\n if (isPinnedRight) {\n const pinnedCells = ref.current?.querySelectorAll(`.${gridClasses['cell--pinnedRight']}`);\n pinnedCells?.forEach(element => {\n const colIndex = getColIndex(element);\n if (colIndex < resizedColIndex) {\n element.style.right = `${parseInt(getComputedStyle(element).right, 10) + delta}px`;\n }\n });\n }\n };\n useGridApiEventHandler(apiRef, 'columnResize', handleColumnResize);\n return /*#__PURE__*/_jsx(SkeletonOverlay, _extends({\n className: classes.root\n }, props, {\n ref: handleRef,\n children: children\n }));\n});\nexport { GridSkeletonLoadingOverlay };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"variant\", \"noRowsVariant\", \"style\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { GridOverlay } from \"./containers/GridOverlay.js\";\nimport { GridSkeletonLoadingOverlay } from \"./GridSkeletonLoadingOverlay.js\";\nimport { useGridApiContext } from \"../hooks/utils/useGridApiContext.js\";\nimport { gridRowCountSelector, useGridSelector } from \"../hooks/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst LOADING_VARIANTS = {\n 'circular-progress': {\n component: CircularProgress,\n style: {}\n },\n 'linear-progress': {\n component: LinearProgress,\n style: {\n display: 'block'\n }\n },\n skeleton: {\n component: GridSkeletonLoadingOverlay,\n style: {\n display: 'block'\n }\n }\n};\nconst GridLoadingOverlay = forwardRef(function GridLoadingOverlay(props, ref) {\n const {\n variant = 'circular-progress',\n noRowsVariant = 'circular-progress',\n style\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridApiContext();\n const rowsCount = useGridSelector(apiRef, gridRowCountSelector);\n const activeVariant = LOADING_VARIANTS[rowsCount === 0 ? noRowsVariant : variant];\n return /*#__PURE__*/_jsx(GridOverlay, _extends({\n style: _extends({}, activeVariant.style, style)\n }, other, {\n ref: ref,\n children: /*#__PURE__*/_jsx(activeVariant.component, {})\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridLoadingOverlay.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The variant of the overlay when no rows are displayed.\n * @default 'circular-progress'\n */\n noRowsVariant: PropTypes.oneOf(['circular-progress', 'linear-progress', 'skeleton']),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant of the overlay.\n * @default 'circular-progress'\n */\n variant: PropTypes.oneOf(['circular-progress', 'linear-progress', 'skeleton'])\n} : void 0;\nexport { GridLoadingOverlay };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridApiContext } from \"../hooks/utils/useGridApiContext.js\";\nimport { GridOverlay } from \"./containers/GridOverlay.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst GridNoRowsOverlay = forwardRef(function GridNoRowsOverlay(props, ref) {\n const apiRef = useGridApiContext();\n const noRowsLabel = apiRef.current.getLocaleText('noRowsLabel');\n return /*#__PURE__*/_jsx(GridOverlay, _extends({}, props, {\n ref: ref,\n children: noRowsLabel\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridNoRowsOverlay.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { GridNoRowsOverlay };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { styled } from '@mui/material/styles';\nimport PropTypes from 'prop-types';\nimport TablePagination, { tablePaginationClasses } from '@mui/material/TablePagination';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridSelector } from \"../hooks/utils/useGridSelector.js\";\nimport { useGridApiContext } from \"../hooks/utils/useGridApiContext.js\";\nimport { useGridRootProps } from \"../hooks/utils/useGridRootProps.js\";\nimport { gridPaginationModelSelector, gridPaginationRowCountSelector, gridPageCountSelector } from \"../hooks/features/pagination/gridPaginationSelector.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst GridPaginationRoot = styled(TablePagination)(({\n theme\n}) => ({\n maxHeight: 'calc(100% + 1px)',\n // border width\n flexGrow: 1,\n [`& .${tablePaginationClasses.selectLabel}`]: {\n display: 'none',\n [theme.breakpoints.up('sm')]: {\n display: 'block'\n }\n },\n [`& .${tablePaginationClasses.input}`]: {\n display: 'none',\n [theme.breakpoints.up('sm')]: {\n display: 'inline-flex'\n }\n }\n}));\nconst wrapLabelDisplayedRows = (labelDisplayedRows, estimated) => {\n return ({\n from,\n to,\n count,\n page\n }) => labelDisplayedRows({\n from,\n to,\n count,\n page,\n estimated\n });\n};\nconst defaultLabelDisplayedRows = ({\n from,\n to,\n count,\n estimated\n}) => {\n if (!estimated) {\n return `${from}–${to} of ${count !== -1 ? count : `more than ${to}`}`;\n }\n return `${from}–${to} of ${count !== -1 ? count : `more than ${estimated > to ? estimated : to}`}`;\n};\n\n// A mutable version of a readonly array.\n\nconst GridPagination = forwardRef(function GridPagination(props, ref) {\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const paginationModel = useGridSelector(apiRef, gridPaginationModelSelector);\n const rowCount = useGridSelector(apiRef, gridPaginationRowCountSelector);\n const pageCount = useGridSelector(apiRef, gridPageCountSelector);\n const {\n paginationMode,\n loading,\n estimatedRowCount\n } = rootProps;\n const computedProps = React.useMemo(() => {\n if (rowCount === -1 && paginationMode === 'server' && loading) {\n return {\n backIconButtonProps: {\n disabled: true\n },\n nextIconButtonProps: {\n disabled: true\n }\n };\n }\n return {};\n }, [loading, paginationMode, rowCount]);\n const lastPage = React.useMemo(() => Math.max(0, pageCount - 1), [pageCount]);\n const computedPage = React.useMemo(() => {\n if (rowCount === -1) {\n return paginationModel.page;\n }\n return paginationModel.page <= lastPage ? paginationModel.page : lastPage;\n }, [lastPage, paginationModel.page, rowCount]);\n const handlePageSizeChange = React.useCallback(event => {\n const pageSize = Number(event.target.value);\n apiRef.current.setPageSize(pageSize);\n }, [apiRef]);\n const handlePageChange = React.useCallback((_, page) => {\n apiRef.current.setPage(page);\n }, [apiRef]);\n const isPageSizeIncludedInPageSizeOptions = pageSize => {\n for (let i = 0; i < rootProps.pageSizeOptions.length; i += 1) {\n const option = rootProps.pageSizeOptions[i];\n if (typeof option === 'number') {\n if (option === pageSize) {\n return true;\n }\n } else if (option.value === pageSize) {\n return true;\n }\n }\n return false;\n };\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const warnedOnceMissingInPageSizeOptions = React.useRef(false);\n const pageSize = rootProps.paginationModel?.pageSize ?? paginationModel.pageSize;\n if (!warnedOnceMissingInPageSizeOptions.current && !rootProps.autoPageSize && !isPageSizeIncludedInPageSizeOptions(pageSize)) {\n console.warn([`MUI X: The page size \\`${paginationModel.pageSize}\\` is not present in the \\`pageSizeOptions\\`.`, `Add it to show the pagination select.`].join('\\n'));\n warnedOnceMissingInPageSizeOptions.current = true;\n }\n }\n const pageSizeOptions = isPageSizeIncludedInPageSizeOptions(paginationModel.pageSize) ? rootProps.pageSizeOptions : [];\n const locales = apiRef.current.getLocaleText('MuiTablePagination');\n const wrappedLabelDisplayedRows = wrapLabelDisplayedRows(locales.labelDisplayedRows || defaultLabelDisplayedRows, estimatedRowCount);\n return /*#__PURE__*/_jsx(GridPaginationRoot, _extends({\n component: \"div\",\n count: rowCount,\n page: computedPage\n // TODO: Remove the cast once the type is fixed in Material UI and that the min Material UI version\n // for x-data-grid is past the fix.\n // Note that Material UI will not mutate the array, so this is safe.\n ,\n rowsPerPageOptions: pageSizeOptions,\n rowsPerPage: paginationModel.pageSize,\n onPageChange: handlePageChange,\n onRowsPerPageChange: handlePageSizeChange\n }, computedProps, locales, {\n labelDisplayedRows: wrappedLabelDisplayedRows\n }, props, {\n ref: ref\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridPagination.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n component: PropTypes.elementType\n} : void 0;\nexport { GridPagination };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled } from '@mui/system';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['panelContent']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridPanelContentRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'PanelContent',\n overridesResolver: (props, styles) => styles.panelContent\n})({\n display: 'flex',\n flexDirection: 'column',\n overflow: 'auto',\n flex: '1 1',\n maxHeight: 400\n});\nfunction GridPanelContent(props) {\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rootProps = useGridRootProps();\n const classes = useUtilityClasses(rootProps);\n return /*#__PURE__*/_jsx(GridPanelContentRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: rootProps\n }, other));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridPanelContent.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { GridPanelContent };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled } from '@mui/system';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['panelFooter']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridPanelFooterRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'PanelFooter',\n overridesResolver: (props, styles) => styles.panelFooter\n})(({\n theme\n}) => ({\n padding: theme.spacing(0.5),\n display: 'flex',\n justifyContent: 'space-between'\n}));\nfunction GridPanelFooter(props) {\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rootProps = useGridRootProps();\n const classes = useUtilityClasses(rootProps);\n return /*#__PURE__*/_jsx(GridPanelFooterRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: rootProps\n }, other));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridPanelFooter.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { GridPanelFooter };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"slotProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport FocusTrap from '@mui/material/Unstable_TrapFocus';\nimport { styled } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['panelWrapper']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridPanelWrapperRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'PanelWrapper',\n overridesResolver: (props, styles) => styles.panelWrapper\n})({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n '&:focus': {\n outline: 0\n }\n});\nconst isEnabled = () => true;\nconst GridPanelWrapper = forwardRef(function GridPanelWrapper(props, ref) {\n const {\n className,\n slotProps = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rootProps = useGridRootProps();\n const classes = useUtilityClasses(rootProps);\n return /*#__PURE__*/_jsx(FocusTrap, _extends({\n open: true,\n disableEnforceFocus: true,\n isEnabled: isEnabled\n }, slotProps.TrapFocus, {\n children: /*#__PURE__*/_jsx(GridPanelWrapperRoot, _extends({\n tabIndex: -1,\n className: clsx(classes.root, className),\n ownerState: rootProps\n }, other, {\n ref: ref\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridPanelWrapper.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n slotProps: PropTypes.object\n} : void 0;\nexport { GridPanelWrapper };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"item\", \"hasMultipleFilters\", \"deleteFilter\", \"applyFilterChanges\", \"showMultiFilterOperators\", \"disableMultiFilterOperator\", \"applyMultiFilterOperatorChanges\", \"focusElementRef\", \"logicOperators\", \"columnsSort\", \"filterColumns\", \"deleteIconProps\", \"logicOperatorInputProps\", \"operatorInputProps\", \"columnInputProps\", \"valueInputProps\", \"readOnly\", \"children\"],\n _excluded2 = [\"InputComponentProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_capitalize as capitalize } from '@mui/utils';\nimport { styled } from '@mui/material/styles';\nimport clsx from 'clsx';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { gridFilterableColumnDefinitionsSelector, gridColumnLookupSelector } from \"../../../hooks/features/columns/gridColumnsSelector.js\";\nimport { gridFilterModelSelector } from \"../../../hooks/features/filter/gridFilterSelector.js\";\nimport { useGridSelector } from \"../../../hooks/utils/useGridSelector.js\";\nimport { GridLogicOperator } from \"../../../models/gridFilterItem.js\";\nimport { useGridApiContext } from \"../../../hooks/utils/useGridApiContext.js\";\nimport { useGridRootProps } from \"../../../hooks/utils/useGridRootProps.js\";\nimport { getDataGridUtilityClass } from \"../../../constants/gridClasses.js\";\nimport { getValueFromValueOptions, getValueOptions } from \"./filterPanelUtils.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['filterForm'],\n deleteIcon: ['filterFormDeleteIcon'],\n logicOperatorInput: ['filterFormLogicOperatorInput'],\n columnInput: ['filterFormColumnInput'],\n operatorInput: ['filterFormOperatorInput'],\n valueInput: ['filterFormValueInput']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridFilterFormRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'FilterForm',\n overridesResolver: (props, styles) => styles.filterForm\n})(({\n theme\n}) => ({\n display: 'flex',\n padding: theme.spacing(1)\n}));\nconst FilterFormDeleteIcon = styled('div', {\n name: 'MuiDataGrid',\n slot: 'FilterFormDeleteIcon',\n overridesResolver: (_, styles) => styles.filterFormDeleteIcon\n})(({\n theme\n}) => ({\n flexShrink: 0,\n justifyContent: 'flex-end',\n marginRight: theme.spacing(0.5),\n marginBottom: theme.spacing(0.2)\n}));\nconst FilterFormLogicOperatorInput = styled('div', {\n name: 'MuiDataGrid',\n slot: 'FilterFormLogicOperatorInput',\n overridesResolver: (_, styles) => styles.filterFormLogicOperatorInput\n})({\n minWidth: 55,\n marginRight: 5,\n justifyContent: 'end'\n});\nconst FilterFormColumnInput = styled('div', {\n name: 'MuiDataGrid',\n slot: 'FilterFormColumnInput',\n overridesResolver: (_, styles) => styles.filterFormColumnInput\n})({\n width: 150\n});\nconst FilterFormOperatorInput = styled('div', {\n name: 'MuiDataGrid',\n slot: 'FilterFormOperatorInput',\n overridesResolver: (_, styles) => styles.filterFormOperatorInput\n})({\n width: 150\n});\nconst FilterFormValueInput = styled('div', {\n name: 'MuiDataGrid',\n slot: 'FilterFormValueInput',\n overridesResolver: (_, styles) => styles.filterFormValueInput\n})({\n width: 190\n});\nconst getLogicOperatorLocaleKey = logicOperator => {\n switch (logicOperator) {\n case GridLogicOperator.And:\n return 'filterPanelOperatorAnd';\n case GridLogicOperator.Or:\n return 'filterPanelOperatorOr';\n default:\n throw new Error('MUI X: Invalid `logicOperator` property in the `GridFilterPanel`.');\n }\n};\nconst getColumnLabel = col => col.headerName || col.field;\nconst collator = new Intl.Collator();\nconst GridFilterForm = forwardRef(function GridFilterForm(props, ref) {\n const {\n item,\n hasMultipleFilters,\n deleteFilter,\n applyFilterChanges,\n showMultiFilterOperators,\n disableMultiFilterOperator,\n applyMultiFilterOperatorChanges,\n focusElementRef,\n logicOperators = [GridLogicOperator.And, GridLogicOperator.Or],\n columnsSort,\n filterColumns,\n deleteIconProps = {},\n logicOperatorInputProps = {},\n operatorInputProps = {},\n columnInputProps = {},\n valueInputProps = {},\n readOnly\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridApiContext();\n const columnLookup = useGridSelector(apiRef, gridColumnLookupSelector);\n const filterableColumns = useGridSelector(apiRef, gridFilterableColumnDefinitionsSelector);\n const filterModel = useGridSelector(apiRef, gridFilterModelSelector);\n const columnSelectId = useId();\n const columnSelectLabelId = useId();\n const operatorSelectId = useId();\n const operatorSelectLabelId = useId();\n const rootProps = useGridRootProps();\n const classes = useUtilityClasses(rootProps);\n const valueRef = React.useRef(null);\n const filterSelectorRef = React.useRef(null);\n const multiFilterOperator = filterModel.logicOperator ?? GridLogicOperator.And;\n const hasLogicOperatorColumn = hasMultipleFilters && logicOperators.length > 0;\n const baseFormControlProps = rootProps.slotProps?.baseFormControl || {};\n const baseSelectProps = rootProps.slotProps?.baseSelect || {};\n const isBaseSelectNative = baseSelectProps.native ?? false;\n const baseInputLabelProps = rootProps.slotProps?.baseInputLabel || {};\n const baseSelectOptionProps = rootProps.slotProps?.baseSelectOption || {};\n const {\n InputComponentProps\n } = valueInputProps,\n valueInputPropsOther = _objectWithoutPropertiesLoose(valueInputProps, _excluded2);\n const {\n filteredColumns,\n selectedField\n } = React.useMemo(() => {\n let itemField = item.field;\n\n // Yields a valid value if the current filter belongs to a column that is not filterable\n const selectedNonFilterableColumn = columnLookup[item.field].filterable === false ? columnLookup[item.field] : null;\n if (selectedNonFilterableColumn) {\n return {\n filteredColumns: [selectedNonFilterableColumn],\n selectedField: itemField\n };\n }\n if (filterColumns === undefined || typeof filterColumns !== 'function') {\n return {\n filteredColumns: filterableColumns,\n selectedField: itemField\n };\n }\n const filteredFields = filterColumns({\n field: item.field,\n columns: filterableColumns,\n currentFilters: filterModel?.items || []\n });\n return {\n filteredColumns: filterableColumns.filter(column => {\n const isFieldIncluded = filteredFields.includes(column.field);\n if (column.field === item.field && !isFieldIncluded) {\n itemField = undefined;\n }\n return isFieldIncluded;\n }),\n selectedField: itemField\n };\n }, [filterColumns, filterModel?.items, filterableColumns, item.field, columnLookup]);\n const sortedFilteredColumns = React.useMemo(() => {\n switch (columnsSort) {\n case 'asc':\n return filteredColumns.sort((a, b) => collator.compare(getColumnLabel(a), getColumnLabel(b)));\n case 'desc':\n return filteredColumns.sort((a, b) => -collator.compare(getColumnLabel(a), getColumnLabel(b)));\n default:\n return filteredColumns;\n }\n }, [filteredColumns, columnsSort]);\n const currentColumn = item.field ? apiRef.current.getColumn(item.field) : null;\n const currentOperator = React.useMemo(() => {\n if (!item.operator || !currentColumn) {\n return null;\n }\n return currentColumn.filterOperators?.find(operator => operator.value === item.operator);\n }, [item, currentColumn]);\n const changeColumn = React.useCallback(event => {\n const field = event.target.value;\n const column = apiRef.current.getColumn(field);\n if (column.field === currentColumn.field) {\n // column did not change\n return;\n }\n\n // try to keep the same operator when column change\n const newOperator = column.filterOperators.find(operator => operator.value === item.operator) || column.filterOperators[0];\n\n // Erase filter value if the input component or filtered column type is modified\n const eraseFilterValue = !newOperator.InputComponent || newOperator.InputComponent !== currentOperator?.InputComponent || column.type !== currentColumn.type;\n let filterValue = eraseFilterValue ? undefined : item.value;\n\n // Check filter value against the new valueOptions\n if (column.type === 'singleSelect' && filterValue !== undefined) {\n const colDef = column;\n const valueOptions = getValueOptions(colDef);\n if (Array.isArray(filterValue)) {\n filterValue = filterValue.filter(val => {\n return (\n // Only keep values that are in the new value options\n getValueFromValueOptions(val, valueOptions, colDef?.getOptionValue) !== undefined\n );\n });\n } else if (getValueFromValueOptions(item.value, valueOptions, colDef?.getOptionValue) === undefined) {\n // Reset the filter value if it is not in the new value options\n filterValue = undefined;\n }\n }\n applyFilterChanges(_extends({}, item, {\n field,\n operator: newOperator.value,\n value: filterValue\n }));\n }, [apiRef, applyFilterChanges, item, currentColumn, currentOperator]);\n const changeOperator = React.useCallback(event => {\n const operator = event.target.value;\n const newOperator = currentColumn?.filterOperators.find(op => op.value === operator);\n const eraseItemValue = !newOperator?.InputComponent || newOperator?.InputComponent !== currentOperator?.InputComponent;\n applyFilterChanges(_extends({}, item, {\n operator,\n value: eraseItemValue ? undefined : item.value\n }));\n }, [applyFilterChanges, item, currentColumn, currentOperator]);\n const changeLogicOperator = React.useCallback(event => {\n const logicOperator = event.target.value === GridLogicOperator.And.toString() ? GridLogicOperator.And : GridLogicOperator.Or;\n applyMultiFilterOperatorChanges(logicOperator);\n }, [applyMultiFilterOperatorChanges]);\n const handleDeleteFilter = () => {\n deleteFilter(item);\n };\n React.useImperativeHandle(focusElementRef, () => ({\n focus: () => {\n if (currentOperator?.InputComponent) {\n valueRef?.current?.focus();\n } else {\n filterSelectorRef.current.focus();\n }\n }\n }), [currentOperator]);\n return /*#__PURE__*/_jsxs(GridFilterFormRoot, _extends({\n className: classes.root,\n \"data-id\": item.id,\n ownerState: rootProps\n }, other, {\n ref: ref,\n children: [/*#__PURE__*/_jsx(FilterFormDeleteIcon, _extends({\n variant: \"standard\",\n as: rootProps.slots.baseFormControl\n }, baseFormControlProps, deleteIconProps, {\n className: clsx(classes.deleteIcon, baseFormControlProps.className, deleteIconProps.className),\n ownerState: rootProps,\n children: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({\n \"aria-label\": apiRef.current.getLocaleText('filterPanelDeleteIconLabel'),\n title: apiRef.current.getLocaleText('filterPanelDeleteIconLabel'),\n onClick: handleDeleteFilter,\n size: \"small\",\n disabled: readOnly\n }, rootProps.slotProps?.baseIconButton, {\n children: /*#__PURE__*/_jsx(rootProps.slots.filterPanelDeleteIcon, {\n fontSize: \"small\"\n })\n }))\n })), /*#__PURE__*/_jsx(FilterFormLogicOperatorInput, _extends({\n variant: \"standard\",\n as: rootProps.slots.baseFormControl\n }, baseFormControlProps, logicOperatorInputProps, {\n sx: [hasLogicOperatorColumn ? {\n display: 'flex'\n } : {\n display: 'none'\n }, showMultiFilterOperators ? {\n visibility: 'visible'\n } : {\n visibility: 'hidden'\n }, baseFormControlProps.sx, logicOperatorInputProps.sx],\n className: clsx(classes.logicOperatorInput, baseFormControlProps.className, logicOperatorInputProps.className),\n ownerState: rootProps,\n children: /*#__PURE__*/_jsx(rootProps.slots.baseSelect, _extends({\n inputProps: {\n 'aria-label': apiRef.current.getLocaleText('filterPanelLogicOperator')\n },\n value: multiFilterOperator ?? '',\n onChange: changeLogicOperator,\n disabled: !!disableMultiFilterOperator || logicOperators.length === 1,\n native: isBaseSelectNative\n }, rootProps.slotProps?.baseSelect, {\n children: logicOperators.map(logicOperator => /*#__PURE__*/_createElement(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {\n native: isBaseSelectNative,\n key: logicOperator.toString(),\n value: logicOperator.toString()\n }), apiRef.current.getLocaleText(getLogicOperatorLocaleKey(logicOperator))))\n }))\n })), /*#__PURE__*/_jsxs(FilterFormColumnInput, _extends({\n variant: \"standard\",\n as: rootProps.slots.baseFormControl\n }, baseFormControlProps, columnInputProps, {\n className: clsx(classes.columnInput, baseFormControlProps.className, columnInputProps.className),\n ownerState: rootProps,\n children: [/*#__PURE__*/_jsx(rootProps.slots.baseInputLabel, _extends({}, baseInputLabelProps, {\n htmlFor: columnSelectId,\n id: columnSelectLabelId,\n children: apiRef.current.getLocaleText('filterPanelColumns')\n })), /*#__PURE__*/_jsx(rootProps.slots.baseSelect, _extends({\n labelId: columnSelectLabelId,\n id: columnSelectId,\n label: apiRef.current.getLocaleText('filterPanelColumns'),\n value: selectedField ?? '',\n onChange: changeColumn,\n native: isBaseSelectNative,\n disabled: readOnly\n }, rootProps.slotProps?.baseSelect, {\n children: sortedFilteredColumns.map(col => /*#__PURE__*/_createElement(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {\n native: isBaseSelectNative,\n key: col.field,\n value: col.field\n }), getColumnLabel(col)))\n }))]\n })), /*#__PURE__*/_jsxs(FilterFormOperatorInput, _extends({\n variant: \"standard\",\n as: rootProps.slots.baseFormControl\n }, baseFormControlProps, operatorInputProps, {\n className: clsx(classes.operatorInput, baseFormControlProps.className, operatorInputProps.className),\n ownerState: rootProps,\n children: [/*#__PURE__*/_jsx(rootProps.slots.baseInputLabel, _extends({}, baseInputLabelProps, {\n htmlFor: operatorSelectId,\n id: operatorSelectLabelId,\n children: apiRef.current.getLocaleText('filterPanelOperator')\n })), /*#__PURE__*/_jsx(rootProps.slots.baseSelect, _extends({\n labelId: operatorSelectLabelId,\n label: apiRef.current.getLocaleText('filterPanelOperator'),\n id: operatorSelectId,\n value: item.operator,\n onChange: changeOperator,\n native: isBaseSelectNative,\n inputRef: filterSelectorRef,\n disabled: readOnly\n }, rootProps.slotProps?.baseSelect, {\n children: currentColumn?.filterOperators?.map(operator => /*#__PURE__*/_createElement(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {\n native: isBaseSelectNative,\n key: operator.value,\n value: operator.value\n }), operator.label || apiRef.current.getLocaleText(`filterOperator${capitalize(operator.value)}`)))\n }))]\n })), /*#__PURE__*/_jsx(FilterFormValueInput, _extends({\n variant: \"standard\",\n as: rootProps.slots.baseFormControl\n }, baseFormControlProps, valueInputPropsOther, {\n className: clsx(classes.valueInput, baseFormControlProps.className, valueInputPropsOther.className),\n ownerState: rootProps,\n children: currentOperator?.InputComponent ? /*#__PURE__*/_jsx(currentOperator.InputComponent, _extends({\n apiRef: apiRef,\n item: item,\n applyValue: applyFilterChanges,\n focusElementRef: valueRef,\n disabled: readOnly\n }, currentOperator.InputComponentProps, InputComponentProps), item.field) : null\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridFilterForm.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Callback called when the operator, column field or value is changed.\n * @param {GridFilterItem} item The updated [[GridFilterItem]].\n */\n applyFilterChanges: PropTypes.func.isRequired,\n /**\n * Callback called when the logic operator is changed.\n * @param {GridLogicOperator} operator The new logic operator.\n */\n applyMultiFilterOperatorChanges: PropTypes.func.isRequired,\n /**\n * @ignore - do not document.\n */\n children: PropTypes.node,\n /**\n * Props passed to the column input component.\n * @default {}\n */\n columnInputProps: PropTypes.any,\n /**\n * Changes how the options in the columns selector should be ordered.\n * If not specified, the order is derived from the `columns` prop.\n */\n columnsSort: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Callback called when the delete button is clicked.\n * @param {GridFilterItem} item The deleted [[GridFilterItem]].\n */\n deleteFilter: PropTypes.func.isRequired,\n /**\n * Props passed to the delete icon.\n * @default {}\n */\n deleteIconProps: PropTypes.any,\n /**\n * If `true`, disables the logic operator field but still renders it.\n */\n disableMultiFilterOperator: PropTypes.bool,\n /**\n * Allows to filter the columns displayed in the filter form.\n * @param {FilterColumnsArgs} args The columns of the grid and name of field.\n * @returns {GridColDef['field'][]} The filtered fields array.\n */\n filterColumns: PropTypes.func,\n /**\n * A ref allowing to set imperative focus.\n * It can be passed to the el\n */\n focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),\n /**\n * If `true`, the logic operator field is rendered.\n * The field will be invisible if `showMultiFilterOperators` is also `true`.\n */\n hasMultipleFilters: PropTypes.bool.isRequired,\n /**\n * The [[GridFilterItem]] representing this form.\n */\n item: PropTypes.shape({\n field: PropTypes.string.isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n operator: PropTypes.string.isRequired,\n value: PropTypes.any\n }).isRequired,\n /**\n * Props passed to the logic operator input component.\n * @default {}\n */\n logicOperatorInputProps: PropTypes.any,\n /**\n * Sets the available logic operators.\n * @default [GridLogicOperator.And, GridLogicOperator.Or]\n */\n logicOperators: PropTypes.arrayOf(PropTypes.oneOf(['and', 'or']).isRequired),\n /**\n * Props passed to the operator input component.\n * @default {}\n */\n operatorInputProps: PropTypes.any,\n /**\n * `true` if the filter is disabled/read only.\n * i.e. `colDef.fiterable = false` but passed in `filterModel`\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the logic operator field is visible.\n */\n showMultiFilterOperators: PropTypes.bool,\n /**\n * Props passed to the value input component.\n * @default {}\n */\n valueInputProps: PropTypes.any\n} : void 0;\n\n/**\n * Demos:\n * - [Filtering - overview](https://mui.com/x/react-data-grid/filtering/)\n *\n * API:\n * - [GridFilterForm API](https://mui.com/x/api/data-grid/grid-filter-form/)\n */\nexport { GridFilterForm };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"logicOperators\", \"columnsSort\", \"filterFormProps\", \"getColumnForNewFilter\", \"children\", \"disableAddFilterButton\", \"disableRemoveAllButton\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { GridLogicOperator } from \"../../../models/gridFilterItem.js\";\nimport { useGridApiContext } from \"../../../hooks/utils/useGridApiContext.js\";\nimport { GridPanelContent } from \"../GridPanelContent.js\";\nimport { GridPanelFooter } from \"../GridPanelFooter.js\";\nimport { GridPanelWrapper } from \"../GridPanelWrapper.js\";\nimport { GridFilterForm } from \"./GridFilterForm.js\";\nimport { useGridRootProps } from \"../../../hooks/utils/useGridRootProps.js\";\nimport { useGridSelector } from \"../../../hooks/utils/useGridSelector.js\";\nimport { gridFilterModelSelector } from \"../../../hooks/features/filter/gridFilterSelector.js\";\nimport { gridFilterableColumnDefinitionsSelector, gridFilterableColumnLookupSelector } from \"../../../hooks/features/columns/gridColumnsSelector.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst getGridFilter = col => ({\n field: col.field,\n operator: col.filterOperators[0].value,\n id: Math.round(Math.random() * 1e5)\n});\nconst GridFilterPanel = forwardRef(function GridFilterPanel(props, ref) {\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const filterModel = useGridSelector(apiRef, gridFilterModelSelector);\n const filterableColumns = useGridSelector(apiRef, gridFilterableColumnDefinitionsSelector);\n const filterableColumnsLookup = useGridSelector(apiRef, gridFilterableColumnLookupSelector);\n const lastFilterRef = React.useRef(null);\n const placeholderFilter = React.useRef(null);\n const {\n logicOperators = [GridLogicOperator.And, GridLogicOperator.Or],\n columnsSort,\n filterFormProps,\n getColumnForNewFilter,\n disableAddFilterButton = false,\n disableRemoveAllButton = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const applyFilter = apiRef.current.upsertFilterItem;\n const applyFilterLogicOperator = React.useCallback(operator => {\n apiRef.current.setFilterLogicOperator(operator);\n }, [apiRef]);\n const getDefaultFilter = React.useCallback(() => {\n let nextColumnWithOperator;\n if (getColumnForNewFilter && typeof getColumnForNewFilter === 'function') {\n // To allow override the column for default (first) filter\n const nextFieldName = getColumnForNewFilter({\n currentFilters: filterModel?.items || [],\n columns: filterableColumns\n });\n if (nextFieldName === null) {\n return null;\n }\n nextColumnWithOperator = filterableColumns.find(({\n field\n }) => field === nextFieldName);\n } else {\n nextColumnWithOperator = filterableColumns.find(colDef => colDef.filterOperators?.length);\n }\n if (!nextColumnWithOperator) {\n return null;\n }\n return getGridFilter(nextColumnWithOperator);\n }, [filterModel?.items, filterableColumns, getColumnForNewFilter]);\n const getNewFilter = React.useCallback(() => {\n if (getColumnForNewFilter === undefined || typeof getColumnForNewFilter !== 'function') {\n return getDefaultFilter();\n }\n const currentFilters = filterModel.items.length ? filterModel.items : [getDefaultFilter()].filter(Boolean);\n\n // If no items are there in filterModel, we have to pass defaultFilter\n const nextColumnFieldName = getColumnForNewFilter({\n currentFilters: currentFilters,\n columns: filterableColumns\n });\n if (nextColumnFieldName === null) {\n return null;\n }\n const nextColumnWithOperator = filterableColumns.find(({\n field\n }) => field === nextColumnFieldName);\n if (!nextColumnWithOperator) {\n return null;\n }\n return getGridFilter(nextColumnWithOperator);\n }, [filterModel.items, filterableColumns, getColumnForNewFilter, getDefaultFilter]);\n const items = React.useMemo(() => {\n if (filterModel.items.length) {\n return filterModel.items;\n }\n if (!placeholderFilter.current) {\n placeholderFilter.current = getDefaultFilter();\n }\n return placeholderFilter.current ? [placeholderFilter.current] : [];\n }, [filterModel.items, getDefaultFilter]);\n const hasMultipleFilters = items.length > 1;\n const {\n readOnlyFilters,\n validFilters\n } = React.useMemo(() => items.reduce((acc, item) => {\n if (filterableColumnsLookup[item.field]) {\n acc.validFilters.push(item);\n } else {\n acc.readOnlyFilters.push(item);\n }\n return acc;\n }, {\n readOnlyFilters: [],\n validFilters: []\n }), [items, filterableColumnsLookup]);\n const addNewFilter = React.useCallback(() => {\n const newFilter = getNewFilter();\n if (!newFilter) {\n return;\n }\n apiRef.current.upsertFilterItems([...items, newFilter]);\n }, [apiRef, getNewFilter, items]);\n const deleteFilter = React.useCallback(item => {\n const shouldCloseFilterPanel = validFilters.length === 1;\n apiRef.current.deleteFilterItem(item);\n if (shouldCloseFilterPanel) {\n apiRef.current.hideFilterPanel();\n }\n }, [apiRef, validFilters.length]);\n const handleRemoveAll = React.useCallback(() => {\n if (validFilters.length === 1 && validFilters[0].value === undefined) {\n apiRef.current.deleteFilterItem(validFilters[0]);\n return apiRef.current.hideFilterPanel();\n }\n return apiRef.current.setFilterModel(_extends({}, filterModel, {\n items: readOnlyFilters\n }), 'removeAllFilterItems');\n }, [apiRef, readOnlyFilters, filterModel, validFilters]);\n React.useEffect(() => {\n if (logicOperators.length > 0 && filterModel.logicOperator && !logicOperators.includes(filterModel.logicOperator)) {\n applyFilterLogicOperator(logicOperators[0]);\n }\n }, [logicOperators, applyFilterLogicOperator, filterModel.logicOperator]);\n React.useEffect(() => {\n if (validFilters.length > 0) {\n lastFilterRef.current.focus();\n }\n }, [validFilters.length]);\n return /*#__PURE__*/_jsxs(GridPanelWrapper, _extends({}, other, {\n ref: ref,\n children: [/*#__PURE__*/_jsxs(GridPanelContent, {\n children: [readOnlyFilters.map((item, index) => /*#__PURE__*/_jsx(GridFilterForm, _extends({\n item: item,\n applyFilterChanges: applyFilter,\n deleteFilter: deleteFilter,\n hasMultipleFilters: hasMultipleFilters,\n showMultiFilterOperators: index > 0,\n disableMultiFilterOperator: index !== 1,\n applyMultiFilterOperatorChanges: applyFilterLogicOperator,\n focusElementRef: null,\n readOnly: true,\n logicOperators: logicOperators,\n columnsSort: columnsSort\n }, filterFormProps), item.id == null ? index : item.id)), validFilters.map((item, index) => /*#__PURE__*/_jsx(GridFilterForm, _extends({\n item: item,\n applyFilterChanges: applyFilter,\n deleteFilter: deleteFilter,\n hasMultipleFilters: hasMultipleFilters,\n showMultiFilterOperators: readOnlyFilters.length + index > 0,\n disableMultiFilterOperator: readOnlyFilters.length + index !== 1,\n applyMultiFilterOperatorChanges: applyFilterLogicOperator,\n focusElementRef: index === validFilters.length - 1 ? lastFilterRef : null,\n logicOperators: logicOperators,\n columnsSort: columnsSort\n }, filterFormProps), item.id == null ? index + readOnlyFilters.length : item.id))]\n }), !rootProps.disableMultipleColumnsFiltering && !(disableAddFilterButton && disableRemoveAllButton) ? /*#__PURE__*/_jsxs(GridPanelFooter, {\n children: [!disableAddFilterButton ? /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({\n onClick: addNewFilter,\n startIcon: /*#__PURE__*/_jsx(rootProps.slots.filterPanelAddIcon, {})\n }, rootProps.slotProps?.baseButton, {\n children: apiRef.current.getLocaleText('filterPanelAddFilter')\n })) : /*#__PURE__*/_jsx(\"span\", {}), !disableRemoveAllButton && validFilters.length > 0 ? /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({\n onClick: handleRemoveAll,\n startIcon: /*#__PURE__*/_jsx(rootProps.slots.filterPanelRemoveAllIcon, {})\n }, rootProps.slotProps?.baseButton, {\n children: apiRef.current.getLocaleText('filterPanelRemoveAll')\n })) : null]\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridFilterPanel.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * @ignore - do not document.\n */\n children: PropTypes.node,\n /**\n * Changes how the options in the columns selector should be ordered.\n * If not specified, the order is derived from the `columns` prop.\n */\n columnsSort: PropTypes.oneOf(['asc', 'desc']),\n /**\n * If `true`, the `Add filter` button will not be displayed.\n * @default false\n */\n disableAddFilterButton: PropTypes.bool,\n /**\n * If `true`, the `Remove all` button will be disabled\n * @default false\n */\n disableRemoveAllButton: PropTypes.bool,\n /**\n * Props passed to each filter form.\n */\n filterFormProps: PropTypes.shape({\n columnInputProps: PropTypes.any,\n columnsSort: PropTypes.oneOf(['asc', 'desc']),\n deleteIconProps: PropTypes.any,\n filterColumns: PropTypes.func,\n logicOperatorInputProps: PropTypes.any,\n operatorInputProps: PropTypes.any,\n valueInputProps: PropTypes.any\n }),\n /**\n * Function that returns the next filter item to be picked as default filter.\n * @param {GetColumnForNewFilterArgs} args Currently configured filters and columns.\n * @returns {GridColDef['field']} The field to be used for the next filter or `null` to prevent adding a filter.\n */\n getColumnForNewFilter: PropTypes.func,\n /**\n * Sets the available logic operators.\n * @default [GridLogicOperator.And, GridLogicOperator.Or]\n */\n logicOperators: PropTypes.arrayOf(PropTypes.oneOf(['and', 'or']).isRequired),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\n\n/**\n * Demos:\n * - [Filtering - overview](https://mui.com/x/react-data-grid/filtering/)\n *\n * API:\n * - [GridFilterPanel API](https://mui.com/x/api/data-grid/grid-filter-panel/)\n */\nexport { GridFilterPanel, getGridFilter };","export const checkColumnVisibilityModelsSame = (a, b) => {\n // Filter `false` values only, as `true` and not having a key are the same\n const aFalseValues = new Set(Object.keys(a).filter(key => a[key] === false));\n const bFalseValues = new Set(Object.keys(b).filter(key => b[key] === false));\n if (aFalseValues.size !== bFalseValues.size) {\n return false;\n }\n let result = true;\n aFalseValues.forEach(key => {\n if (!bFalseValues.has(key)) {\n result = false;\n }\n });\n return result;\n};\nexport const defaultSearchPredicate = (column, searchValue) => (column.headerName || column.field).toLowerCase().indexOf(searchValue) > -1;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport composeClasses from '@mui/utils/composeClasses';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport { styled } from '@mui/material/styles';\nimport TextField from '@mui/material/TextField';\nimport { inputBaseClasses } from '@mui/material/InputBase';\nimport { gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector } from \"../../hooks/features/columns/gridColumnsSelector.js\";\nimport { useGridSelector } from \"../../hooks/utils/useGridSelector.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useLazyRef } from \"../../hooks/utils/useLazyRef.js\";\nimport { checkColumnVisibilityModelsSame, defaultSearchPredicate } from \"./utils.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['columnsManagement'],\n header: ['columnsManagementHeader'],\n searchInput: ['columnsManagementSearchInput'],\n footer: ['columnsManagementFooter'],\n row: ['columnsManagementRow']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst collator = new Intl.Collator();\nfunction GridColumnsManagement(props) {\n const apiRef = useGridApiContext();\n const searchInputRef = React.useRef(null);\n const columns = useGridSelector(apiRef, gridColumnDefinitionsSelector);\n const initialColumnVisibilityModel = useLazyRef(() => gridColumnVisibilityModelSelector(apiRef)).current;\n const columnVisibilityModel = useGridSelector(apiRef, gridColumnVisibilityModelSelector);\n const rootProps = useGridRootProps();\n const [searchValue, setSearchValue] = React.useState('');\n const classes = useUtilityClasses(rootProps);\n const {\n sort,\n searchPredicate = defaultSearchPredicate,\n autoFocusSearchField = true,\n disableShowHideToggle = false,\n disableResetButton = false,\n toggleAllMode = 'all',\n getTogglableColumns,\n searchInputProps\n } = props;\n const isResetDisabled = React.useMemo(() => checkColumnVisibilityModelsSame(columnVisibilityModel, initialColumnVisibilityModel), [columnVisibilityModel, initialColumnVisibilityModel]);\n const sortedColumns = React.useMemo(() => {\n switch (sort) {\n case 'asc':\n return [...columns].sort((a, b) => collator.compare(a.headerName || a.field, b.headerName || b.field));\n case 'desc':\n return [...columns].sort((a, b) => -collator.compare(a.headerName || a.field, b.headerName || b.field));\n default:\n return columns;\n }\n }, [columns, sort]);\n const toggleColumn = event => {\n const {\n name: field\n } = event.target;\n apiRef.current.setColumnVisibility(field, columnVisibilityModel[field] === false);\n };\n const currentColumns = React.useMemo(() => {\n const togglableColumns = getTogglableColumns ? getTogglableColumns(sortedColumns) : null;\n const togglableSortedColumns = togglableColumns ? sortedColumns.filter(({\n field\n }) => togglableColumns.includes(field)) : sortedColumns;\n if (!searchValue) {\n return togglableSortedColumns;\n }\n return togglableSortedColumns.filter(column => searchPredicate(column, searchValue.toLowerCase()));\n }, [sortedColumns, searchValue, searchPredicate, getTogglableColumns]);\n const toggleAllColumns = React.useCallback(isVisible => {\n const currentModel = gridColumnVisibilityModelSelector(apiRef);\n const newModel = _extends({}, currentModel);\n const togglableColumns = getTogglableColumns ? getTogglableColumns(columns) : null;\n (toggleAllMode === 'filteredOnly' ? currentColumns : columns).forEach(col => {\n if (col.hideable && (togglableColumns == null || togglableColumns.includes(col.field))) {\n if (isVisible) {\n // delete the key from the model instead of setting it to `true`\n delete newModel[col.field];\n } else {\n newModel[col.field] = false;\n }\n }\n });\n return apiRef.current.setColumnVisibilityModel(newModel);\n }, [apiRef, columns, getTogglableColumns, toggleAllMode, currentColumns]);\n const handleSearchValueChange = React.useCallback(event => {\n setSearchValue(event.target.value);\n }, []);\n const hideableColumns = React.useMemo(() => currentColumns.filter(col => col.hideable), [currentColumns]);\n const allHideableColumnsVisible = React.useMemo(() => hideableColumns.every(column => columnVisibilityModel[column.field] == null || columnVisibilityModel[column.field] !== false), [columnVisibilityModel, hideableColumns]);\n const allHideableColumnsHidden = React.useMemo(() => hideableColumns.every(column => columnVisibilityModel[column.field] === false), [columnVisibilityModel, hideableColumns]);\n const firstSwitchRef = React.useRef(null);\n React.useEffect(() => {\n if (autoFocusSearchField) {\n searchInputRef.current.focus();\n } else if (firstSwitchRef.current && typeof firstSwitchRef.current.focus === 'function') {\n firstSwitchRef.current.focus();\n }\n }, [autoFocusSearchField]);\n let firstHideableColumnFound = false;\n const isFirstHideableColumn = column => {\n if (firstHideableColumnFound === false && column.hideable !== false) {\n firstHideableColumnFound = true;\n return true;\n }\n return false;\n };\n const handleSearchReset = React.useCallback(() => {\n setSearchValue('');\n searchInputRef.current.focus();\n }, []);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(GridColumnsManagementHeader, {\n className: classes.header,\n ownerState: rootProps,\n children: /*#__PURE__*/_jsx(SearchInput, _extends({\n as: rootProps.slots.baseTextField,\n ownerState: rootProps,\n placeholder: apiRef.current.getLocaleText('columnsManagementSearchTitle'),\n inputRef: searchInputRef,\n className: classes.searchInput,\n value: searchValue,\n onChange: handleSearchValueChange,\n variant: \"outlined\",\n size: \"small\",\n type: \"search\",\n InputProps: {\n startAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseInputAdornment, {\n position: \"start\",\n children: /*#__PURE__*/_jsx(rootProps.slots.quickFilterIcon, {})\n }),\n endAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({\n \"aria-label\": apiRef.current.getLocaleText('columnsManagementDeleteIconLabel'),\n size: \"small\",\n sx: [searchValue ? {\n visibility: 'visible'\n } : {\n visibility: 'hidden'\n }],\n tabIndex: -1,\n onClick: handleSearchReset\n }, rootProps.slotProps?.baseIconButton, {\n children: /*#__PURE__*/_jsx(rootProps.slots.quickFilterClearIcon, {\n fontSize: \"small\"\n })\n }))\n },\n inputProps: {\n 'aria-label': apiRef.current.getLocaleText('columnsManagementSearchTitle')\n },\n autoComplete: \"off\",\n fullWidth: true\n }, rootProps.slotProps?.baseTextField, searchInputProps))\n }), /*#__PURE__*/_jsxs(GridColumnsManagementBody, {\n className: classes.root,\n ownerState: rootProps,\n children: [currentColumns.map(column => /*#__PURE__*/_jsx(FormControlLabel, {\n className: classes.row,\n control: /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({\n disabled: column.hideable === false,\n checked: columnVisibilityModel[column.field] !== false,\n onClick: toggleColumn,\n name: column.field,\n sx: {\n p: 0.5\n },\n inputRef: isFirstHideableColumn(column) ? firstSwitchRef : undefined\n }, rootProps.slotProps?.baseCheckbox)),\n label: column.headerName || column.field\n }, column.field)), currentColumns.length === 0 && /*#__PURE__*/_jsx(GridColumnsManagementEmptyText, {\n ownerState: rootProps,\n children: apiRef.current.getLocaleText('columnsManagementNoColumns')\n })]\n }), (!disableShowHideToggle || !disableResetButton) && currentColumns.length > 0 ? /*#__PURE__*/_jsxs(GridColumnsManagementFooter, {\n ownerState: rootProps,\n className: classes.footer,\n children: [!disableShowHideToggle ? /*#__PURE__*/_jsx(FormControlLabel, {\n control: /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({\n disabled: hideableColumns.length === 0,\n checked: allHideableColumnsVisible,\n indeterminate: !allHideableColumnsVisible && !allHideableColumnsHidden,\n onClick: () => toggleAllColumns(!allHideableColumnsVisible),\n name: apiRef.current.getLocaleText('columnsManagementShowHideAllText'),\n sx: {\n p: 0.5\n }\n }, rootProps.slotProps?.baseCheckbox)),\n label: apiRef.current.getLocaleText('columnsManagementShowHideAllText')\n }) : /*#__PURE__*/_jsx(\"span\", {}), !disableResetButton ? /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({\n onClick: () => apiRef.current.setColumnVisibilityModel(initialColumnVisibilityModel),\n disabled: isResetDisabled\n }, rootProps.slotProps?.baseButton, {\n children: apiRef.current.getLocaleText('columnsManagementReset')\n })) : null]\n }) : null]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GridColumnsManagement.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the column search field will be focused automatically.\n * If `false`, the first column switch input will be focused automatically.\n * This helps to avoid input keyboard panel to popup automatically on touch devices.\n * @default true\n */\n autoFocusSearchField: PropTypes.bool,\n /**\n * If `true`, the `Reset` button will not be disabled\n * @default false\n */\n disableResetButton: PropTypes.bool,\n /**\n * If `true`, the `Show/Hide all` toggle checkbox will not be displayed.\n * @default false\n */\n disableShowHideToggle: PropTypes.bool,\n /**\n * Returns the list of togglable columns.\n * If used, only those columns will be displayed in the panel\n * which are passed as the return value of the function.\n * @param {GridColDef[]} columns The `ColDef` list of all columns.\n * @returns {GridColDef['field'][]} The list of togglable columns' field names.\n */\n getTogglableColumns: PropTypes.func,\n searchInputProps: PropTypes.object,\n searchPredicate: PropTypes.func,\n sort: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Changes the behavior of the `Show/Hide All` toggle when the search field is used:\n * - `all`: Will toggle all columns.\n * - `filteredOnly`: Will only toggle columns that match the search criteria.\n * @default 'all'\n */\n toggleAllMode: PropTypes.oneOf(['all', 'filteredOnly'])\n} : void 0;\nconst GridColumnsManagementBody = styled('div', {\n name: 'MuiDataGrid',\n slot: 'ColumnsManagement',\n overridesResolver: (props, styles) => styles.columnsManagement\n})(({\n theme\n}) => ({\n padding: theme.spacing(0, 3, 1.5),\n display: 'flex',\n flexDirection: 'column',\n overflow: 'auto',\n flex: '1 1',\n maxHeight: 400,\n alignItems: 'flex-start'\n}));\nconst GridColumnsManagementHeader = styled('div', {\n name: 'MuiDataGrid',\n slot: 'ColumnsManagementHeader',\n overridesResolver: (props, styles) => styles.columnsManagementHeader\n})(({\n theme\n}) => ({\n padding: theme.spacing(1.5, 3)\n}));\nconst SearchInput = styled(TextField, {\n name: 'MuiDataGrid',\n slot: 'ColumnsManagementSearchInput',\n overridesResolver: (props, styles) => styles.columnsManagementSearchInput\n})(({\n theme\n}) => ({\n [`& .${inputBaseClasses.root}`]: {\n padding: theme.spacing(0, 1.5, 0, 1.5)\n },\n [`& .${inputBaseClasses.input}::-webkit-search-decoration,\n & .${inputBaseClasses.input}::-webkit-search-cancel-button,\n & .${inputBaseClasses.input}::-webkit-search-results-button,\n & .${inputBaseClasses.input}::-webkit-search-results-decoration`]: {\n /* clears the 'X' icon from Chrome */\n display: 'none'\n }\n}));\nconst GridColumnsManagementFooter = styled('div', {\n name: 'MuiDataGrid',\n slot: 'ColumnsManagementFooter',\n overridesResolver: (props, styles) => styles.columnsManagementFooter\n})(({\n theme\n}) => ({\n padding: theme.spacing(0.5, 1, 0.5, 3),\n display: 'flex',\n justifyContent: 'space-between',\n borderTop: `1px solid ${theme.palette.divider}`\n}));\nconst GridColumnsManagementEmptyText = styled('div')(({\n theme\n}) => ({\n padding: theme.spacing(0.5, 0),\n color: theme.palette.grey[500]\n}));\nexport { GridColumnsManagement };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"classes\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled } from '@mui/material/styles';\nimport { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport ClickAwayListener from '@mui/material/ClickAwayListener';\nimport Paper from '@mui/material/Paper';\nimport Popper from '@mui/material/Popper';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const gridPanelClasses = generateUtilityClasses('MuiDataGrid', ['panel', 'paper']);\nconst GridPanelRoot = styled(Popper, {\n name: 'MuiDataGrid',\n slot: 'Panel',\n overridesResolver: (props, styles) => styles.panel\n})(({\n theme\n}) => ({\n zIndex: theme.zIndex.modal\n}));\nconst GridPaperRoot = styled(Paper, {\n name: 'MuiDataGrid',\n slot: 'Paper',\n overridesResolver: (props, styles) => styles.paper\n})(({\n theme\n}) => ({\n backgroundColor: (theme.vars || theme).palette.background.paper,\n minWidth: 300,\n maxHeight: 450,\n display: 'flex',\n maxWidth: `calc(100vw - ${theme.spacing(0.5)})`,\n overflow: 'auto'\n}));\nconst GridPanel = forwardRef((props, ref) => {\n const {\n children,\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const classes = gridPanelClasses;\n const [isPlaced, setIsPlaced] = React.useState(false);\n const handleClickAway = React.useCallback(() => {\n apiRef.current.hidePreferences();\n }, [apiRef]);\n const handleKeyDown = React.useCallback(event => {\n if (event.key === 'Escape') {\n apiRef.current.hidePreferences();\n }\n }, [apiRef]);\n const modifiers = React.useMemo(() => [{\n name: 'flip',\n enabled: true,\n options: {\n rootBoundary: 'document'\n }\n }, {\n name: 'isPlaced',\n enabled: true,\n phase: 'main',\n fn: () => {\n setIsPlaced(true);\n },\n effect: () => () => {\n setIsPlaced(false);\n }\n }], []);\n const [anchorEl, setAnchorEl] = React.useState(null);\n React.useEffect(() => {\n const panelAnchor = apiRef.current.rootElementRef?.current?.querySelector('[data-id=\"gridPanelAnchor\"]');\n if (panelAnchor) {\n setAnchorEl(panelAnchor);\n }\n }, [apiRef]);\n if (!anchorEl) {\n return null;\n }\n return /*#__PURE__*/_jsx(GridPanelRoot, _extends({\n placement: \"bottom-start\",\n className: clsx(classes.panel, className),\n ownerState: rootProps,\n anchorEl: anchorEl,\n modifiers: modifiers\n }, other, {\n ref: ref,\n children: /*#__PURE__*/_jsx(ClickAwayListener, {\n mouseEvent: \"onMouseUp\",\n onClickAway: handleClickAway,\n children: /*#__PURE__*/_jsx(GridPaperRoot, {\n className: classes.paper,\n ownerState: rootProps,\n elevation: 8,\n onKeyDown: handleKeyDown,\n children: isPlaced && children\n })\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridPanel.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Popper render function or node.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n ownerState: PropTypes.object\n} : void 0;\nexport { GridPanel };","// Based on https://stackoverflow.com/a/59518678\nlet cachedSupportsPreventScroll;\nexport function doesSupportPreventScroll() {\n if (cachedSupportsPreventScroll === undefined) {\n document.createElement('div').focus({\n get preventScroll() {\n cachedSupportsPreventScroll = true;\n return false;\n }\n });\n }\n return cachedSupportsPreventScroll;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"column\", \"rowId\", \"editCellState\", \"align\", \"children\", \"colIndex\", \"width\", \"className\", \"style\", \"colSpan\", \"disableDragEvents\", \"isNotVisible\", \"pinnedOffset\", \"pinnedPosition\", \"sectionIndex\", \"sectionLength\", \"gridHasFiller\", \"onClick\", \"onDoubleClick\", \"onMouseDown\", \"onMouseUp\", \"onMouseOver\", \"onKeyDown\", \"onKeyUp\", \"onDragEnter\", \"onDragOver\"],\n _excluded2 = [\"changeReason\", \"unstable_updateValueOnRender\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_useForkRef as useForkRef, unstable_composeClasses as composeClasses, unstable_ownerDocument as ownerDocument, unstable_capitalize as capitalize } from '@mui/utils';\nimport { fastMemo } from '@mui/x-internals/fastMemo';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { doesSupportPreventScroll } from \"../../utils/doesSupportPreventScroll.js\";\nimport { getDataGridUtilityClass, gridClasses } from \"../../constants/gridClasses.js\";\nimport { GridCellModes } from \"../../models/index.js\";\nimport { useGridSelector, objectShallowCompare } from \"../../hooks/utils/useGridSelector.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { gridFocusCellSelector } from \"../../hooks/features/focus/gridFocusStateSelector.js\";\nimport { shouldCellShowLeftBorder, shouldCellShowRightBorder } from \"../../utils/cellBorderUtils.js\";\nimport { GridPinnedColumnPosition } from \"../../hooks/features/columns/gridColumnsInterfaces.js\";\nimport { gridRowSpanningHiddenCellsSelector, gridRowSpanningSpannedCellsSelector } from \"../../hooks/features/rows/gridRowSpanningSelectors.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport let PinnedPosition = /*#__PURE__*/function (PinnedPosition) {\n PinnedPosition[PinnedPosition[\"NONE\"] = 0] = \"NONE\";\n PinnedPosition[PinnedPosition[\"LEFT\"] = 1] = \"LEFT\";\n PinnedPosition[PinnedPosition[\"RIGHT\"] = 2] = \"RIGHT\";\n PinnedPosition[PinnedPosition[\"VIRTUAL\"] = 3] = \"VIRTUAL\";\n return PinnedPosition;\n}({});\nexport const gridPinnedColumnPositionLookup = {\n [PinnedPosition.LEFT]: GridPinnedColumnPosition.LEFT,\n [PinnedPosition.RIGHT]: GridPinnedColumnPosition.RIGHT,\n [PinnedPosition.NONE]: undefined,\n [PinnedPosition.VIRTUAL]: undefined\n};\nconst EMPTY_CELL_PARAMS = {\n id: -1,\n field: '__unset__',\n row: {},\n rowNode: {\n id: -1,\n depth: 0,\n type: 'leaf',\n parent: -1,\n groupingKey: null\n },\n colDef: {\n type: 'string',\n field: '__unset__',\n computedWidth: 0\n },\n cellMode: GridCellModes.View,\n hasFocus: false,\n tabIndex: -1,\n value: null,\n formattedValue: '__unset__',\n isEditable: false,\n api: {}\n};\nconst useUtilityClasses = ownerState => {\n const {\n align,\n showLeftBorder,\n showRightBorder,\n pinnedPosition,\n isEditable,\n isSelected,\n isSelectionMode,\n classes\n } = ownerState;\n const slots = {\n root: ['cell', `cell--text${capitalize(align)}`, isSelected && 'selected', isEditable && 'cell--editable', showLeftBorder && 'cell--withLeftBorder', showRightBorder && 'cell--withRightBorder', pinnedPosition === PinnedPosition.LEFT && 'cell--pinnedLeft', pinnedPosition === PinnedPosition.RIGHT && 'cell--pinnedRight', isSelectionMode && !isEditable && 'cell--selectionMode']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nlet warnedOnce = false;\n\n// TODO(v7): Removing the wrapper will break the docs performance visualization demo.\n\nconst GridCell = forwardRef(function GridCell(props, ref) {\n const {\n column,\n rowId,\n editCellState,\n align,\n colIndex,\n width,\n className,\n style: styleProp,\n colSpan,\n disableDragEvents,\n isNotVisible,\n pinnedOffset,\n pinnedPosition,\n sectionIndex,\n sectionLength,\n gridHasFiller,\n onClick,\n onDoubleClick,\n onMouseDown,\n onMouseUp,\n onMouseOver,\n onKeyDown,\n onKeyUp,\n onDragEnter,\n onDragOver\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const isRtl = useRtl();\n const field = column.field;\n const cellParams = useGridSelector(apiRef, () => {\n // This is required because `.getCellParams` tries to get the `state.rows.tree` entry\n // associated with `rowId`/`fieldId`, but this selector runs after the state has been\n // updated, while `rowId`/`fieldId` reference an entry in the old state.\n const row = apiRef.current.getRow(rowId);\n if (!row) {\n return EMPTY_CELL_PARAMS;\n }\n const result = apiRef.current.getCellParams(rowId, field);\n result.api = apiRef.current;\n return result;\n }, objectShallowCompare);\n const isSelected = useGridSelector(apiRef, () => apiRef.current.unstable_applyPipeProcessors('isCellSelected', false, {\n id: rowId,\n field\n }));\n const hiddenCells = useGridSelector(apiRef, gridRowSpanningHiddenCellsSelector);\n const spannedCells = useGridSelector(apiRef, gridRowSpanningSpannedCellsSelector);\n const {\n cellMode,\n hasFocus,\n isEditable = false,\n value\n } = cellParams;\n const canManageOwnFocus = column.type === 'actions' && column.getActions?.(apiRef.current.getRowParams(rowId)).some(action => !action.props.disabled);\n const tabIndex = (cellMode === 'view' || !isEditable) && !canManageOwnFocus ? cellParams.tabIndex : -1;\n const {\n classes: rootClasses,\n getCellClassName\n } = rootProps;\n\n // There is a hidden grid state access in `applyPipeProcessor('cellClassName', ...)`\n const pipesClassName = useGridSelector(apiRef, () => apiRef.current.unstable_applyPipeProcessors('cellClassName', [], {\n id: rowId,\n field\n }).filter(Boolean).join(' '));\n const classNames = [pipesClassName];\n if (column.cellClassName) {\n classNames.push(typeof column.cellClassName === 'function' ? column.cellClassName(cellParams) : column.cellClassName);\n }\n if (column.display === 'flex') {\n classNames.push(gridClasses['cell--flex']);\n }\n if (getCellClassName) {\n classNames.push(getCellClassName(cellParams));\n }\n const valueToRender = cellParams.formattedValue ?? value;\n const cellRef = React.useRef(null);\n const handleRef = useForkRef(ref, cellRef);\n const focusElementRef = React.useRef(null);\n const isSelectionMode = rootProps.cellSelection ?? false;\n const position = gridPinnedColumnPositionLookup[pinnedPosition];\n const showLeftBorder = shouldCellShowLeftBorder(position, sectionIndex);\n const showRightBorder = shouldCellShowRightBorder(position, sectionIndex, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);\n const ownerState = {\n align,\n showLeftBorder,\n showRightBorder,\n isEditable,\n classes: rootProps.classes,\n pinnedPosition,\n isSelected,\n isSelectionMode\n };\n const classes = useUtilityClasses(ownerState);\n const publishMouseUp = React.useCallback(eventName => event => {\n const params = apiRef.current.getCellParams(rowId, field || '');\n apiRef.current.publishEvent(eventName, params, event);\n if (onMouseUp) {\n onMouseUp(event);\n }\n }, [apiRef, field, onMouseUp, rowId]);\n const publishMouseDown = React.useCallback(eventName => event => {\n const params = apiRef.current.getCellParams(rowId, field || '');\n apiRef.current.publishEvent(eventName, params, event);\n if (onMouseDown) {\n onMouseDown(event);\n }\n }, [apiRef, field, onMouseDown, rowId]);\n const publish = React.useCallback((eventName, propHandler) => event => {\n // The row might have been deleted during the click\n if (!apiRef.current.getRow(rowId)) {\n return;\n }\n const params = apiRef.current.getCellParams(rowId, field || '');\n apiRef.current.publishEvent(eventName, params, event);\n if (propHandler) {\n propHandler(event);\n }\n }, [apiRef, field, rowId]);\n const isCellRowSpanned = hiddenCells[rowId]?.[field] ?? false;\n const rowSpan = spannedCells[rowId]?.[field] ?? 1;\n const style = React.useMemo(() => {\n if (isNotVisible) {\n return {\n padding: 0,\n opacity: 0,\n width: 0,\n height: 0,\n border: 0\n };\n }\n const cellStyle = _extends({\n '--width': `${width}px`\n }, styleProp);\n const isLeftPinned = pinnedPosition === PinnedPosition.LEFT;\n const isRightPinned = pinnedPosition === PinnedPosition.RIGHT;\n if (isLeftPinned || isRightPinned) {\n let side = isLeftPinned ? 'left' : 'right';\n if (isRtl) {\n side = isLeftPinned ? 'right' : 'left';\n }\n cellStyle[side] = pinnedOffset;\n }\n if (rowSpan > 1) {\n cellStyle.height = `calc(var(--height) * ${rowSpan})`;\n cellStyle.zIndex = 5;\n if (isLeftPinned || isRightPinned) {\n cellStyle.zIndex = 6;\n }\n }\n return cellStyle;\n }, [width, isNotVisible, styleProp, pinnedOffset, pinnedPosition, isRtl, rowSpan]);\n React.useEffect(() => {\n if (!hasFocus || cellMode === GridCellModes.Edit) {\n return;\n }\n const doc = ownerDocument(apiRef.current.rootElementRef.current);\n if (cellRef.current && !cellRef.current.contains(doc.activeElement)) {\n const focusableElement = cellRef.current.querySelector('[tabindex=\"0\"]');\n const elementToFocus = focusElementRef.current || focusableElement || cellRef.current;\n if (doesSupportPreventScroll()) {\n elementToFocus.focus({\n preventScroll: true\n });\n } else {\n const scrollPosition = apiRef.current.getScrollPosition();\n elementToFocus.focus();\n apiRef.current.scroll(scrollPosition);\n }\n }\n }, [hasFocus, cellMode, apiRef]);\n if (isCellRowSpanned) {\n return /*#__PURE__*/_jsx(\"div\", {\n \"data-colindex\": colIndex,\n role: \"presentation\",\n style: _extends({\n width: 'var(--width)'\n }, style)\n });\n }\n if (cellParams === EMPTY_CELL_PARAMS) {\n return null;\n }\n let handleFocus = other.onFocus;\n if (process.env.NODE_ENV === 'test' && rootProps.experimentalFeatures?.warnIfFocusStateIsNotSynced) {\n handleFocus = event => {\n const focusedCell = gridFocusCellSelector(apiRef);\n if (focusedCell?.id === rowId && focusedCell.field === field) {\n if (typeof other.onFocus === 'function') {\n other.onFocus(event);\n }\n return;\n }\n if (!warnedOnce) {\n console.warn([`MUI X: The cell with id=${rowId} and field=${field} received focus.`, `According to the state, the focus should be at id=${focusedCell?.id}, field=${focusedCell?.field}.`, \"Not syncing the state may cause unwanted behaviors since the `cellFocusIn` event won't be fired.\", 'Call `fireEvent.mouseUp` before the `fireEvent.click` to sync the focus with the state.'].join('\\n'));\n warnedOnce = true;\n }\n };\n }\n let children;\n let title;\n if (editCellState === null && column.renderCell) {\n children = column.renderCell(cellParams);\n }\n if (editCellState !== null && column.renderEditCell) {\n const updatedRow = apiRef.current.getRowWithUpdatedValues(rowId, column.field);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const editCellStateRest = _objectWithoutPropertiesLoose(editCellState, _excluded2);\n const formattedValue = column.valueFormatter ? column.valueFormatter(editCellState.value, updatedRow, column, apiRef) : cellParams.formattedValue;\n const params = _extends({}, cellParams, {\n row: updatedRow,\n formattedValue\n }, editCellStateRest);\n children = column.renderEditCell(params);\n classNames.push(gridClasses['cell--editing']);\n classNames.push(rootClasses?.['cell--editing']);\n }\n if (children === undefined) {\n const valueString = valueToRender?.toString();\n children = valueString;\n title = valueString;\n }\n if (/*#__PURE__*/React.isValidElement(children) && canManageOwnFocus) {\n children = /*#__PURE__*/React.cloneElement(children, {\n focusElementRef\n });\n }\n const draggableEventHandlers = disableDragEvents ? null : {\n onDragEnter: publish('cellDragEnter', onDragEnter),\n onDragOver: publish('cellDragOver', onDragOver)\n };\n return /*#__PURE__*/_jsx(\"div\", _extends({\n className: clsx(classes.root, classNames, className),\n role: \"gridcell\",\n \"data-field\": field,\n \"data-colindex\": colIndex,\n \"aria-colindex\": colIndex + 1,\n \"aria-colspan\": colSpan,\n \"aria-rowspan\": rowSpan,\n style: style,\n title: title,\n tabIndex: tabIndex,\n onClick: publish('cellClick', onClick),\n onDoubleClick: publish('cellDoubleClick', onDoubleClick),\n onMouseOver: publish('cellMouseOver', onMouseOver),\n onMouseDown: publishMouseDown('cellMouseDown'),\n onMouseUp: publishMouseUp('cellMouseUp'),\n onKeyDown: publish('cellKeyDown', onKeyDown),\n onKeyUp: publish('cellKeyUp', onKeyUp)\n }, draggableEventHandlers, other, {\n onFocus: handleFocus,\n ref: handleRef,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridCell.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n align: PropTypes.oneOf(['center', 'left', 'right']).isRequired,\n colIndex: PropTypes.number.isRequired,\n colSpan: PropTypes.number,\n column: PropTypes.object.isRequired,\n disableDragEvents: PropTypes.bool,\n editCellState: PropTypes.shape({\n changeReason: PropTypes.oneOf(['debouncedSetEditCellValue', 'setEditCellValue']),\n isProcessingProps: PropTypes.bool,\n isValidating: PropTypes.bool,\n value: PropTypes.any\n }),\n gridHasFiller: PropTypes.bool.isRequired,\n isNotVisible: PropTypes.bool.isRequired,\n pinnedOffset: PropTypes.number.isRequired,\n pinnedPosition: PropTypes.oneOf([0, 1, 2, 3]).isRequired,\n rowId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n sectionIndex: PropTypes.number.isRequired,\n sectionLength: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired\n} : void 0;\nconst MemoizedGridCell = fastMemo(GridCell);\nexport { MemoizedGridCell as GridCell };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"selected\", \"rowId\", \"row\", \"index\", \"style\", \"rowHeight\", \"className\", \"visibleColumns\", \"pinnedColumns\", \"offsetTop\", \"offsetLeft\", \"dimensions\", \"renderContext\", \"focusedColumnIndex\", \"isFirstVisible\", \"isLastVisible\", \"isNotVisible\", \"showBottomBorder\", \"tabbableCell\", \"onClick\", \"onDoubleClick\", \"onMouseEnter\", \"onMouseLeave\", \"onMouseOut\", \"onMouseOver\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { fastMemo } from '@mui/x-internals/fastMemo';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { GridEditModes, GridRowModes, GridCellModes } from \"../models/gridEditRowModel.js\";\nimport { gridClasses } from \"../constants/gridClasses.js\";\nimport { composeGridClasses } from \"../utils/composeGridClasses.js\";\nimport { useGridRootProps } from \"../hooks/utils/useGridRootProps.js\";\nimport { gridColumnPositionsSelector } from \"../hooks/features/columns/gridColumnsSelector.js\";\nimport { useGridSelector, objectShallowCompare } from \"../hooks/utils/useGridSelector.js\";\nimport { useGridVisibleRows } from \"../hooks/utils/useGridVisibleRows.js\";\nimport { findParentElementFromClassName, isEventTargetInPortal } from \"../utils/domUtils.js\";\nimport { GRID_CHECKBOX_SELECTION_COL_DEF } from \"../colDef/gridCheckboxSelectionColDef.js\";\nimport { GRID_ACTIONS_COLUMN_TYPE } from \"../colDef/gridActionsColDef.js\";\nimport { GRID_DETAIL_PANEL_TOGGLE_FIELD } from \"../internals/constants.js\";\nimport { gridSortModelSelector } from \"../hooks/features/sorting/gridSortingSelector.js\";\nimport { gridRowMaximumTreeDepthSelector } from \"../hooks/features/rows/gridRowsSelector.js\";\nimport { gridEditRowsStateSelector } from \"../hooks/features/editing/gridEditingSelectors.js\";\nimport { PinnedPosition, gridPinnedColumnPositionLookup } from \"./cell/GridCell.js\";\nimport { GridScrollbarFillerCell as ScrollbarFiller } from \"./GridScrollbarFillerCell.js\";\nimport { getPinnedCellOffset } from \"../internals/utils/getPinnedCellOffset.js\";\nimport { useGridConfiguration } from \"../hooks/utils/useGridConfiguration.js\";\nimport { useGridPrivateApiContext } from \"../hooks/utils/useGridPrivateApiContext.js\";\nimport { gridVirtualizationColumnEnabledSelector } from \"../hooks/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction EmptyCell({\n width\n}) {\n if (!width) {\n return null;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n role: \"presentation\",\n className: clsx(gridClasses.cell, gridClasses.cellEmpty),\n style: {\n '--width': `${width}px`\n }\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? EmptyCell.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n width: PropTypes.number.isRequired\n} : void 0;\nconst GridRow = forwardRef(function GridRow(props, refProp) {\n const {\n selected,\n rowId,\n row,\n index,\n style: styleProp,\n rowHeight,\n className,\n visibleColumns,\n pinnedColumns,\n offsetLeft,\n dimensions,\n renderContext,\n focusedColumnIndex,\n isFirstVisible,\n isLastVisible,\n isNotVisible,\n showBottomBorder,\n onClick,\n onDoubleClick,\n onMouseEnter,\n onMouseLeave,\n onMouseOut,\n onMouseOver\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridPrivateApiContext();\n const configuration = useGridConfiguration();\n const ref = React.useRef(null);\n const rootProps = useGridRootProps();\n const currentPage = useGridVisibleRows(apiRef, rootProps);\n const sortModel = useGridSelector(apiRef, gridSortModelSelector);\n const treeDepth = useGridSelector(apiRef, gridRowMaximumTreeDepthSelector);\n const columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);\n const editRowsState = useGridSelector(apiRef, gridEditRowsStateSelector);\n const handleRef = useForkRef(ref, refProp);\n const rowNode = apiRef.current.getRowNode(rowId);\n const scrollbarWidth = dimensions.hasScrollY ? dimensions.scrollbarSize : 0;\n const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;\n const editing = apiRef.current.getRowMode(rowId) === GridRowModes.Edit;\n const editable = rootProps.editMode === GridEditModes.Row;\n const hasColumnVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);\n const hasFocusCell = focusedColumnIndex !== undefined;\n const hasVirtualFocusCellLeft = hasFocusCell && focusedColumnIndex >= pinnedColumns.left.length && focusedColumnIndex < renderContext.firstColumnIndex;\n const hasVirtualFocusCellRight = hasFocusCell && focusedColumnIndex < visibleColumns.length - pinnedColumns.right.length && focusedColumnIndex >= renderContext.lastColumnIndex;\n const classes = composeGridClasses(rootProps.classes, {\n root: ['row', selected && 'selected', editable && 'row--editable', editing && 'row--editing', isFirstVisible && 'row--firstVisible', isLastVisible && 'row--lastVisible', showBottomBorder && 'row--borderBottom', rowHeight === 'auto' && 'row--dynamicHeight']\n });\n const getRowAriaAttributes = configuration.hooks.useGridRowAriaAttributes();\n React.useLayoutEffect(() => {\n if (currentPage.range) {\n const rowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(rowId);\n // Pinned rows are not part of the visible rows\n if (rowIndex !== undefined) {\n apiRef.current.unstable_setLastMeasuredRowIndex(rowIndex);\n }\n }\n if (ref.current && rowHeight === 'auto') {\n return apiRef.current.observeRowHeight(ref.current, rowId);\n }\n return undefined;\n }, [apiRef, currentPage.range, rowHeight, rowId]);\n const publish = React.useCallback((eventName, propHandler) => event => {\n // Ignore portal\n if (isEventTargetInPortal(event)) {\n return;\n }\n\n // The row might have been deleted\n if (!apiRef.current.getRow(rowId)) {\n return;\n }\n apiRef.current.publishEvent(eventName, apiRef.current.getRowParams(rowId), event);\n if (propHandler) {\n propHandler(event);\n }\n }, [apiRef, rowId]);\n const publishClick = React.useCallback(event => {\n const cell = findParentElementFromClassName(event.target, gridClasses.cell);\n const field = cell?.getAttribute('data-field');\n\n // Check if the field is available because the cell that fills the empty\n // space of the row has no field.\n if (field) {\n // User clicked in the checkbox added by checkboxSelection\n if (field === GRID_CHECKBOX_SELECTION_COL_DEF.field) {\n return;\n }\n\n // User opened a detail panel\n if (field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {\n return;\n }\n\n // User reorders a row\n if (field === '__reorder__') {\n return;\n }\n\n // User is editing a cell\n if (apiRef.current.getCellMode(rowId, field) === GridCellModes.Edit) {\n return;\n }\n\n // User clicked a button from the \"actions\" column type\n const column = apiRef.current.getColumn(field);\n if (column?.type === GRID_ACTIONS_COLUMN_TYPE) {\n return;\n }\n }\n publish('rowClick', onClick)(event);\n }, [apiRef, onClick, publish, rowId]);\n const {\n slots,\n slotProps,\n disableColumnReorder\n } = rootProps;\n const rowReordering = rootProps.rowReordering;\n const heightEntry = useGridSelector(apiRef, () => _extends({}, apiRef.current.getRowHeightEntry(rowId)), objectShallowCompare);\n const style = React.useMemo(() => {\n if (isNotVisible) {\n return {\n opacity: 0,\n width: 0,\n height: 0\n };\n }\n const rowStyle = _extends({}, styleProp, {\n maxHeight: rowHeight === 'auto' ? 'none' : rowHeight,\n // max-height doesn't support \"auto\"\n minHeight: rowHeight,\n '--height': typeof rowHeight === 'number' ? `${rowHeight}px` : rowHeight\n });\n if (heightEntry.spacingTop) {\n const property = rootProps.rowSpacingType === 'border' ? 'borderTopWidth' : 'marginTop';\n rowStyle[property] = heightEntry.spacingTop;\n }\n if (heightEntry.spacingBottom) {\n const property = rootProps.rowSpacingType === 'border' ? 'borderBottomWidth' : 'marginBottom';\n let propertyValue = rowStyle[property];\n // avoid overriding existing value\n if (typeof propertyValue !== 'number') {\n propertyValue = parseInt(propertyValue || '0', 10);\n }\n propertyValue += heightEntry.spacingBottom;\n rowStyle[property] = propertyValue;\n }\n return rowStyle;\n }, [isNotVisible, rowHeight, styleProp, heightEntry, rootProps.rowSpacingType]);\n const rowClassNames = apiRef.current.unstable_applyPipeProcessors('rowClassName', [], rowId);\n const ariaAttributes = rowNode ? getRowAriaAttributes(rowNode, index) : undefined;\n if (typeof rootProps.getRowClassName === 'function') {\n const indexRelativeToCurrentPage = index - (currentPage.range?.firstRowIndex || 0);\n const rowParams = _extends({}, apiRef.current.getRowParams(rowId), {\n isFirstVisible: indexRelativeToCurrentPage === 0,\n isLastVisible: indexRelativeToCurrentPage === currentPage.rows.length - 1,\n indexRelativeToCurrentPage\n });\n rowClassNames.push(rootProps.getRowClassName(rowParams));\n }\n const getCell = (column, indexInSection, indexRelativeToAllColumns, sectionLength, pinnedPosition = PinnedPosition.NONE) => {\n const cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, indexRelativeToAllColumns);\n if (cellColSpanInfo?.spannedByColSpan) {\n return null;\n }\n const width = cellColSpanInfo?.cellProps.width ?? column.computedWidth;\n const colSpan = cellColSpanInfo?.cellProps.colSpan ?? 1;\n const pinnedOffset = getPinnedCellOffset(gridPinnedColumnPositionLookup[pinnedPosition], column.computedWidth, indexRelativeToAllColumns, columnPositions, dimensions);\n if (rowNode?.type === 'skeletonRow') {\n return /*#__PURE__*/_jsx(slots.skeletonCell, {\n type: column.type,\n width: width,\n height: rowHeight,\n field: column.field,\n align: column.align\n }, column.field);\n }\n const editCellState = editRowsState[rowId]?.[column.field] ?? null;\n\n // when the cell is a reorder cell we are not allowing to reorder the col\n // fixes https://github.com/mui/mui-x/issues/11126\n const isReorderCell = column.field === '__reorder__';\n const isEditingRows = Object.keys(editRowsState).length > 0;\n const canReorderColumn = !(disableColumnReorder || column.disableReorder);\n const canReorderRow = rowReordering && !sortModel.length && treeDepth <= 1 && !isEditingRows;\n const disableDragEvents = !(canReorderColumn || isReorderCell && canReorderRow);\n const cellIsNotVisible = pinnedPosition === PinnedPosition.VIRTUAL;\n return /*#__PURE__*/_jsx(slots.cell, _extends({\n column: column,\n width: width,\n rowId: rowId,\n align: column.align || 'left',\n colIndex: indexRelativeToAllColumns,\n colSpan: colSpan,\n disableDragEvents: disableDragEvents,\n editCellState: editCellState,\n isNotVisible: cellIsNotVisible,\n pinnedOffset: pinnedOffset,\n pinnedPosition: pinnedPosition,\n sectionIndex: indexInSection,\n sectionLength: sectionLength,\n gridHasFiller: gridHasFiller\n }, slotProps?.cell), column.field);\n };\n\n /* Start of rendering */\n\n if (!rowNode) {\n return null;\n }\n const leftCells = pinnedColumns.left.map((column, i) => {\n const indexRelativeToAllColumns = i;\n return getCell(column, i, indexRelativeToAllColumns, pinnedColumns.left.length, PinnedPosition.LEFT);\n });\n const rightCells = pinnedColumns.right.map((column, i) => {\n const indexRelativeToAllColumns = visibleColumns.length - pinnedColumns.right.length + i;\n return getCell(column, i, indexRelativeToAllColumns, pinnedColumns.right.length, PinnedPosition.RIGHT);\n });\n const middleColumnsLength = visibleColumns.length - pinnedColumns.left.length - pinnedColumns.right.length;\n const cells = [];\n if (hasVirtualFocusCellLeft) {\n cells.push(getCell(visibleColumns[focusedColumnIndex], focusedColumnIndex - pinnedColumns.left.length, focusedColumnIndex, middleColumnsLength, PinnedPosition.VIRTUAL));\n }\n let firstColumnIndex;\n let lastColumnIndex;\n if (!rootProps.disableVirtualization && !hasColumnVirtualization) {\n firstColumnIndex = 0;\n lastColumnIndex = visibleColumns.length;\n } else {\n firstColumnIndex = renderContext.firstColumnIndex;\n lastColumnIndex = renderContext.lastColumnIndex;\n }\n for (let i = firstColumnIndex; i < lastColumnIndex; i += 1) {\n const column = visibleColumns[i];\n const indexInSection = i - pinnedColumns.left.length;\n if (!column) {\n continue;\n }\n cells.push(getCell(column, indexInSection, i, middleColumnsLength));\n }\n if (hasVirtualFocusCellRight) {\n cells.push(getCell(visibleColumns[focusedColumnIndex], focusedColumnIndex - pinnedColumns.left.length, focusedColumnIndex, middleColumnsLength, PinnedPosition.VIRTUAL));\n }\n const eventHandlers = row ? {\n onClick: publishClick,\n onDoubleClick: publish('rowDoubleClick', onDoubleClick),\n onMouseEnter: publish('rowMouseEnter', onMouseEnter),\n onMouseLeave: publish('rowMouseLeave', onMouseLeave),\n onMouseOut: publish('rowMouseOut', onMouseOut),\n onMouseOver: publish('rowMouseOver', onMouseOver)\n } : null;\n const expandedWidth = dimensions.viewportOuterSize.width - dimensions.columnsTotalWidth - scrollbarWidth;\n const emptyCellWidth = Math.max(0, expandedWidth);\n return /*#__PURE__*/_jsxs(\"div\", _extends({\n \"data-id\": rowId,\n \"data-rowindex\": index,\n role: \"row\",\n className: clsx(...rowClassNames, classes.root, className),\n style: style\n }, ariaAttributes, eventHandlers, other, {\n ref: handleRef,\n children: [leftCells, /*#__PURE__*/_jsx(\"div\", {\n role: \"presentation\",\n className: gridClasses.cellOffsetLeft,\n style: {\n width: offsetLeft\n }\n }), cells, emptyCellWidth > 0 && /*#__PURE__*/_jsx(EmptyCell, {\n width: emptyCellWidth\n }), rightCells.length > 0 && /*#__PURE__*/_jsx(\"div\", {\n role: \"presentation\",\n className: gridClasses.filler\n }), rightCells, scrollbarWidth !== 0 && /*#__PURE__*/_jsx(ScrollbarFiller, {\n pinnedRight: pinnedColumns.right.length > 0\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridRow.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n dimensions: PropTypes.shape({\n bottomContainerHeight: PropTypes.number.isRequired,\n columnsTotalWidth: PropTypes.number.isRequired,\n contentSize: PropTypes.shape({\n height: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired\n }).isRequired,\n groupHeaderHeight: PropTypes.number.isRequired,\n hasScrollX: PropTypes.bool.isRequired,\n hasScrollY: PropTypes.bool.isRequired,\n headerFilterHeight: PropTypes.number.isRequired,\n headerHeight: PropTypes.number.isRequired,\n headersTotalHeight: PropTypes.number.isRequired,\n isReady: PropTypes.bool.isRequired,\n leftPinnedWidth: PropTypes.number.isRequired,\n minimumSize: PropTypes.shape({\n height: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired\n }).isRequired,\n rightPinnedWidth: PropTypes.number.isRequired,\n root: PropTypes.shape({\n height: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired\n }).isRequired,\n rowHeight: PropTypes.number.isRequired,\n rowWidth: PropTypes.number.isRequired,\n scrollbarSize: PropTypes.number.isRequired,\n topContainerHeight: PropTypes.number.isRequired,\n viewportInnerSize: PropTypes.shape({\n height: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired\n }).isRequired,\n viewportOuterSize: PropTypes.shape({\n height: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired\n }).isRequired\n }).isRequired,\n /**\n * Determines which cell has focus.\n * If `null`, no cell in this row has focus.\n */\n focusedColumnIndex: PropTypes.number,\n /**\n * Index of the row in the whole sorted and filtered dataset.\n * If some rows above have expanded children, this index also take those children into account.\n */\n index: PropTypes.number.isRequired,\n isFirstVisible: PropTypes.bool.isRequired,\n isLastVisible: PropTypes.bool.isRequired,\n isNotVisible: PropTypes.bool.isRequired,\n offsetLeft: PropTypes.number.isRequired,\n offsetTop: PropTypes.number,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n pinnedColumns: PropTypes.object.isRequired,\n renderContext: PropTypes.shape({\n firstColumnIndex: PropTypes.number.isRequired,\n firstRowIndex: PropTypes.number.isRequired,\n lastColumnIndex: PropTypes.number.isRequired,\n lastRowIndex: PropTypes.number.isRequired\n }).isRequired,\n row: PropTypes.object.isRequired,\n rowHeight: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]).isRequired,\n rowId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n selected: PropTypes.bool.isRequired,\n showBottomBorder: PropTypes.bool.isRequired,\n /**\n * Determines which cell should be tabbable by having tabIndex=0.\n * If `null`, no cell in this row is in the tab sequence.\n */\n tabbableCell: PropTypes.string,\n visibleColumns: PropTypes.arrayOf(PropTypes.object).isRequired\n} : void 0;\nconst MemoizedGridRow = fastMemo(GridRow);\nexport { MemoizedGridRow as GridRow };","import { unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { getDataGridUtilityClass } from \"../constants/gridClasses.js\";\nexport function composeGridClasses(classes, slots) {\n return composeClasses(slots, getDataGridUtilityClass, classes);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n open\n } = ownerState;\n const slots = {\n root: ['menuIcon', open && 'menuOpen'],\n button: ['menuIconButton']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nexport const ColumnHeaderMenuIcon = /*#__PURE__*/React.memo(props => {\n const {\n colDef,\n open,\n columnMenuId,\n columnMenuButtonId,\n iconButtonRef\n } = props;\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const ownerState = _extends({}, props, {\n classes: rootProps.classes\n });\n const classes = useUtilityClasses(ownerState);\n const handleMenuIconClick = React.useCallback(event => {\n event.preventDefault();\n event.stopPropagation();\n apiRef.current.toggleColumnMenu(colDef.field);\n }, [apiRef, colDef.field]);\n return /*#__PURE__*/_jsx(\"div\", {\n className: classes.root,\n children: /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({\n title: apiRef.current.getLocaleText('columnMenuLabel'),\n enterDelay: 1000\n }, rootProps.slotProps?.baseTooltip, {\n children: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({\n ref: iconButtonRef,\n tabIndex: -1,\n className: classes.button,\n \"aria-label\": apiRef.current.getLocaleText('columnMenuLabel'),\n size: \"small\",\n onClick: handleMenuIconClick,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n \"aria-controls\": open ? columnMenuId : undefined,\n id: columnMenuButtonId\n }, rootProps.slotProps?.baseIconButton, {\n children: /*#__PURE__*/_jsx(rootProps.slots.columnMenuIcon, {\n fontSize: \"inherit\"\n })\n }))\n }))\n });\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useEventCallback as useEventCallback, HTMLElementType } from '@mui/utils';\nimport { useGridApiContext } from \"../../../hooks/utils/useGridApiContext.js\";\nimport { GridMenu } from \"../GridMenu.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction GridColumnHeaderMenu({\n columnMenuId,\n columnMenuButtonId,\n ContentComponent,\n contentComponentProps,\n field,\n open,\n target,\n onExited\n}) {\n const apiRef = useGridApiContext();\n const colDef = apiRef.current.getColumn(field);\n const hideMenu = useEventCallback(event => {\n if (event) {\n // Prevent triggering the sorting\n event.stopPropagation();\n if (target?.contains(event.target)) {\n return;\n }\n }\n apiRef.current.hideColumnMenu();\n });\n if (!target || !colDef) {\n return null;\n }\n return /*#__PURE__*/_jsx(GridMenu, {\n placement: `bottom-${colDef.align === 'right' ? 'start' : 'end'}`,\n open: open,\n target: target,\n onClose: hideMenu,\n onExited: onExited,\n children: /*#__PURE__*/_jsx(ContentComponent, _extends({\n colDef: colDef,\n hideMenu: hideMenu,\n open: open,\n id: columnMenuId,\n labelledby: columnMenuButtonId\n }, contentComponentProps))\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GridColumnHeaderMenu.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n columnMenuButtonId: PropTypes.string,\n columnMenuId: PropTypes.string,\n ContentComponent: PropTypes.elementType.isRequired,\n contentComponentProps: PropTypes.any,\n field: PropTypes.string.isRequired,\n onExited: PropTypes.func,\n open: PropTypes.bool.isRequired,\n target: HTMLElementType\n} : void 0;\nexport { GridColumnHeaderMenu };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"aria-label\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from '@mui/system';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { isOverflown } from \"../../utils/domUtils.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['columnHeaderTitle']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridColumnHeaderTitleRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'ColumnHeaderTitle',\n overridesResolver: (props, styles) => styles.columnHeaderTitle\n})({\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n fontWeight: 'var(--unstable_DataGrid-headWeight)',\n lineHeight: 'normal'\n});\nconst ColumnHeaderInnerTitle = forwardRef(function ColumnHeaderInnerTitle(props, ref) {\n // Tooltip adds aria-label to the props, which is not needed since the children prop is a string\n // See https://github.com/mui/mui-x/pull/14482\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rootProps = useGridRootProps();\n const classes = useUtilityClasses(rootProps);\n return /*#__PURE__*/_jsx(GridColumnHeaderTitleRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: rootProps\n }, other, {\n ref: ref\n }));\n});\n// No React.memo here as if we display the sort icon, we need to recalculate the isOver\nfunction GridColumnHeaderTitle(props) {\n const {\n label,\n description\n } = props;\n const rootProps = useGridRootProps();\n const titleRef = React.useRef(null);\n const [tooltip, setTooltip] = React.useState('');\n const handleMouseOver = React.useCallback(() => {\n if (!description && titleRef?.current) {\n const isOver = isOverflown(titleRef.current);\n if (isOver) {\n setTooltip(label);\n } else {\n setTooltip('');\n }\n }\n }, [description, label]);\n return /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({\n title: description || tooltip\n }, rootProps.slotProps?.baseTooltip, {\n children: /*#__PURE__*/_jsx(ColumnHeaderInnerTitle, {\n onMouseOver: handleMouseOver,\n ref: titleRef,\n children: label\n })\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridColumnHeaderTitle.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n columnWidth: PropTypes.number.isRequired,\n description: PropTypes.node,\n label: PropTypes.string.isRequired\n} : void 0;\nexport { GridColumnHeaderTitle };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"resizable\", \"resizing\", \"height\", \"side\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses, unstable_capitalize as capitalize } from '@mui/utils';\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar GridColumnHeaderSeparatorSides = /*#__PURE__*/function (GridColumnHeaderSeparatorSides) {\n GridColumnHeaderSeparatorSides[\"Left\"] = \"left\";\n GridColumnHeaderSeparatorSides[\"Right\"] = \"right\";\n return GridColumnHeaderSeparatorSides;\n}(GridColumnHeaderSeparatorSides || {});\nconst useUtilityClasses = ownerState => {\n const {\n resizable,\n resizing,\n classes,\n side\n } = ownerState;\n const slots = {\n root: ['columnSeparator', resizable && 'columnSeparator--resizable', resizing && 'columnSeparator--resizing', side && `columnSeparator--side${capitalize(side)}`],\n icon: ['iconSeparator']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nfunction GridColumnHeaderSeparatorRaw(props) {\n const {\n height,\n side = GridColumnHeaderSeparatorSides.Right\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rootProps = useGridRootProps();\n const ownerState = _extends({}, props, {\n side,\n classes: rootProps.classes\n });\n const classes = useUtilityClasses(ownerState);\n const stopClick = React.useCallback(event => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n _jsx(\"div\", _extends({\n className: classes.root,\n style: {\n minHeight: height\n }\n }, other, {\n onClick: stopClick,\n children: /*#__PURE__*/_jsx(rootProps.slots.columnResizeIcon, {\n className: classes.icon\n })\n }))\n );\n}\nconst GridColumnHeaderSeparator = /*#__PURE__*/React.memo(GridColumnHeaderSeparatorRaw);\nprocess.env.NODE_ENV !== \"production\" ? GridColumnHeaderSeparatorRaw.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n height: PropTypes.number.isRequired,\n resizable: PropTypes.bool.isRequired,\n resizing: PropTypes.bool.isRequired,\n side: PropTypes.oneOf(['left', 'right'])\n} : void 0;\nexport { GridColumnHeaderSeparator, GridColumnHeaderSeparatorSides };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"classes\", \"columnMenuOpen\", \"colIndex\", \"height\", \"isResizing\", \"sortDirection\", \"hasFocus\", \"tabIndex\", \"separatorSide\", \"isDraggable\", \"headerComponent\", \"description\", \"elementId\", \"width\", \"columnMenuIconButton\", \"columnMenu\", \"columnTitleIconButtons\", \"headerClassName\", \"label\", \"resizable\", \"draggableContainerProps\", \"columnHeaderSeparatorProps\", \"style\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridPrivateApiContext } from \"../../hooks/utils/useGridPrivateApiContext.js\";\nimport { GridColumnHeaderTitle } from \"./GridColumnHeaderTitle.js\";\nimport { GridColumnHeaderSeparator } from \"./GridColumnHeaderSeparator.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst GridGenericColumnHeaderItem = forwardRef(function GridGenericColumnHeaderItem(props, ref) {\n const {\n classes,\n colIndex,\n height,\n isResizing,\n sortDirection,\n hasFocus,\n tabIndex,\n separatorSide,\n isDraggable,\n headerComponent,\n description,\n width,\n columnMenuIconButton = null,\n columnMenu = null,\n columnTitleIconButtons = null,\n headerClassName,\n label,\n resizable,\n draggableContainerProps,\n columnHeaderSeparatorProps,\n style\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const apiRef = useGridPrivateApiContext();\n const rootProps = useGridRootProps();\n const headerCellRef = React.useRef(null);\n const handleRef = useForkRef(headerCellRef, ref);\n let ariaSort = 'none';\n if (sortDirection != null) {\n ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';\n }\n React.useLayoutEffect(() => {\n const columnMenuState = apiRef.current.state.columnMenu;\n if (hasFocus && !columnMenuState.open) {\n const focusableElement = headerCellRef.current.querySelector('[tabindex=\"0\"]');\n const elementToFocus = focusableElement || headerCellRef.current;\n elementToFocus?.focus();\n if (apiRef.current.columnHeadersContainerRef?.current) {\n apiRef.current.columnHeadersContainerRef.current.scrollLeft = 0;\n }\n }\n }, [apiRef, hasFocus]);\n return /*#__PURE__*/_jsxs(\"div\", _extends({\n className: clsx(classes.root, headerClassName),\n style: _extends({}, style, {\n height,\n width\n }),\n role: \"columnheader\",\n tabIndex: tabIndex,\n \"aria-colindex\": colIndex + 1,\n \"aria-sort\": ariaSort\n }, other, {\n ref: handleRef,\n children: [/*#__PURE__*/_jsxs(\"div\", _extends({\n className: classes.draggableContainer,\n draggable: isDraggable,\n role: \"presentation\"\n }, draggableContainerProps, {\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: classes.titleContainer,\n role: \"presentation\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: classes.titleContainerContent,\n children: headerComponent !== undefined ? headerComponent : /*#__PURE__*/_jsx(GridColumnHeaderTitle, {\n label: label,\n description: description,\n columnWidth: width\n })\n }), columnTitleIconButtons]\n }), columnMenuIconButton]\n })), /*#__PURE__*/_jsx(GridColumnHeaderSeparator, _extends({\n resizable: !rootProps.disableColumnResize && !!resizable,\n resizing: isResizing,\n height: height,\n side: separatorSide\n }, columnHeaderSeparatorProps)), columnMenu]\n }));\n});\nexport { GridGenericColumnHeaderItem };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses, unstable_useId as useId } from '@mui/utils';\nimport { fastMemo } from '@mui/x-internals/fastMemo';\nimport { useGridPrivateApiContext } from \"../../hooks/utils/useGridPrivateApiContext.js\";\nimport { ColumnHeaderMenuIcon } from \"./ColumnHeaderMenuIcon.js\";\nimport { GridColumnHeaderMenu } from \"../menu/columnMenu/GridColumnHeaderMenu.js\";\nimport { gridClasses, getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { GridGenericColumnHeaderItem } from \"./GridGenericColumnHeaderItem.js\";\nimport { isEventTargetInPortal } from \"../../utils/domUtils.js\";\nimport { shouldCellShowLeftBorder, shouldCellShowRightBorder } from \"../../utils/cellBorderUtils.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n colDef,\n classes,\n isDragging,\n sortDirection,\n showRightBorder,\n showLeftBorder,\n filterItemsCounter,\n pinnedPosition,\n isLastUnpinned,\n isSiblingFocused\n } = ownerState;\n const isColumnSorted = sortDirection != null;\n const isColumnFiltered = filterItemsCounter != null && filterItemsCounter > 0;\n // todo refactor to a prop on col isNumeric or ?? ie: coltype===price wont work\n const isColumnNumeric = colDef.type === 'number';\n const slots = {\n root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight',\n // TODO: Remove classes below and restore `:has` selectors when they are supported in jsdom\n // See https://github.com/mui/mui-x/pull/14559\n isLastUnpinned && 'columnHeader--lastUnpinned', isSiblingFocused && 'columnHeader--siblingFocused'],\n draggableContainer: ['columnHeaderDraggableContainer'],\n titleContainer: ['columnHeaderTitleContainer'],\n titleContainerContent: ['columnHeaderTitleContainerContent']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nfunction GridColumnHeaderItem(props) {\n const {\n colDef,\n columnMenuOpen,\n colIndex,\n headerHeight,\n isResizing,\n isLast,\n sortDirection,\n sortIndex,\n filterItemsCounter,\n hasFocus,\n tabIndex,\n disableReorder,\n separatorSide,\n style,\n pinnedPosition,\n indexInSection,\n sectionLength,\n gridHasFiller\n } = props;\n const apiRef = useGridPrivateApiContext();\n const rootProps = useGridRootProps();\n const headerCellRef = React.useRef(null);\n const columnMenuId = useId();\n const columnMenuButtonId = useId();\n const iconButtonRef = React.useRef(null);\n const [showColumnMenuIcon, setShowColumnMenuIcon] = React.useState(columnMenuOpen);\n const isDraggable = React.useMemo(() => !rootProps.disableColumnReorder && !disableReorder && !colDef.disableReorder, [rootProps.disableColumnReorder, disableReorder, colDef.disableReorder]);\n let headerComponent;\n if (colDef.renderHeader) {\n headerComponent = colDef.renderHeader(apiRef.current.getColumnHeaderParams(colDef.field));\n }\n const showLeftBorder = shouldCellShowLeftBorder(pinnedPosition, indexInSection);\n const showRightBorder = shouldCellShowRightBorder(pinnedPosition, indexInSection, sectionLength, rootProps.showColumnVerticalBorder, gridHasFiller);\n const ownerState = _extends({}, props, {\n classes: rootProps.classes,\n showRightBorder,\n showLeftBorder\n });\n const classes = useUtilityClasses(ownerState);\n const publish = React.useCallback(eventName => event => {\n // Ignore portal\n // See https://github.com/mui/mui-x/issues/1721\n if (isEventTargetInPortal(event)) {\n return;\n }\n apiRef.current.publishEvent(eventName, apiRef.current.getColumnHeaderParams(colDef.field), event);\n }, [apiRef, colDef.field]);\n const mouseEventsHandlers = React.useMemo(() => ({\n onClick: publish('columnHeaderClick'),\n onContextMenu: publish('columnHeaderContextMenu'),\n onDoubleClick: publish('columnHeaderDoubleClick'),\n onMouseOver: publish('columnHeaderOver'),\n // TODO remove as it's not used\n onMouseOut: publish('columnHeaderOut'),\n // TODO remove as it's not used\n onMouseEnter: publish('columnHeaderEnter'),\n // TODO remove as it's not used\n onMouseLeave: publish('columnHeaderLeave'),\n // TODO remove as it's not used\n onKeyDown: publish('columnHeaderKeyDown'),\n onFocus: publish('columnHeaderFocus'),\n onBlur: publish('columnHeaderBlur')\n }), [publish]);\n const draggableEventHandlers = React.useMemo(() => isDraggable ? {\n onDragStart: publish('columnHeaderDragStart'),\n onDragEnter: publish('columnHeaderDragEnter'),\n onDragOver: publish('columnHeaderDragOver'),\n onDragEnd: publish('columnHeaderDragEnd')\n } : {}, [isDraggable, publish]);\n const columnHeaderSeparatorProps = React.useMemo(() => ({\n onMouseDown: publish('columnSeparatorMouseDown'),\n onDoubleClick: publish('columnSeparatorDoubleClick')\n }), [publish]);\n React.useEffect(() => {\n if (!showColumnMenuIcon) {\n setShowColumnMenuIcon(columnMenuOpen);\n }\n }, [showColumnMenuIcon, columnMenuOpen]);\n const handleExited = React.useCallback(() => {\n setShowColumnMenuIcon(false);\n }, []);\n const columnMenuIconButton = !rootProps.disableColumnMenu && !colDef.disableColumnMenu && /*#__PURE__*/_jsx(ColumnHeaderMenuIcon, {\n colDef: colDef,\n columnMenuId: columnMenuId,\n columnMenuButtonId: columnMenuButtonId,\n open: showColumnMenuIcon,\n iconButtonRef: iconButtonRef\n });\n const columnMenu = /*#__PURE__*/_jsx(GridColumnHeaderMenu, {\n columnMenuId: columnMenuId,\n columnMenuButtonId: columnMenuButtonId,\n field: colDef.field,\n open: columnMenuOpen,\n target: iconButtonRef.current,\n ContentComponent: rootProps.slots.columnMenu,\n contentComponentProps: rootProps.slotProps?.columnMenu,\n onExited: handleExited\n });\n const sortingOrder = colDef.sortingOrder ?? rootProps.sortingOrder;\n const showSortIcon = (colDef.sortable || sortDirection != null) && !colDef.hideSortIcons && !rootProps.disableColumnSorting;\n const columnTitleIconButtons = /*#__PURE__*/_jsxs(React.Fragment, {\n children: [!rootProps.disableColumnFilter && /*#__PURE__*/_jsx(rootProps.slots.columnHeaderFilterIconButton, _extends({\n field: colDef.field,\n counter: filterItemsCounter\n }, rootProps.slotProps?.columnHeaderFilterIconButton)), showSortIcon && /*#__PURE__*/_jsx(rootProps.slots.columnHeaderSortIcon, _extends({\n field: colDef.field,\n direction: sortDirection,\n index: sortIndex,\n sortingOrder: sortingOrder,\n disabled: !colDef.sortable\n }, rootProps.slotProps?.columnHeaderSortIcon))]\n });\n React.useLayoutEffect(() => {\n const columnMenuState = apiRef.current.state.columnMenu;\n if (hasFocus && !columnMenuState.open) {\n const focusableElement = headerCellRef.current.querySelector('[tabindex=\"0\"]');\n const elementToFocus = focusableElement || headerCellRef.current;\n elementToFocus?.focus();\n if (apiRef.current.columnHeadersContainerRef?.current) {\n apiRef.current.columnHeadersContainerRef.current.scrollLeft = 0;\n }\n }\n }, [apiRef, hasFocus]);\n const headerClassName = typeof colDef.headerClassName === 'function' ? colDef.headerClassName({\n field: colDef.field,\n colDef\n }) : colDef.headerClassName;\n const label = colDef.headerName ?? colDef.field;\n return /*#__PURE__*/_jsx(GridGenericColumnHeaderItem, _extends({\n ref: headerCellRef,\n classes: classes,\n columnMenuOpen: columnMenuOpen,\n colIndex: colIndex,\n height: headerHeight,\n isResizing: isResizing,\n sortDirection: sortDirection,\n hasFocus: hasFocus,\n tabIndex: tabIndex,\n separatorSide: separatorSide,\n isDraggable: isDraggable,\n headerComponent: headerComponent,\n description: colDef.description,\n elementId: colDef.field,\n width: colDef.computedWidth,\n columnMenuIconButton: columnMenuIconButton,\n columnTitleIconButtons: columnTitleIconButtons,\n headerClassName: clsx(headerClassName, isLast && gridClasses['columnHeader--last']),\n label: label,\n resizable: !rootProps.disableColumnResize && !!colDef.resizable,\n \"data-field\": colDef.field,\n columnMenu: columnMenu,\n draggableContainerProps: draggableEventHandlers,\n columnHeaderSeparatorProps: columnHeaderSeparatorProps,\n style: style\n }, mouseEventsHandlers));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridColumnHeaderItem.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n colDef: PropTypes.object.isRequired,\n colIndex: PropTypes.number.isRequired,\n columnMenuOpen: PropTypes.bool.isRequired,\n disableReorder: PropTypes.bool,\n filterItemsCounter: PropTypes.number,\n gridHasFiller: PropTypes.bool.isRequired,\n hasFocus: PropTypes.bool,\n headerHeight: PropTypes.number.isRequired,\n indexInSection: PropTypes.number.isRequired,\n isDragging: PropTypes.bool.isRequired,\n isLast: PropTypes.bool.isRequired,\n isLastUnpinned: PropTypes.bool.isRequired,\n isResizing: PropTypes.bool.isRequired,\n isSiblingFocused: PropTypes.bool.isRequired,\n pinnedPosition: PropTypes.oneOf(['left', 'right']),\n sectionLength: PropTypes.number.isRequired,\n separatorSide: PropTypes.oneOf(['left', 'right']),\n sortDirection: PropTypes.oneOf(['asc', 'desc']),\n sortIndex: PropTypes.number,\n style: PropTypes.object,\n tabIndex: PropTypes.oneOf([-1, 0]).isRequired\n} : void 0;\nconst Memoized = fastMemo(GridColumnHeaderItem);\nexport { Memoized as GridColumnHeaderItem };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useId as useId, unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { gridColumnGroupsLookupSelector } from \"../../hooks/features/columnGrouping/gridColumnGroupsSelector.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { useGridSelector } from \"../../hooks/utils/useGridSelector.js\";\nimport { GridGenericColumnHeaderItem } from \"./GridGenericColumnHeaderItem.js\";\nimport { isEventTargetInPortal } from \"../../utils/domUtils.js\";\nimport { shouldCellShowLeftBorder, shouldCellShowRightBorder } from \"../../utils/cellBorderUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n headerAlign,\n isDragging,\n isLastColumn,\n showLeftBorder,\n showRightBorder,\n groupId,\n pinnedPosition\n } = ownerState;\n const slots = {\n root: ['columnHeader', headerAlign === 'left' && 'columnHeader--alignLeft', headerAlign === 'center' && 'columnHeader--alignCenter', headerAlign === 'right' && 'columnHeader--alignRight', isDragging && 'columnHeader--moving', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', 'withBorderColor', groupId === null ? 'columnHeader--emptyGroup' : 'columnHeader--filledGroup', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight', isLastColumn && 'columnHeader--last'],\n draggableContainer: ['columnHeaderDraggableContainer'],\n titleContainer: ['columnHeaderTitleContainer', 'withBorderColor'],\n titleContainerContent: ['columnHeaderTitleContainerContent']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nfunction GridColumnGroupHeader(props) {\n const {\n groupId,\n width,\n depth,\n maxDepth,\n fields,\n height,\n colIndex,\n hasFocus,\n tabIndex,\n isLastColumn,\n pinnedPosition,\n style,\n indexInSection,\n sectionLength,\n gridHasFiller\n } = props;\n const rootProps = useGridRootProps();\n const headerCellRef = React.useRef(null);\n const apiRef = useGridApiContext();\n const columnGroupsLookup = useGridSelector(apiRef, gridColumnGroupsLookupSelector);\n const group = groupId ? columnGroupsLookup[groupId] : {};\n const {\n headerName = groupId ?? '',\n description = '',\n headerAlign = undefined\n } = group;\n let headerComponent;\n const render = groupId && columnGroupsLookup[groupId]?.renderHeaderGroup;\n const renderParams = React.useMemo(() => ({\n groupId,\n headerName,\n description,\n depth,\n maxDepth,\n fields,\n colIndex,\n isLastColumn\n }), [groupId, headerName, description, depth, maxDepth, fields, colIndex, isLastColumn]);\n if (groupId && render) {\n headerComponent = render(renderParams);\n }\n const showLeftBorder = shouldCellShowLeftBorder(pinnedPosition, indexInSection);\n const showRightBorder = shouldCellShowRightBorder(pinnedPosition, indexInSection, sectionLength, rootProps.showColumnVerticalBorder, gridHasFiller);\n const ownerState = _extends({}, props, {\n classes: rootProps.classes,\n showLeftBorder,\n showRightBorder,\n headerAlign,\n depth,\n isDragging: false\n });\n const label = headerName ?? groupId;\n const id = useId();\n const elementId = groupId === null ? `empty-group-cell-${id}` : groupId;\n const classes = useUtilityClasses(ownerState);\n React.useLayoutEffect(() => {\n if (hasFocus) {\n const focusableElement = headerCellRef.current.querySelector('[tabindex=\"0\"]');\n const elementToFocus = focusableElement || headerCellRef.current;\n elementToFocus?.focus();\n }\n }, [apiRef, hasFocus]);\n const publish = React.useCallback(eventName => event => {\n // Ignore portal\n // See https://github.com/mui/mui-x/issues/1721\n if (isEventTargetInPortal(event)) {\n return;\n }\n apiRef.current.publishEvent(eventName, renderParams, event);\n },\n // For now this is stupid, because renderParams change all the time.\n // Need to move it's computation in the api, such that for a given depth+columnField, I can get the group parameters\n [apiRef, renderParams]);\n const mouseEventsHandlers = React.useMemo(() => ({\n onKeyDown: publish('columnGroupHeaderKeyDown'),\n onFocus: publish('columnGroupHeaderFocus'),\n onBlur: publish('columnGroupHeaderBlur')\n }), [publish]);\n const headerClassName = typeof group.headerClassName === 'function' ? group.headerClassName(renderParams) : group.headerClassName;\n return /*#__PURE__*/_jsx(GridGenericColumnHeaderItem, _extends({\n ref: headerCellRef,\n classes: classes,\n columnMenuOpen: false,\n colIndex: colIndex,\n height: height,\n isResizing: false,\n sortDirection: null,\n hasFocus: false,\n tabIndex: tabIndex,\n isDraggable: false,\n headerComponent: headerComponent,\n headerClassName: headerClassName,\n description: description,\n elementId: elementId,\n width: width,\n columnMenuIconButton: null,\n columnTitleIconButtons: null,\n resizable: false,\n label: label,\n \"aria-colspan\": fields.length\n // The fields are wrapped between |-...-| to avoid confusion between fields \"id\" and \"id2\" when using selector data-fields~=\n ,\n \"data-fields\": `|-${fields.join('-|-')}-|`,\n style: style\n }, mouseEventsHandlers));\n}\nexport { GridColumnGroupHeader };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/material/styles';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { useGridSelector } from \"../../utils/index.js\";\nimport { useGridRootProps } from \"../../utils/useGridRootProps.js\";\nimport { useGridPrivateApiContext } from \"../../utils/useGridPrivateApiContext.js\";\nimport { useGridApiEventHandler } from \"../../utils/useGridApiEventHandler.js\";\nimport { GridColumnHeaderItem } from \"../../../components/columnHeaders/GridColumnHeaderItem.js\";\nimport { gridDimensionsSelector } from \"../dimensions/index.js\";\nimport { gridRenderContextColumnsSelector, gridVirtualizationColumnEnabledSelector } from \"../virtualization/index.js\";\nimport { computeOffsetLeft } from \"../virtualization/useGridVirtualScroller.js\";\nimport { GridColumnGroupHeader } from \"../../../components/columnHeaders/GridColumnGroupHeader.js\";\nimport { GridPinnedColumnPosition, gridColumnPositionsSelector, gridVisiblePinnedColumnDefinitionsSelector, gridColumnLookupSelector } from \"../columns/index.js\";\nimport { gridColumnGroupsUnwrappedModelSelector } from \"../columnGrouping/gridColumnGroupsSelector.js\";\nimport { GridScrollbarFillerCell as ScrollbarFiller } from \"../../../components/GridScrollbarFillerCell.js\";\nimport { getPinnedCellOffset } from \"../../../internals/utils/getPinnedCellOffset.js\";\nimport { GridColumnHeaderSeparatorSides } from \"../../../components/columnHeaders/GridColumnHeaderSeparator.js\";\nimport { gridClasses } from \"../../../constants/gridClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const GridColumnHeaderRow = styled('div', {\n name: 'MuiDataGrid',\n slot: 'ColumnHeaderRow',\n overridesResolver: (_, styles) => styles.columnHeaderRow\n})({\n display: 'flex'\n});\nexport const useGridColumnHeaders = props => {\n const {\n visibleColumns,\n sortColumnLookup,\n filterColumnLookup,\n columnHeaderTabIndexState,\n columnGroupHeaderTabIndexState,\n columnHeaderFocus,\n columnGroupHeaderFocus,\n headerGroupingMaxDepth,\n columnMenuState,\n columnVisibility,\n columnGroupsHeaderStructure,\n hasOtherElementInTabSequence\n } = props;\n const [dragCol, setDragCol] = React.useState('');\n const [resizeCol, setResizeCol] = React.useState('');\n const apiRef = useGridPrivateApiContext();\n const isRtl = useRtl();\n const rootProps = useGridRootProps();\n const dimensions = useGridSelector(apiRef, gridDimensionsSelector);\n const hasColumnVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);\n const columnGroupsModel = useGridSelector(apiRef, gridColumnGroupsUnwrappedModelSelector);\n const columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);\n const renderContext = useGridSelector(apiRef, gridRenderContextColumnsSelector);\n const pinnedColumns = useGridSelector(apiRef, gridVisiblePinnedColumnDefinitionsSelector);\n const columnsLookup = useGridSelector(apiRef, gridColumnLookupSelector);\n const offsetLeft = computeOffsetLeft(columnPositions, renderContext, pinnedColumns.left.length);\n const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;\n React.useEffect(() => {\n if (apiRef.current.columnHeadersContainerRef.current) {\n apiRef.current.columnHeadersContainerRef.current.scrollLeft = 0;\n }\n }, [apiRef]);\n const handleColumnResizeStart = React.useCallback(params => setResizeCol(params.field), []);\n const handleColumnResizeStop = React.useCallback(() => setResizeCol(''), []);\n const handleColumnReorderStart = React.useCallback(params => setDragCol(params.field), []);\n const handleColumnReorderStop = React.useCallback(() => setDragCol(''), []);\n const leftRenderContext = React.useMemo(() => {\n return pinnedColumns.left.length ? {\n firstColumnIndex: 0,\n lastColumnIndex: pinnedColumns.left.length\n } : null;\n }, [pinnedColumns.left.length]);\n const rightRenderContext = React.useMemo(() => {\n return pinnedColumns.right.length ? {\n firstColumnIndex: visibleColumns.length - pinnedColumns.right.length,\n lastColumnIndex: visibleColumns.length\n } : null;\n }, [pinnedColumns.right.length, visibleColumns.length]);\n useGridApiEventHandler(apiRef, 'columnResizeStart', handleColumnResizeStart);\n useGridApiEventHandler(apiRef, 'columnResizeStop', handleColumnResizeStop);\n useGridApiEventHandler(apiRef, 'columnHeaderDragStart', handleColumnReorderStart);\n useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', handleColumnReorderStop);\n\n // Helper for computation common between getColumnHeaders and getColumnGroupHeaders\n const getColumnsToRender = params => {\n const {\n renderContext: currentContext = renderContext,\n maxLastColumn = visibleColumns.length\n } = params || {};\n let firstColumnToRender;\n let lastColumnToRender;\n if (!rootProps.disableVirtualization && !hasColumnVirtualization) {\n firstColumnToRender = 0;\n lastColumnToRender = maxLastColumn;\n } else {\n firstColumnToRender = currentContext.firstColumnIndex;\n lastColumnToRender = currentContext.lastColumnIndex;\n }\n const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);\n return {\n renderedColumns,\n firstColumnToRender,\n lastColumnToRender\n };\n };\n const getFillers = (params, children, leftOverflow, borderBottom = false) => {\n const isPinnedRight = params?.position === GridPinnedColumnPosition.RIGHT;\n const isNotPinned = params?.position === undefined;\n const hasScrollbarFiller = pinnedColumns.right.length > 0 && isPinnedRight || pinnedColumns.right.length === 0 && isNotPinned;\n const leftOffsetWidth = offsetLeft - leftOverflow;\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [isNotPinned && /*#__PURE__*/_jsx(\"div\", {\n role: \"presentation\",\n style: {\n width: leftOffsetWidth\n }\n }), children, isNotPinned && /*#__PURE__*/_jsx(\"div\", {\n role: \"presentation\",\n className: clsx(gridClasses.filler, borderBottom && gridClasses['filler--borderBottom'])\n }), hasScrollbarFiller && /*#__PURE__*/_jsx(ScrollbarFiller, {\n header: true,\n pinnedRight: isPinnedRight,\n borderBottom: borderBottom,\n borderTop: false\n })]\n });\n };\n const getCellOffsetStyle = ({\n pinnedPosition,\n columnIndex,\n computedWidth\n }) => {\n let style;\n const isLeftPinned = pinnedPosition === GridPinnedColumnPosition.LEFT;\n const isRightPinned = pinnedPosition === GridPinnedColumnPosition.RIGHT;\n if (isLeftPinned || isRightPinned) {\n const pinnedOffset = getPinnedCellOffset(pinnedPosition, computedWidth, columnIndex, columnPositions, dimensions);\n let side = isLeftPinned ? 'left' : 'right';\n if (isRtl) {\n side = isLeftPinned ? 'right' : 'left';\n }\n if (pinnedPosition === 'left') {\n style = {\n [side]: pinnedOffset\n };\n }\n if (pinnedPosition === 'right') {\n style = {\n [side]: pinnedOffset\n };\n }\n }\n return style;\n };\n const getColumnHeaders = (params, other = {}) => {\n const {\n renderedColumns,\n firstColumnToRender\n } = getColumnsToRender(params);\n const columns = [];\n for (let i = 0; i < renderedColumns.length; i += 1) {\n const colDef = renderedColumns[i];\n const columnIndex = firstColumnToRender + i;\n const isFirstColumn = columnIndex === 0;\n const tabIndex = columnHeaderTabIndexState !== null && columnHeaderTabIndexState.field === colDef.field || isFirstColumn && !hasOtherElementInTabSequence ? 0 : -1;\n const hasFocus = columnHeaderFocus !== null && columnHeaderFocus.field === colDef.field;\n const open = columnMenuState.open && columnMenuState.field === colDef.field;\n const pinnedPosition = params?.position;\n const style = getCellOffsetStyle({\n pinnedPosition,\n columnIndex,\n computedWidth: colDef.computedWidth\n });\n const siblingWithBorderingSeparator = pinnedPosition === GridPinnedColumnPosition.RIGHT ? renderedColumns[i - 1] : renderedColumns[i + 1];\n const isSiblingFocused = siblingWithBorderingSeparator ? columnHeaderFocus !== null && columnHeaderFocus.field === siblingWithBorderingSeparator.field : false;\n const isLastUnpinned = columnIndex + 1 === columnPositions.length - pinnedColumns.right.length;\n columns.push(/*#__PURE__*/_jsx(GridColumnHeaderItem, _extends({}, sortColumnLookup[colDef.field], {\n columnMenuOpen: open,\n filterItemsCounter: filterColumnLookup[colDef.field] && filterColumnLookup[colDef.field].length,\n headerHeight: dimensions.headerHeight,\n isDragging: colDef.field === dragCol,\n colDef: colDef,\n colIndex: columnIndex,\n isResizing: resizeCol === colDef.field,\n isLast: columnIndex === columnPositions.length - 1,\n hasFocus: hasFocus,\n tabIndex: tabIndex,\n pinnedPosition: pinnedPosition,\n style: style,\n indexInSection: i,\n sectionLength: renderedColumns.length,\n gridHasFiller: gridHasFiller,\n isLastUnpinned: isLastUnpinned,\n isSiblingFocused: isSiblingFocused\n }, other), colDef.field));\n }\n return getFillers(params, columns, 0);\n };\n const getColumnHeadersRow = () => {\n return /*#__PURE__*/_jsxs(GridColumnHeaderRow, {\n role: \"row\",\n \"aria-rowindex\": headerGroupingMaxDepth + 1,\n ownerState: rootProps,\n className: gridClasses['row--borderBottom'],\n children: [leftRenderContext && getColumnHeaders({\n position: GridPinnedColumnPosition.LEFT,\n renderContext: leftRenderContext,\n maxLastColumn: leftRenderContext.lastColumnIndex\n }, {\n disableReorder: true\n }), getColumnHeaders({\n renderContext,\n maxLastColumn: visibleColumns.length - pinnedColumns.right.length\n }), rightRenderContext && getColumnHeaders({\n position: GridPinnedColumnPosition.RIGHT,\n renderContext: rightRenderContext,\n maxLastColumn: rightRenderContext.lastColumnIndex\n }, {\n disableReorder: true,\n separatorSide: GridColumnHeaderSeparatorSides.Left\n })]\n });\n };\n const getColumnGroupHeaders = ({\n depth,\n params\n }) => {\n const columnsToRender = getColumnsToRender(params);\n if (columnsToRender.renderedColumns.length === 0) {\n return null;\n }\n const {\n firstColumnToRender,\n lastColumnToRender\n } = columnsToRender;\n const rowStructure = columnGroupsHeaderStructure[depth];\n const firstColumnFieldToRender = visibleColumns[firstColumnToRender].field;\n const firstGroupToRender = columnGroupsModel[firstColumnFieldToRender]?.[depth] ?? null;\n const firstGroupIndex = rowStructure.findIndex(({\n groupId,\n columnFields\n }) => groupId === firstGroupToRender && columnFields.includes(firstColumnFieldToRender));\n const lastColumnFieldToRender = visibleColumns[lastColumnToRender - 1].field;\n const lastGroupToRender = columnGroupsModel[lastColumnFieldToRender]?.[depth] ?? null;\n const lastGroupIndex = rowStructure.findIndex(({\n groupId,\n columnFields\n }) => groupId === lastGroupToRender && columnFields.includes(lastColumnFieldToRender));\n const visibleColumnGroupHeader = rowStructure.slice(firstGroupIndex, lastGroupIndex + 1).map(groupStructure => {\n return _extends({}, groupStructure, {\n columnFields: groupStructure.columnFields.filter(field => columnVisibility[field] !== false)\n });\n }).filter(groupStructure => groupStructure.columnFields.length > 0);\n const firstVisibleColumnIndex = visibleColumnGroupHeader[0].columnFields.indexOf(firstColumnFieldToRender);\n const hiddenGroupColumns = visibleColumnGroupHeader[0].columnFields.slice(0, firstVisibleColumnIndex);\n const leftOverflow = hiddenGroupColumns.reduce((acc, field) => {\n const column = columnsLookup[field];\n return acc + (column.computedWidth ?? 0);\n }, 0);\n let columnIndex = firstColumnToRender;\n const children = visibleColumnGroupHeader.map(({\n groupId,\n columnFields\n }, index) => {\n const hasFocus = columnGroupHeaderFocus !== null && columnGroupHeaderFocus.depth === depth && columnFields.includes(columnGroupHeaderFocus.field);\n const tabIndex = columnGroupHeaderTabIndexState !== null && columnGroupHeaderTabIndexState.depth === depth && columnFields.includes(columnGroupHeaderTabIndexState.field) ? 0 : -1;\n const headerInfo = {\n groupId,\n width: columnFields.reduce((acc, field) => acc + columnsLookup[field].computedWidth, 0),\n fields: columnFields,\n colIndex: columnIndex,\n hasFocus,\n tabIndex\n };\n const pinnedPosition = params.position;\n const style = getCellOffsetStyle({\n pinnedPosition,\n columnIndex,\n computedWidth: headerInfo.width\n });\n columnIndex += columnFields.length;\n let indexInSection = index;\n if (pinnedPosition === 'left') {\n // Group headers can expand to multiple columns, we need to adjust the index\n indexInSection = columnIndex - 1;\n }\n return /*#__PURE__*/_jsx(GridColumnGroupHeader, {\n groupId: groupId,\n width: headerInfo.width,\n fields: headerInfo.fields,\n colIndex: headerInfo.colIndex,\n depth: depth,\n isLastColumn: index === visibleColumnGroupHeader.length - 1,\n maxDepth: headerGroupingMaxDepth,\n height: dimensions.groupHeaderHeight,\n hasFocus: hasFocus,\n tabIndex: tabIndex,\n pinnedPosition: pinnedPosition,\n style: style,\n indexInSection: indexInSection,\n sectionLength: visibleColumnGroupHeader.length,\n gridHasFiller: gridHasFiller\n }, index);\n });\n return getFillers(params, children, leftOverflow);\n };\n const getColumnGroupHeadersRows = () => {\n if (headerGroupingMaxDepth === 0) {\n return null;\n }\n const headerRows = [];\n for (let depth = 0; depth < headerGroupingMaxDepth; depth += 1) {\n headerRows.push(/*#__PURE__*/_jsxs(GridColumnHeaderRow, {\n role: \"row\",\n \"aria-rowindex\": depth + 1,\n ownerState: rootProps,\n children: [leftRenderContext && getColumnGroupHeaders({\n depth,\n params: {\n position: GridPinnedColumnPosition.LEFT,\n renderContext: leftRenderContext,\n maxLastColumn: leftRenderContext.lastColumnIndex\n }\n }), getColumnGroupHeaders({\n depth,\n params: {\n renderContext\n }\n }), rightRenderContext && getColumnGroupHeaders({\n depth,\n params: {\n position: GridPinnedColumnPosition.RIGHT,\n renderContext: rightRenderContext,\n maxLastColumn: rightRenderContext.lastColumnIndex\n }\n })]\n }, depth));\n }\n return headerRows;\n };\n return {\n renderContext,\n leftRenderContext,\n rightRenderContext,\n pinnedColumns,\n visibleColumns,\n getCellOffsetStyle,\n getFillers,\n getColumnHeadersRow,\n getColumnsToRender,\n getColumnGroupHeadersRows,\n isDragging: !!dragCol,\n getInnerProps: () => ({\n role: 'rowgroup'\n })\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from '@mui/system';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['columnHeaders']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nconst GridColumnHeadersRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'ColumnHeaders',\n overridesResolver: (props, styles) => styles.columnHeaders\n})({\n display: 'flex',\n flexDirection: 'column',\n borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',\n borderTopRightRadius: 'var(--unstable_DataGrid-radius)'\n});\nexport const GridBaseColumnHeaders = forwardRef(function GridColumnHeaders(props, ref) {\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rootProps = useGridRootProps();\n const classes = useUtilityClasses(rootProps);\n return /*#__PURE__*/_jsx(GridColumnHeadersRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: rootProps\n }, other, {\n role: \"presentation\",\n ref: ref\n }));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"visibleColumns\", \"sortColumnLookup\", \"filterColumnLookup\", \"columnHeaderTabIndexState\", \"columnGroupHeaderTabIndexState\", \"columnHeaderFocus\", \"columnGroupHeaderFocus\", \"headerGroupingMaxDepth\", \"columnMenuState\", \"columnVisibility\", \"columnGroupsHeaderStructure\", \"hasOtherElementInTabSequence\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { fastMemo } from '@mui/x-internals/fastMemo';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridColumnHeaders } from \"../hooks/features/columnHeaders/useGridColumnHeaders.js\";\nimport { GridBaseColumnHeaders } from \"./columnHeaders/GridBaseColumnHeaders.js\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst GridColumnHeaders = forwardRef(function GridColumnHeaders(props, ref) {\n const {\n visibleColumns,\n sortColumnLookup,\n filterColumnLookup,\n columnHeaderTabIndexState,\n columnGroupHeaderTabIndexState,\n columnHeaderFocus,\n columnGroupHeaderFocus,\n headerGroupingMaxDepth,\n columnMenuState,\n columnVisibility,\n columnGroupsHeaderStructure,\n hasOtherElementInTabSequence\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n getInnerProps,\n getColumnHeadersRow,\n getColumnGroupHeadersRows\n } = useGridColumnHeaders({\n visibleColumns,\n sortColumnLookup,\n filterColumnLookup,\n columnHeaderTabIndexState,\n columnGroupHeaderTabIndexState,\n columnHeaderFocus,\n columnGroupHeaderFocus,\n headerGroupingMaxDepth,\n columnMenuState,\n columnVisibility,\n columnGroupsHeaderStructure,\n hasOtherElementInTabSequence\n });\n return /*#__PURE__*/_jsxs(GridBaseColumnHeaders, _extends({}, other, getInnerProps(), {\n ref: ref,\n children: [getColumnGroupHeadersRows(), getColumnHeadersRow()]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridColumnHeaders.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n columnGroupHeaderFocus: PropTypes.shape({\n depth: PropTypes.number.isRequired,\n field: PropTypes.string.isRequired\n }),\n columnGroupHeaderTabIndexState: PropTypes.shape({\n depth: PropTypes.number.isRequired,\n field: PropTypes.string.isRequired\n }),\n columnGroupsHeaderStructure: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.shape({\n columnFields: PropTypes.arrayOf(PropTypes.string).isRequired,\n groupId: PropTypes.string\n }))).isRequired,\n columnHeaderFocus: PropTypes.shape({\n field: PropTypes.string.isRequired\n }),\n columnHeaderTabIndexState: PropTypes.shape({\n field: PropTypes.string.isRequired\n }),\n columnMenuState: PropTypes.shape({\n field: PropTypes.string,\n open: PropTypes.bool.isRequired\n }).isRequired,\n columnVisibility: PropTypes.object.isRequired,\n filterColumnLookup: PropTypes.object.isRequired,\n hasOtherElementInTabSequence: PropTypes.bool.isRequired,\n headerGroupingMaxDepth: PropTypes.number.isRequired,\n sortColumnLookup: PropTypes.object.isRequired,\n visibleColumns: PropTypes.arrayOf(PropTypes.object).isRequired\n} : void 0;\nconst MemoizedGridColumnHeaders = fastMemo(GridColumnHeaders);\nexport { MemoizedGridColumnHeaders as GridColumnHeaders };","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"displayOrder\"];\nimport * as React from 'react';\nimport { useGridRootProps } from \"../../utils/useGridRootProps.js\";\nimport { useGridPrivateApiContext } from \"../../utils/useGridPrivateApiContext.js\";\nconst useGridColumnMenuSlots = props => {\n const apiRef = useGridPrivateApiContext();\n const rootProps = useGridRootProps();\n const {\n defaultSlots,\n defaultSlotProps,\n slots = {},\n slotProps = {},\n hideMenu,\n colDef,\n addDividers = true\n } = props;\n const processedComponents = React.useMemo(() => _extends({}, defaultSlots, slots), [defaultSlots, slots]);\n const processedSlotProps = React.useMemo(() => {\n if (!slotProps || Object.keys(slotProps).length === 0) {\n return defaultSlotProps;\n }\n const mergedProps = _extends({}, slotProps);\n Object.entries(defaultSlotProps).forEach(([key, currentSlotProps]) => {\n mergedProps[key] = _extends({}, currentSlotProps, slotProps[key] || {});\n });\n return mergedProps;\n }, [defaultSlotProps, slotProps]);\n const defaultItems = apiRef.current.unstable_applyPipeProcessors('columnMenu', [], props.colDef);\n const userItems = React.useMemo(() => {\n const defaultComponentKeys = Object.keys(defaultSlots);\n return Object.keys(slots).filter(key => !defaultComponentKeys.includes(key));\n }, [slots, defaultSlots]);\n return React.useMemo(() => {\n const uniqueItems = Array.from(new Set([...defaultItems, ...userItems]));\n const cleansedItems = uniqueItems.filter(key => processedComponents[key] != null);\n const sorted = cleansedItems.sort((a, b) => {\n const leftItemProps = processedSlotProps[a];\n const rightItemProps = processedSlotProps[b];\n const leftDisplayOrder = Number.isFinite(leftItemProps?.displayOrder) ? leftItemProps.displayOrder : 100;\n const rightDisplayOrder = Number.isFinite(rightItemProps?.displayOrder) ? rightItemProps.displayOrder : 100;\n return leftDisplayOrder - rightDisplayOrder;\n });\n return sorted.reduce((acc, key, index) => {\n let itemProps = {\n colDef,\n onClick: hideMenu\n };\n const processedComponentProps = processedSlotProps[key];\n if (processedComponentProps) {\n const customProps = _objectWithoutPropertiesLoose(processedComponentProps, _excluded);\n itemProps = _extends({}, itemProps, customProps);\n }\n return addDividers && index !== sorted.length - 1 ? [...acc, [processedComponents[key], itemProps], [rootProps.slots.baseDivider, {}]] : [...acc, [processedComponents[key], itemProps]];\n }, []);\n }, [addDividers, colDef, defaultItems, hideMenu, processedComponents, processedSlotProps, userItems, rootProps.slots.baseDivider]);\n};\nexport { useGridColumnMenuSlots };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"hideMenu\", \"colDef\", \"id\", \"labelledby\", \"className\", \"children\", \"open\"];\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport MenuList from '@mui/material/MenuList';\nimport { styled } from '@mui/material/styles';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { isHideMenuKey } from \"../../../utils/keyboardUtils.js\";\nimport { gridClasses } from \"../../../constants/gridClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst StyledMenuList = styled(MenuList)(() => ({\n minWidth: 248\n}));\nconst GridColumnMenuContainer = forwardRef(function GridColumnMenuContainer(props, ref) {\n const {\n hideMenu,\n id,\n labelledby,\n className,\n children,\n open\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const handleListKeyDown = React.useCallback(event => {\n if (event.key === 'Tab') {\n event.preventDefault();\n }\n if (isHideMenuKey(event.key)) {\n hideMenu(event);\n }\n }, [hideMenu]);\n return /*#__PURE__*/_jsx(StyledMenuList, _extends({\n id: id,\n className: clsx(gridClasses.menuList, className),\n \"aria-labelledby\": labelledby,\n onKeyDown: handleListKeyDown,\n autoFocus: open\n }, other, {\n ref: ref,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridColumnMenuContainer.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n colDef: PropTypes.object.isRequired,\n hideMenu: PropTypes.func.isRequired,\n id: PropTypes.string,\n labelledby: PropTypes.string,\n open: PropTypes.bool.isRequired\n} : void 0;\nexport { GridColumnMenuContainer };","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport MenuItem from '@mui/material/MenuItem';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport { useGridApiContext } from \"../../../../hooks/utils/useGridApiContext.js\";\nimport { useGridRootProps } from \"../../../../hooks/utils/useGridRootProps.js\";\nimport { gridVisibleColumnDefinitionsSelector } from \"../../../../hooks/features/columns/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction GridColumnMenuHideItem(props) {\n const {\n colDef,\n onClick\n } = props;\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const visibleColumns = gridVisibleColumnDefinitionsSelector(apiRef);\n const columnsWithMenu = visibleColumns.filter(col => col.disableColumnMenu !== true);\n // do not allow to hide the last column with menu\n const disabled = columnsWithMenu.length === 1;\n const toggleColumn = React.useCallback(event => {\n /**\n * Disabled `MenuItem` would trigger `click` event\n * after imperative `.click()` call on HTML element.\n * Also, click is triggered in testing environment as well.\n */\n if (disabled) {\n return;\n }\n apiRef.current.setColumnVisibility(colDef.field, false);\n onClick(event);\n }, [apiRef, colDef.field, onClick, disabled]);\n if (rootProps.disableColumnSelector) {\n return null;\n }\n if (colDef.hideable === false) {\n return null;\n }\n return /*#__PURE__*/_jsxs(MenuItem, {\n onClick: toggleColumn,\n disabled: disabled,\n children: [/*#__PURE__*/_jsx(ListItemIcon, {\n children: /*#__PURE__*/_jsx(rootProps.slots.columnMenuHideIcon, {\n fontSize: \"small\"\n })\n }), /*#__PURE__*/_jsx(ListItemText, {\n children: apiRef.current.getLocaleText('columnMenuHideColumn')\n })]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GridColumnMenuHideItem.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n colDef: PropTypes.object.isRequired,\n onClick: PropTypes.func.isRequired\n} : void 0;\nexport { GridColumnMenuHideItem };","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport MenuItem from '@mui/material/MenuItem';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport { GridPreferencePanelsValue } from \"../../../../hooks/features/preferencesPanel/gridPreferencePanelsValue.js\";\nimport { useGridApiContext } from \"../../../../hooks/utils/useGridApiContext.js\";\nimport { useGridRootProps } from \"../../../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction GridColumnMenuManageItem(props) {\n const {\n onClick\n } = props;\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const showColumns = React.useCallback(event => {\n onClick(event); // hide column menu\n apiRef.current.showPreferences(GridPreferencePanelsValue.columns);\n }, [apiRef, onClick]);\n if (rootProps.disableColumnSelector) {\n return null;\n }\n return /*#__PURE__*/_jsxs(MenuItem, {\n onClick: showColumns,\n children: [/*#__PURE__*/_jsx(ListItemIcon, {\n children: /*#__PURE__*/_jsx(rootProps.slots.columnMenuManageColumnsIcon, {\n fontSize: \"small\"\n })\n }), /*#__PURE__*/_jsx(ListItemText, {\n children: apiRef.current.getLocaleText('columnMenuManageColumns')\n })]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GridColumnMenuManageItem.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n colDef: PropTypes.object.isRequired,\n onClick: PropTypes.func.isRequired\n} : void 0;\nexport { GridColumnMenuManageItem };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"defaultSlots\", \"defaultSlotProps\", \"slots\", \"slotProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridColumnMenuSlots } from \"../../../hooks/features/columnMenu/useGridColumnMenuSlots.js\";\nimport { GridColumnMenuContainer } from \"./GridColumnMenuContainer.js\";\nimport { GridColumnMenuColumnsItem } from \"./menuItems/GridColumnMenuColumnsItem.js\";\nimport { GridColumnMenuFilterItem } from \"./menuItems/GridColumnMenuFilterItem.js\";\nimport { GridColumnMenuSortItem } from \"./menuItems/GridColumnMenuSortItem.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const GRID_COLUMN_MENU_SLOTS = {\n columnMenuSortItem: GridColumnMenuSortItem,\n columnMenuFilterItem: GridColumnMenuFilterItem,\n columnMenuColumnsItem: GridColumnMenuColumnsItem\n};\nexport const GRID_COLUMN_MENU_SLOT_PROPS = {\n columnMenuSortItem: {\n displayOrder: 10\n },\n columnMenuFilterItem: {\n displayOrder: 20\n },\n columnMenuColumnsItem: {\n displayOrder: 30\n }\n};\nconst GridGenericColumnMenu = forwardRef(function GridGenericColumnMenu(props, ref) {\n const {\n defaultSlots,\n defaultSlotProps,\n slots,\n slotProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const orderedSlots = useGridColumnMenuSlots(_extends({}, other, {\n defaultSlots,\n defaultSlotProps,\n slots,\n slotProps\n }));\n return /*#__PURE__*/_jsx(GridColumnMenuContainer, _extends({}, other, {\n ref: ref,\n children: orderedSlots.map(([Component, otherProps], index) => /*#__PURE__*/_jsx(Component, _extends({}, otherProps), index))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridGenericColumnMenu.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n colDef: PropTypes.object.isRequired,\n /**\n * Initial `slotProps` - it is internal, to be overrriden by Pro or Premium packages\n * @ignore - do not document.\n */\n defaultSlotProps: PropTypes.object.isRequired,\n /**\n * Initial `slots` - it is internal, to be overrriden by Pro or Premium packages\n * @ignore - do not document.\n */\n defaultSlots: PropTypes.object.isRequired,\n hideMenu: PropTypes.func.isRequired,\n id: PropTypes.string,\n labelledby: PropTypes.string,\n open: PropTypes.bool.isRequired,\n /**\n * Could be used to pass new props or override props specific to a column menu component\n * e.g. `displayOrder`\n */\n slotProps: PropTypes.object,\n /**\n * `slots` could be used to add new and (or) override default column menu items\n * If you register a nee component you must pass it's `displayOrder` in `slotProps`\n * or it will be placed in the end of the list\n */\n slots: PropTypes.object\n} : void 0;\nconst GridColumnMenu = forwardRef(function GridColumnMenu(props, ref) {\n return /*#__PURE__*/_jsx(GridGenericColumnMenu, _extends({}, props, {\n ref: ref,\n defaultSlots: GRID_COLUMN_MENU_SLOTS,\n defaultSlotProps: GRID_COLUMN_MENU_SLOT_PROPS\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridColumnMenu.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n colDef: PropTypes.object.isRequired,\n hideMenu: PropTypes.func.isRequired,\n id: PropTypes.string,\n labelledby: PropTypes.string,\n open: PropTypes.bool.isRequired,\n /**\n * Could be used to pass new props or override props specific to a column menu component\n * e.g. `displayOrder`\n */\n slotProps: PropTypes.object,\n /**\n * `slots` could be used to add new and (or) override default column menu items\n * If you register a nee component you must pass it's `displayOrder` in `slotProps`\n * or it will be placed in the end of the list\n */\n slots: PropTypes.object\n} : void 0;\nexport { GridColumnMenu, GridGenericColumnMenu };","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport MenuItem from '@mui/material/MenuItem';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport { useGridSelector } from \"../../../../hooks/utils/useGridSelector.js\";\nimport { gridSortModelSelector } from \"../../../../hooks/features/sorting/gridSortingSelector.js\";\nimport { useGridApiContext } from \"../../../../hooks/utils/useGridApiContext.js\";\nimport { useGridRootProps } from \"../../../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction GridColumnMenuSortItem(props) {\n const {\n colDef,\n onClick\n } = props;\n const apiRef = useGridApiContext();\n const sortModel = useGridSelector(apiRef, gridSortModelSelector);\n const rootProps = useGridRootProps();\n const sortDirection = React.useMemo(() => {\n if (!colDef) {\n return null;\n }\n const sortItem = sortModel.find(item => item.field === colDef.field);\n return sortItem?.sort;\n }, [colDef, sortModel]);\n const sortingOrder = colDef.sortingOrder ?? rootProps.sortingOrder;\n const onSortMenuItemClick = React.useCallback(event => {\n onClick(event);\n const direction = event.currentTarget.getAttribute('data-value') || null;\n apiRef.current.sortColumn(colDef.field, direction === sortDirection ? null : direction);\n }, [apiRef, colDef, onClick, sortDirection]);\n if (rootProps.disableColumnSorting || !colDef || !colDef.sortable || !sortingOrder.some(item => !!item)) {\n return null;\n }\n const getLabel = key => {\n const label = apiRef.current.getLocaleText(key);\n return typeof label === 'function' ? label(colDef) : label;\n };\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [sortingOrder.includes('asc') && sortDirection !== 'asc' ? /*#__PURE__*/_jsxs(MenuItem, {\n onClick: onSortMenuItemClick,\n \"data-value\": \"asc\",\n children: [/*#__PURE__*/_jsx(ListItemIcon, {\n children: /*#__PURE__*/_jsx(rootProps.slots.columnMenuSortAscendingIcon, {\n fontSize: \"small\"\n })\n }), /*#__PURE__*/_jsx(ListItemText, {\n children: getLabel('columnMenuSortAsc')\n })]\n }) : null, sortingOrder.includes('desc') && sortDirection !== 'desc' ? /*#__PURE__*/_jsxs(MenuItem, {\n onClick: onSortMenuItemClick,\n \"data-value\": \"desc\",\n children: [/*#__PURE__*/_jsx(ListItemIcon, {\n children: /*#__PURE__*/_jsx(rootProps.slots.columnMenuSortDescendingIcon, {\n fontSize: \"small\"\n })\n }), /*#__PURE__*/_jsx(ListItemText, {\n children: getLabel('columnMenuSortDesc')\n })]\n }) : null, sortingOrder.includes(null) && sortDirection != null ? /*#__PURE__*/_jsxs(MenuItem, {\n onClick: onSortMenuItemClick,\n children: [/*#__PURE__*/_jsx(ListItemIcon, {}), /*#__PURE__*/_jsx(ListItemText, {\n children: apiRef.current.getLocaleText('columnMenuUnsort')\n })]\n }) : null]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GridColumnMenuSortItem.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n colDef: PropTypes.object.isRequired,\n onClick: PropTypes.func.isRequired\n} : void 0;\nexport { GridColumnMenuSortItem };","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport MenuItem from '@mui/material/MenuItem';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport { useGridApiContext } from \"../../../../hooks/utils/useGridApiContext.js\";\nimport { useGridRootProps } from \"../../../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction GridColumnMenuFilterItem(props) {\n const {\n colDef,\n onClick\n } = props;\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const showFilter = React.useCallback(event => {\n onClick(event);\n apiRef.current.showFilterPanel(colDef.field);\n }, [apiRef, colDef.field, onClick]);\n if (rootProps.disableColumnFilter || !colDef.filterable) {\n return null;\n }\n return /*#__PURE__*/_jsxs(MenuItem, {\n onClick: showFilter,\n children: [/*#__PURE__*/_jsx(ListItemIcon, {\n children: /*#__PURE__*/_jsx(rootProps.slots.columnMenuFilterIcon, {\n fontSize: \"small\"\n })\n }), /*#__PURE__*/_jsx(ListItemText, {\n children: apiRef.current.getLocaleText('columnMenuFilter')\n })]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GridColumnMenuFilterItem.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n colDef: PropTypes.object.isRequired,\n onClick: PropTypes.func.isRequired\n} : void 0;\nexport { GridColumnMenuFilterItem };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GridColumnMenuHideItem } from \"./GridColumnMenuHideItem.js\";\nimport { GridColumnMenuManageItem } from \"./GridColumnMenuManageItem.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction GridColumnMenuColumnsItem(props) {\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(GridColumnMenuHideItem, _extends({}, props)), /*#__PURE__*/_jsx(GridColumnMenuManageItem, _extends({}, props))]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GridColumnMenuColumnsItem.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n colDef: PropTypes.object.isRequired,\n onClick: PropTypes.func.isRequired\n} : void 0;\nexport { GridColumnMenuColumnsItem };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { useGridApiContext } from \"../hooks/utils/useGridApiContext.js\";\nimport { GridOverlay } from \"./containers/GridOverlay.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const GridNoResultsOverlay = forwardRef(function GridNoResultsOverlay(props, ref) {\n const apiRef = useGridApiContext();\n const noResultsOverlayLabel = apiRef.current.getLocaleText('noResultsOverlayLabel');\n return /*#__PURE__*/_jsx(GridOverlay, _extends({}, props, {\n ref: ref,\n children: noResultsOverlayLabel\n }));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sortingOrder\"];\nimport * as React from 'react';\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const GridColumnUnsortedIcon = /*#__PURE__*/React.memo(function GridColumnHeaderSortIcon(props) {\n const {\n sortingOrder\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rootProps = useGridRootProps();\n const [nextSortDirection] = sortingOrder;\n const Icon = nextSortDirection === 'asc' ? rootProps.slots.columnSortedAscendingIcon : rootProps.slots.columnSortedDescendingIcon;\n return Icon ? /*#__PURE__*/_jsx(Icon, _extends({}, other)) : null;\n});","import * as React from 'react';\nimport { createSvgIcon } from '@mui/material/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const GridArrowUpwardIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z\"\n}), 'ArrowUpward');\nexport const GridArrowDownwardIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z\"\n}), 'ArrowDownward');\nexport const GridKeyboardArrowRight = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M8.59 16.59 13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"\n}), 'KeyboardArrowRight');\nexport const GridExpandMoreIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');\nexport const GridFilterListIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z\"\n}), 'FilterList');\nexport const GridFilterAltIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39c.51-.66.04-1.61-.79-1.61H5.04c-.83 0-1.3.95-.79 1.61z\"\n}), 'FilterAlt');\nexport const GridSearchIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"\n}), 'Search');\nexport const GridMenuIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\"\n}), 'Menu');\nexport const GridCheckCircleIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckCircle');\nexport const GridColumnIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M6 5H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm14 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-7 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z\"\n}), 'ColumnIcon');\nexport const GridSeparatorIcon = createSvgIcon(/*#__PURE__*/_jsx(\"rect\", {\n width: \"1\",\n height: \"24\",\n x: \"11.5\",\n rx: \"0.5\"\n}), 'Separator');\nexport const GridViewHeadlineIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z\"\n}), 'ViewHeadline');\nexport const GridTableRowsIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M21,8H3V4h18V8z M21,10H3v4h18V10z M21,16H3v4h18V16z\"\n}), 'TableRows');\nexport const GridViewStreamIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M4 18h17v-6H4v6zM4 5v6h17V5H4z\"\n}), 'ViewStream');\nexport const GridTripleDotsVerticalIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'TripleDotsVertical');\nexport const GridCloseIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\nexport const GridAddIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\nexport const GridRemoveIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 13H5v-2h14v2z\"\n}), 'Remove');\nexport const GridLoadIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z\"\n}), 'Load');\nexport const GridDragIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'Drag');\nexport const GridSaveAltIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67l2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z\"\n}), 'SaveAlt');\nexport const GridCheckIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"\n}), 'Check');\nexport const GridMoreVertIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'MoreVert');\nexport const GridVisibilityOffIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\nexport const GridViewColumnIcon = createSvgIcon(/*#__PURE__*/_jsx(\"g\", {\n children: /*#__PURE__*/_jsx(\"path\", {\n d: \"M14.67,5v14H9.33V5H14.67z M15.67,19H21V5h-5.33V19z M8.33,19V5H3v14H8.33z\"\n })\n}), 'ViewColumn');\nexport const GridClearIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Clear');\nexport const GridDeleteIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\nexport const GridDeleteForeverIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"native\"];\nimport * as React from 'react';\nimport MUIMenuItem from '@mui/material/MenuItem';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function MUISelectOption(_ref) {\n let {\n native\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (native) {\n return /*#__PURE__*/_jsx(\"option\", _extends({}, props));\n }\n return /*#__PURE__*/_jsx(MUIMenuItem, _extends({}, props));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport MUIBadge from '@mui/material/Badge';\nimport MUICheckbox from '@mui/material/Checkbox';\nimport MUIDivider from '@mui/material/Divider';\nimport MUITextField from '@mui/material/TextField';\nimport MUIFormControl from '@mui/material/FormControl';\nimport MUISelect from '@mui/material/Select';\nimport MUIButton from '@mui/material/Button';\nimport MUIIconButton from '@mui/material/IconButton';\nimport MUIInputAdornment from '@mui/material/InputAdornment';\nimport MUITooltip from '@mui/material/Tooltip';\nimport MUIPopper from '@mui/material/Popper';\nimport MUIInputLabel from '@mui/material/InputLabel';\nimport MUIChip from '@mui/material/Chip';\nimport { GridColumnUnsortedIcon } from \"./icons/GridColumnUnsortedIcon.js\";\nimport { GridAddIcon, GridArrowDownwardIcon, GridArrowUpwardIcon, GridCheckIcon, GridCloseIcon, GridColumnIcon, GridDragIcon, GridExpandMoreIcon, GridFilterAltIcon, GridFilterListIcon, GridKeyboardArrowRight, GridMoreVertIcon, GridRemoveIcon, GridSaveAltIcon, GridSearchIcon, GridSeparatorIcon, GridTableRowsIcon, GridTripleDotsVerticalIcon, GridViewHeadlineIcon, GridViewStreamIcon, GridVisibilityOffIcon, GridViewColumnIcon, GridClearIcon, GridLoadIcon, GridDeleteForeverIcon } from \"./icons/index.js\";\nimport MUISelectOption from \"./components/MUISelectOption.js\";\nconst iconSlots = {\n booleanCellTrueIcon: GridCheckIcon,\n booleanCellFalseIcon: GridCloseIcon,\n columnMenuIcon: GridTripleDotsVerticalIcon,\n openFilterButtonIcon: GridFilterListIcon,\n filterPanelDeleteIcon: GridCloseIcon,\n columnFilteredIcon: GridFilterAltIcon,\n columnSelectorIcon: GridColumnIcon,\n columnUnsortedIcon: GridColumnUnsortedIcon,\n columnSortedAscendingIcon: GridArrowUpwardIcon,\n columnSortedDescendingIcon: GridArrowDownwardIcon,\n columnResizeIcon: GridSeparatorIcon,\n densityCompactIcon: GridViewHeadlineIcon,\n densityStandardIcon: GridTableRowsIcon,\n densityComfortableIcon: GridViewStreamIcon,\n exportIcon: GridSaveAltIcon,\n moreActionsIcon: GridMoreVertIcon,\n treeDataCollapseIcon: GridExpandMoreIcon,\n treeDataExpandIcon: GridKeyboardArrowRight,\n groupingCriteriaCollapseIcon: GridExpandMoreIcon,\n groupingCriteriaExpandIcon: GridKeyboardArrowRight,\n detailPanelExpandIcon: GridAddIcon,\n detailPanelCollapseIcon: GridRemoveIcon,\n rowReorderIcon: GridDragIcon,\n quickFilterIcon: GridSearchIcon,\n quickFilterClearIcon: GridCloseIcon,\n columnMenuHideIcon: GridVisibilityOffIcon,\n columnMenuSortAscendingIcon: GridArrowUpwardIcon,\n columnMenuSortDescendingIcon: GridArrowDownwardIcon,\n columnMenuFilterIcon: GridFilterAltIcon,\n columnMenuManageColumnsIcon: GridViewColumnIcon,\n columnMenuClearIcon: GridClearIcon,\n loadIcon: GridLoadIcon,\n filterPanelAddIcon: GridAddIcon,\n filterPanelRemoveAllIcon: GridDeleteForeverIcon,\n columnReorderIcon: GridDragIcon\n};\nconst materialSlots = _extends({}, iconSlots, {\n baseBadge: MUIBadge,\n baseCheckbox: MUICheckbox,\n baseDivider: MUIDivider,\n baseTextField: MUITextField,\n baseFormControl: MUIFormControl,\n baseSelect: MUISelect,\n baseButton: MUIButton,\n baseIconButton: MUIIconButton,\n baseInputAdornment: MUIInputAdornment,\n baseTooltip: MUITooltip,\n basePopper: MUIPopper,\n baseInputLabel: MUIInputLabel,\n baseSelectOption: MUISelectOption,\n baseChip: MUIChip\n});\nexport default materialSlots;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { GridSkeletonCell, GridColumnsPanel, GridFilterPanel, GridFooter, GridLoadingOverlay, GridNoRowsOverlay, GridPagination, GridPanel, GridRow, GridColumnHeaderFilterIconButton, GridRowCount, GridColumnsManagement, GridColumnHeaderSortIcon } from \"../components/index.js\";\nimport { GridCell } from \"../components/cell/GridCell.js\";\nimport { GridColumnHeaders } from \"../components/GridColumnHeaders.js\";\nimport { GridColumnMenu } from \"../components/menu/columnMenu/GridColumnMenu.js\";\nimport { GridDetailPanels } from \"../components/GridDetailPanels.js\";\nimport { GridPinnedRows } from \"../components/GridPinnedRows.js\";\nimport { GridNoResultsOverlay } from \"../components/GridNoResultsOverlay.js\";\nimport materialSlots from \"../material/index.js\";\n\n// TODO: camelCase these key. It's a private helper now.\n// Remove then need to call `uncapitalizeObjectKeys`.\nexport const DATA_GRID_DEFAULT_SLOTS_COMPONENTS = _extends({}, materialSlots, {\n cell: GridCell,\n skeletonCell: GridSkeletonCell,\n columnHeaderFilterIconButton: GridColumnHeaderFilterIconButton,\n columnHeaderSortIcon: GridColumnHeaderSortIcon,\n columnMenu: GridColumnMenu,\n columnHeaders: GridColumnHeaders,\n detailPanels: GridDetailPanels,\n footer: GridFooter,\n footerRowCount: GridRowCount,\n toolbar: null,\n pinnedRows: GridPinnedRows,\n loadingOverlay: GridLoadingOverlay,\n noResultsOverlay: GridNoResultsOverlay,\n noRowsOverlay: GridNoRowsOverlay,\n pagination: GridPagination,\n filterPanel: GridFilterPanel,\n columnsPanel: GridColumnsPanel,\n columnsManagement: GridColumnsManagement,\n panel: GridPanel,\n row: GridRow\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses, unstable_useId as useId } from '@mui/utils';\nimport { useGridSelector } from \"../../hooks/index.js\";\nimport { gridPreferencePanelStateSelector } from \"../../hooks/features/preferencesPanel/gridPreferencePanelSelector.js\";\nimport { GridPreferencePanelsValue } from \"../../hooks/features/preferencesPanel/gridPreferencePanelsValue.js\";\nimport { useGridApiContext } from \"../../hooks/utils/useGridApiContext.js\";\nimport { getDataGridUtilityClass } from \"../../constants/gridClasses.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { GridIconButtonContainer } from \"./GridIconButtonContainer.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n icon: ['filterIcon']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\nfunction GridColumnHeaderFilterIconButton(props) {\n const {\n counter,\n field,\n onClick\n } = props;\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const ownerState = _extends({}, props, {\n classes: rootProps.classes\n });\n const classes = useUtilityClasses(ownerState);\n const preferencePanel = useGridSelector(apiRef, gridPreferencePanelStateSelector);\n const labelId = useId();\n const panelId = useId();\n const toggleFilter = React.useCallback(event => {\n event.preventDefault();\n event.stopPropagation();\n const {\n open,\n openedPanelValue\n } = gridPreferencePanelStateSelector(apiRef.current.state);\n if (open && openedPanelValue === GridPreferencePanelsValue.filters) {\n apiRef.current.hideFilterPanel();\n } else {\n apiRef.current.showFilterPanel(undefined, panelId, labelId);\n }\n if (onClick) {\n onClick(apiRef.current.getColumnHeaderParams(field), event);\n }\n }, [apiRef, field, onClick, panelId, labelId]);\n if (!counter) {\n return null;\n }\n const open = preferencePanel.open && preferencePanel.labelId === labelId;\n const iconButton = /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({\n id: labelId,\n onClick: toggleFilter,\n color: \"default\",\n \"aria-label\": apiRef.current.getLocaleText('columnHeaderFiltersLabel'),\n size: \"small\",\n tabIndex: -1,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n \"aria-controls\": open ? panelId : undefined\n }, rootProps.slotProps?.baseIconButton, {\n children: /*#__PURE__*/_jsx(rootProps.slots.columnFilteredIcon, {\n className: classes.icon,\n fontSize: \"small\"\n })\n }));\n return /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({\n title: apiRef.current.getLocaleText('columnHeaderFiltersTooltipActive')(counter),\n enterDelay: 1000\n }, rootProps.slotProps?.baseTooltip, {\n children: /*#__PURE__*/_jsxs(GridIconButtonContainer, {\n children: [counter > 1 && /*#__PURE__*/_jsx(rootProps.slots.baseBadge, {\n badgeContent: counter,\n color: \"default\",\n children: iconButton\n }), counter === 1 && iconButton]\n })\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridColumnHeaderFilterIconButton.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n counter: PropTypes.number,\n field: PropTypes.string.isRequired,\n onClick: PropTypes.func\n} : void 0;\nexport { GridColumnHeaderFilterIconButton };","export function GridDetailPanels(_) {\n return null;\n}","export function GridPinnedRows(_) {\n return null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GridPanelWrapper } from \"./GridPanelWrapper.js\";\nimport { useGridRootProps } from \"../../hooks/utils/useGridRootProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction GridColumnsPanel(props) {\n const rootProps = useGridRootProps();\n return /*#__PURE__*/_jsx(GridPanelWrapper, _extends({}, props, {\n children: /*#__PURE__*/_jsx(rootProps.slots.columnsManagement, _extends({}, rootProps.slotProps?.columnsManagement))\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GridColumnsPanel.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n slotProps: PropTypes.object\n} : void 0;\nexport { GridColumnsPanel };","import * as React from 'react';\n\n/** Gathers props for the root element into a single `.forwardedProps` field */\nfunction groupForwardedProps(props) {\n if (props.slotProps?.root) {\n return props;\n }\n const keys = Object.keys(props);\n if (!keys.some(key => key.startsWith('aria-') || key.startsWith('data-'))) {\n return props;\n }\n const newProps = {};\n const forwardedProps = props.forwardedProps ?? {};\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n if (key.startsWith('aria-') || key.startsWith('data-')) {\n forwardedProps[key] = props[key];\n } else {\n newProps[key] = props[key];\n }\n }\n newProps.forwardedProps = forwardedProps;\n return newProps;\n}\nexport function useProps(allProps) {\n return React.useMemo(() => groupForwardedProps(allProps), [allProps]);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useThemeProps } from '@mui/material/styles';\nimport { GRID_DEFAULT_LOCALE_TEXT } from \"../constants/index.js\";\nimport { DATA_GRID_DEFAULT_SLOTS_COMPONENTS } from \"../constants/defaultGridSlotsComponents.js\";\nimport { computeSlots, useProps } from \"../internals/utils/index.js\";\nimport { DATA_GRID_PROPS_DEFAULT_VALUES } from \"../constants/dataGridPropsDefaultValues.js\";\nconst DATA_GRID_FORCED_PROPS = {\n disableMultipleColumnsFiltering: true,\n disableMultipleColumnsSorting: true,\n throttleRowsMs: undefined,\n hideFooterRowCount: false,\n pagination: true,\n checkboxSelectionVisibleOnly: false,\n disableColumnReorder: true,\n keepColumnPositionIfDraggedOutside: false,\n signature: 'DataGrid',\n unstable_listView: false\n};\nconst defaultSlots = DATA_GRID_DEFAULT_SLOTS_COMPONENTS;\nexport const useDataGridProps = inProps => {\n const themedProps = useProps(\n // eslint-disable-next-line material-ui/mui-name-matches-component-name\n useThemeProps({\n props: inProps,\n name: 'MuiDataGrid'\n }));\n const localeText = React.useMemo(() => _extends({}, GRID_DEFAULT_LOCALE_TEXT, themedProps.localeText), [themedProps.localeText]);\n const slots = React.useMemo(() => computeSlots({\n defaultSlots,\n slots: themedProps.slots\n }), [themedProps.slots]);\n const injectDefaultProps = React.useMemo(() => {\n return Object.keys(DATA_GRID_PROPS_DEFAULT_VALUES).reduce((acc, key) => {\n // @ts-ignore\n acc[key] = themedProps[key] ?? DATA_GRID_PROPS_DEFAULT_VALUES[key];\n return acc;\n }, {});\n }, [themedProps]);\n return React.useMemo(() => _extends({}, themedProps, injectDefaultProps, {\n localeText,\n slots\n }, DATA_GRID_FORCED_PROPS), [themedProps, localeText, slots, injectDefaultProps]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport function computeSlots({\n defaultSlots,\n slots\n}) {\n const overrides = slots;\n if (!overrides || Object.keys(overrides).length === 0) {\n return defaultSlots;\n }\n const result = _extends({}, defaultSlots);\n Object.keys(overrides).forEach(key => {\n const k = key;\n if (overrides[k] !== undefined) {\n result[k] = overrides[k];\n }\n });\n return result;\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { forwardRef } from '@mui/x-internals/forwardRef';\nimport { GridBody, GridFooterPlaceholder, GridHeader, GridRoot } from \"../components/index.js\";\nimport { useGridAriaAttributes } from \"../hooks/utils/useGridAriaAttributes.js\";\nimport { useGridRowAriaAttributes } from \"../hooks/features/rows/useGridRowAriaAttributes.js\";\nimport { GridContextProvider } from \"../context/GridContextProvider.js\";\nimport { useDataGridComponent } from \"./useDataGridComponent.js\";\nimport { useDataGridProps } from \"./useDataGridProps.js\";\nimport { propValidatorsDataGrid, validateProps } from \"../internals/utils/propValidation.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst configuration = {\n hooks: {\n useGridAriaAttributes,\n useGridRowAriaAttributes\n }\n};\nlet propValidators;\nif (process.env.NODE_ENV !== 'production') {\n propValidators = [...propValidatorsDataGrid,\n // Only validate in MIT version\n props => props.columns && props.columns.some(column => column.resizable) && [`MUI X: \\`column.resizable = true\\` is not a valid prop.`, 'Column resizing is not available in the MIT version.', '', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\\n') || undefined];\n}\nconst DataGridRaw = forwardRef(function DataGrid(inProps, ref) {\n const props = useDataGridProps(inProps);\n const privateApiRef = useDataGridComponent(props.apiRef, props);\n if (process.env.NODE_ENV !== 'production') {\n validateProps(props, propValidators);\n }\n return /*#__PURE__*/_jsx(GridContextProvider, {\n privateApiRef: privateApiRef,\n configuration: configuration,\n props: props,\n children: /*#__PURE__*/_jsxs(GridRoot, _extends({\n className: props.className,\n style: props.style,\n sx: props.sx\n }, props.forwardedProps, props.slotProps?.root, {\n ref: ref,\n children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {}), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]\n }))\n });\n});\n/**\n * Demos:\n * - [DataGrid](https://mui.com/x/react-data-grid/demo/)\n *\n * API:\n * - [DataGrid API](https://mui.com/x/api/data-grid/data-grid/)\n */\nexport const DataGrid = /*#__PURE__*/React.memo(DataGridRaw);\nDataGridRaw.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The ref object that allows Data Grid manipulation. Can be instantiated with `useGridApiRef()`.\n */\n apiRef: PropTypes.shape({\n current: PropTypes.object.isRequired\n }),\n /**\n * The label of the Data Grid.\n */\n 'aria-label': PropTypes.string,\n /**\n * The id of the element containing a label for the Data Grid.\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * If `true`, the Data Grid height is dynamic and follows the number of rows in the Data Grid.\n * @default false\n * @deprecated Use flex parent container instead: https://mui.com/x/react-data-grid/layout/#flex-parent-container\n * @example\n * <div style={{ display: 'flex', flexDirection: 'column' }}>\n * <DataGrid />\n * </div>\n */\n autoHeight: PropTypes.bool,\n /**\n * If `true`, the pageSize is calculated according to the container size and the max number of rows to avoid rendering a vertical scroll bar.\n * @default false\n */\n autoPageSize: PropTypes.bool,\n /**\n * If `true`, columns are autosized after the datagrid is mounted.\n * @default false\n */\n autosizeOnMount: PropTypes.bool,\n /**\n * The options for autosize when user-initiated.\n */\n autosizeOptions: PropTypes.shape({\n columns: PropTypes.arrayOf(PropTypes.string),\n disableColumnVirtualization: PropTypes.bool,\n expand: PropTypes.bool,\n includeHeaders: PropTypes.bool,\n includeOutliers: PropTypes.bool,\n outliersFactor: PropTypes.number\n }),\n /**\n * Controls the modes of the cells.\n */\n cellModesModel: PropTypes.object,\n /**\n * If `true`, the Data Grid will display an extra column with checkboxes for selecting rows.\n * @default false\n */\n checkboxSelection: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The character used to separate cell values when copying to the clipboard.\n * @default '\\t'\n */\n clipboardCopyCellDelimiter: PropTypes.string,\n /**\n * Column region in pixels to render before/after the viewport\n * @default 150\n */\n columnBufferPx: PropTypes.number,\n /**\n * Sets the height in pixels of the column group headers in the Data Grid.\n * Inherits the `columnHeaderHeight` value if not set.\n */\n columnGroupHeaderHeight: PropTypes.number,\n columnGroupingModel: PropTypes.arrayOf(PropTypes.object),\n /**\n * Sets the height in pixel of the column headers in the Data Grid.\n * @default 56\n */\n columnHeaderHeight: PropTypes.number,\n /**\n * Set of columns of type [[GridColDef]][].\n */\n columns: PropTypes.arrayOf(PropTypes.object).isRequired,\n /**\n * Set the column visibility model of the Data Grid.\n * If defined, the Data Grid will ignore the `hide` property in [[GridColDef]].\n */\n columnVisibilityModel: PropTypes.object,\n /**\n * Set the density of the Data Grid.\n * @default \"standard\"\n */\n density: PropTypes.oneOf(['comfortable', 'compact', 'standard']),\n /**\n * If `true`, column autosizing on header separator double-click is disabled.\n * @default false\n */\n disableAutosize: PropTypes.bool,\n /**\n * If `true`, column filters are disabled.\n * @default false\n */\n disableColumnFilter: PropTypes.bool,\n /**\n * If `true`, the column menu is disabled.\n * @default false\n */\n disableColumnMenu: PropTypes.bool,\n /**\n * If `true`, resizing columns is disabled.\n * @default false\n */\n disableColumnResize: PropTypes.bool,\n /**\n * If `true`, hiding/showing columns is disabled.\n * @default false\n */\n disableColumnSelector: PropTypes.bool,\n /**\n * If `true`, the column sorting feature will be disabled.\n * @default false\n */\n disableColumnSorting: PropTypes.bool,\n /**\n * If `true`, the density selector is disabled.\n * @default false\n */\n disableDensitySelector: PropTypes.bool,\n /**\n * If `true`, `eval()` is not used for performance optimization.\n * @default false\n */\n disableEval: PropTypes.bool,\n /**\n * If `true`, multiple selection using the Ctrl/CMD or Shift key is disabled.\n * The MIT DataGrid will ignore this prop, unless `checkboxSelection` is enabled.\n * @default false (`!props.checkboxSelection` for MIT Data Grid)\n */\n disableMultipleRowSelection: PropTypes.bool,\n /**\n * If `true`, the selection on click on a row or cell is disabled.\n * @default false\n */\n disableRowSelectionOnClick: PropTypes.bool,\n /**\n * If `true`, the virtualization is disabled.\n * @default false\n */\n disableVirtualization: PropTypes.bool,\n /**\n * Controls whether to use the cell or row editing.\n * @default \"cell\"\n */\n editMode: PropTypes.oneOf(['cell', 'row']),\n /**\n * Use if the actual rowCount is not known upfront, but an estimation is available.\n * If some rows have children (for instance in the tree data), this number represents the amount of top level rows.\n * Applicable only with `paginationMode=\"server\"` and when `rowCount=\"-1\"`\n */\n estimatedRowCount: PropTypes.number,\n /**\n * Unstable features, breaking changes might be introduced.\n * For each feature, if the flag is not explicitly set to `true`, the feature will be fully disabled and any property / method call will not have any effect.\n */\n experimentalFeatures: PropTypes.shape({\n warnIfFocusStateIsNotSynced: PropTypes.bool\n }),\n /**\n * The milliseconds delay to wait after a keystroke before triggering filtering.\n * @default 150\n */\n filterDebounceMs: PropTypes.number,\n /**\n * Filtering can be processed on the server or client-side.\n * Set it to 'server' if you would like to handle filtering on the server-side.\n * @default \"client\"\n */\n filterMode: PropTypes.oneOf(['client', 'server']),\n /**\n * Set the filter model of the Data Grid.\n */\n filterModel: PropTypes.shape({\n items: PropTypes.arrayOf(PropTypes.shape({\n field: PropTypes.string.isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n operator: PropTypes.string.isRequired,\n value: PropTypes.any\n })).isRequired,\n logicOperator: PropTypes.oneOf(['and', 'or']),\n quickFilterExcludeHiddenColumns: PropTypes.bool,\n quickFilterLogicOperator: PropTypes.oneOf(['and', 'or']),\n quickFilterValues: PropTypes.array\n }),\n /**\n * Forwarded props for the Data Grid root element.\n * @ignore - do not document.\n */\n forwardedProps: PropTypes.object,\n /**\n * Function that applies CSS classes dynamically on cells.\n * @param {GridCellParams} params With all properties from [[GridCellParams]].\n * @returns {string} The CSS class to apply to the cell.\n */\n getCellClassName: PropTypes.func,\n /**\n * Function that returns the element to render in row detail.\n * @param {GridRowParams} params With all properties from [[GridRowParams]].\n * @returns {React.JSX.Element} The row detail element.\n */\n getDetailPanelContent: PropTypes.func,\n /**\n * Function that returns the estimated height for a row.\n * Only works if dynamic row height is used.\n * Once the row height is measured this value is discarded.\n * @param {GridRowHeightParams} params With all properties from [[GridRowHeightParams]].\n * @returns {number | null} The estimated row height value. If `null` or `undefined` then the default row height, based on the density, is applied.\n */\n getEstimatedRowHeight: PropTypes.func,\n /**\n * Function that applies CSS classes dynamically on rows.\n * @param {GridRowClassNameParams} params With all properties from [[GridRowClassNameParams]].\n * @returns {string} The CSS class to apply to the row.\n */\n getRowClassName: PropTypes.func,\n /**\n * Function that sets the row height per row.\n * @param {GridRowHeightParams} params With all properties from [[GridRowHeightParams]].\n * @returns {GridRowHeightReturnValue} The row height value. If `null` or `undefined` then the default row height is applied. If \"auto\" then the row height is calculated based on the content.\n */\n getRowHeight: PropTypes.func,\n /**\n * Return the id of a given [[GridRowModel]].\n */\n getRowId: PropTypes.func,\n /**\n * Function that allows to specify the spacing between rows.\n * @param {GridRowSpacingParams} params With all properties from [[GridRowSpacingParams]].\n * @returns {GridRowSpacing} The row spacing values.\n */\n getRowSpacing: PropTypes.func,\n /**\n * If `true`, the footer component is hidden.\n * @default false\n */\n hideFooter: PropTypes.bool,\n /**\n * If `true`, the pagination component in the footer is hidden.\n * @default false\n */\n hideFooterPagination: PropTypes.bool,\n /**\n * If `true`, the selected row count in the footer is hidden.\n * @default false\n */\n hideFooterSelectedRowCount: PropTypes.bool,\n /**\n * If `true`, the diacritics (accents) are ignored when filtering or quick filtering.\n * E.g. when filter value is `cafe`, the rows with `café` will be visible.\n * @default false\n */\n ignoreDiacritics: PropTypes.bool,\n /**\n * If `true`, the Data Grid will not use `valueFormatter` when exporting to CSV or copying to clipboard.\n * If an object is provided, you can choose to ignore the `valueFormatter` for CSV export or clipboard export.\n * @default false\n */\n ignoreValueFormatterDuringExport: PropTypes.oneOfType([PropTypes.shape({\n clipboardExport: PropTypes.bool,\n csvExport: PropTypes.bool\n }), PropTypes.bool]),\n /**\n * If `select`, a group header checkbox in indeterminate state (like \"Select All\" checkbox)\n * will select all the rows under it.\n * If `deselect`, it will deselect all the rows under it.\n * Works only if `checkboxSelection` is enabled.\n * @default \"deselect\"\n * @deprecated `select` will be the default behavior from v8 onwards\n */\n indeterminateCheckboxAction: PropTypes.oneOf(['deselect', 'select']),\n /**\n * The initial state of the DataGrid.\n * The data in it will be set in the state on initialization but will not be controlled.\n * If one of the data in `initialState` is also being controlled, then the control state wins.\n */\n initialState: PropTypes.object,\n /**\n * Callback fired when a cell is rendered, returns true if the cell is editable.\n * @param {GridCellParams} params With all properties from [[GridCellParams]].\n * @returns {boolean} A boolean indicating if the cell is editable.\n */\n isCellEditable: PropTypes.func,\n /**\n * Determines if a row can be selected.\n * @param {GridRowParams} params With all properties from [[GridRowParams]].\n * @returns {boolean} A boolean indicating if the row is selectable.\n */\n isRowSelectable: PropTypes.func,\n /**\n * If `true`, the selection model will retain selected rows that do not exist.\n * Useful when using server side pagination and row selections need to be retained\n * when changing pages.\n * @default false\n */\n keepNonExistentRowsSelected: PropTypes.bool,\n /**\n * If `true`, a loading overlay is displayed.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Set the locale text of the Data Grid.\n * You can find all the translation keys supported in [the source](https://github.com/mui/mui-x/blob/HEAD/packages/x-data-grid/src/constants/localeTextConstants.ts) in the GitHub repository.\n */\n localeText: PropTypes.object,\n /**\n * Pass a custom logger in the components that implements the [[Logger]] interface.\n * @default console\n */\n logger: PropTypes.shape({\n debug: PropTypes.func.isRequired,\n error: PropTypes.func.isRequired,\n info: PropTypes.func.isRequired,\n warn: PropTypes.func.isRequired\n }),\n /**\n * Allows to pass the logging level or false to turn off logging.\n * @default \"error\" (\"warn\" in dev mode)\n */\n logLevel: PropTypes.oneOf(['debug', 'error', 'info', 'warn', false]),\n /**\n * Nonce of the inline styles for [Content Security Policy](https://www.w3.org/TR/2016/REC-CSP2-20161215/#script-src-the-nonce-attribute).\n */\n nonce: PropTypes.string,\n /**\n * Callback fired when any cell is clicked.\n * @param {GridCellParams} params With all properties from [[GridCellParams]].\n * @param {MuiEvent<React.MouseEvent>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onCellClick: PropTypes.func,\n /**\n * Callback fired when a double click event comes from a cell element.\n * @param {GridCellParams} params With all properties from [[GridCellParams]].\n * @param {MuiEvent<React.MouseEvent>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onCellDoubleClick: PropTypes.func,\n /**\n * Callback fired when the cell turns to edit mode.\n * @param {GridCellParams} params With all properties from [[GridCellParams]].\n * @param {MuiEvent<React.KeyboardEvent | React.MouseEvent>} event The event that caused this prop to be called.\n */\n onCellEditStart: PropTypes.func,\n /**\n * Callback fired when the cell turns to view mode.\n * @param {GridCellParams} params With all properties from [[GridCellParams]].\n * @param {MuiEvent<MuiBaseEvent>} event The event that caused this prop to be called.\n */\n onCellEditStop: PropTypes.func,\n /**\n * Callback fired when a keydown event comes from a cell element.\n * @param {GridCellParams} params With all properties from [[GridCellParams]].\n * @param {MuiEvent<React.KeyboardEvent>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onCellKeyDown: PropTypes.func,\n /**\n * Callback fired when the `cellModesModel` prop changes.\n * @param {GridCellModesModel} cellModesModel Object containing which cells are in \"edit\" mode.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onCellModesModelChange: PropTypes.func,\n /**\n * Callback called when the data is copied to the clipboard.\n * @param {string} data The data copied to the clipboard.\n */\n onClipboardCopy: PropTypes.func,\n /**\n * Callback fired when a click event comes from a column header element.\n * @param {GridColumnHeaderParams} params With all properties from [[GridColumnHeaderParams]].\n * @param {MuiEvent<React.MouseEvent>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onColumnHeaderClick: PropTypes.func,\n /**\n * Callback fired when a contextmenu event comes from a column header element.\n * @param {GridColumnHeaderParams} params With all properties from [[GridColumnHeaderParams]].\n * @param {MuiEvent<React.MouseEvent>} event The event object.\n */\n onColumnHeaderContextMenu: PropTypes.func,\n /**\n * Callback fired when a double click event comes from a column header element.\n * @param {GridColumnHeaderParams} params With all properties from [[GridColumnHeaderParams]].\n * @param {MuiEvent<React.MouseEvent>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onColumnHeaderDoubleClick: PropTypes.func,\n /**\n * Callback fired when a mouse enter event comes from a column header element.\n * @param {GridColumnHeaderParams} params With all properties from [[GridColumnHeaderParams]].\n * @param {MuiEvent<React.MouseEvent>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onColumnHeaderEnter: PropTypes.func,\n /**\n * Callback fired when a mouse leave event comes from a column header element.\n * @param {GridColumnHeaderParams} params With all properties from [[GridColumnHeaderParams]].\n * @param {MuiEvent<React.MouseEvent>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onColumnHeaderLeave: PropTypes.func,\n /**\n * Callback fired when a mouseout event comes from a column header element.\n * @param {GridColumnHeaderParams} params With all properties from [[GridColumnHeaderParams]].\n * @param {MuiEvent<React.MouseEvent>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onColumnHeaderOut: PropTypes.func,\n /**\n * Callback fired when a mouseover event comes from a column header element.\n * @param {GridColumnHeaderParams} params With all properties from [[GridColumnHeaderParams]].\n * @param {MuiEvent<React.MouseEvent>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onColumnHeaderOver: PropTypes.func,\n /**\n * Callback fired when a column is reordered.\n * @param {GridColumnOrderChangeParams} params With all properties from [[GridColumnOrderChangeParams]].\n * @param {MuiEvent<{}>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onColumnOrderChange: PropTypes.func,\n /**\n * Callback fired while a column is being resized.\n * @param {GridColumnResizeParams} params With all properties from [[GridColumnResizeParams]].\n * @param {MuiEvent<React.MouseEvent>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onColumnResize: PropTypes.func,\n /**\n * Callback fired when the column visibility model changes.\n * @param {GridColumnVisibilityModel} model The new model.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onColumnVisibilityModelChange: PropTypes.func,\n /**\n * Callback fired when the width of a column is changed.\n * @param {GridColumnResizeParams} params With all properties from [[GridColumnResizeParams]].\n * @param {MuiEvent<React.MouseEvent>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onColumnWidthChange: PropTypes.func,\n /**\n * Callback fired when the density changes.\n * @param {GridDensity} density New density value.\n */\n onDensityChange: PropTypes.func,\n /**\n * Callback fired when the Filter model changes before the filters are applied.\n * @param {GridFilterModel} model With all properties from [[GridFilterModel]].\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onFilterModelChange: PropTypes.func,\n /**\n * Callback fired when the menu is closed.\n * @param {GridMenuParams} params With all properties from [[GridMenuParams]].\n * @param {MuiEvent<{}>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onMenuClose: PropTypes.func,\n /**\n * Callback fired when the menu is opened.\n * @param {GridMenuParams} params With all properties from [[GridMenuParams]].\n * @param {MuiEvent<{}>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onMenuOpen: PropTypes.func,\n /**\n * Callback fired when the pagination meta has changed.\n * @param {GridPaginationMeta} paginationMeta Updated pagination meta.\n */\n onPaginationMetaChange: PropTypes.func,\n /**\n * Callback fired when the pagination model has changed.\n * @param {GridPaginationModel} model Updated pagination model.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onPaginationModelChange: PropTypes.func,\n /**\n * Callback fired when the preferences panel is closed.\n * @param {GridPreferencePanelParams} params With all properties from [[GridPreferencePanelParams]].\n * @param {MuiEvent<{}>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onPreferencePanelClose: PropTypes.func,\n /**\n * Callback fired when the preferences panel is opened.\n * @param {GridPreferencePanelParams} params With all properties from [[GridPreferencePanelParams]].\n * @param {MuiEvent<{}>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onPreferencePanelOpen: PropTypes.func,\n /**\n * Callback called when `processRowUpdate` throws an error or rejects.\n * @param {any} error The error thrown.\n */\n onProcessRowUpdateError: PropTypes.func,\n /**\n * Callback fired when the Data Grid is resized.\n * @param {ElementSize} containerSize With all properties from [[ElementSize]].\n * @param {MuiEvent<{}>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onResize: PropTypes.func,\n /**\n * Callback fired when a row is clicked.\n * Not called if the target clicked is an interactive element added by the built-in columns.\n * @param {GridRowParams} params With all properties from [[GridRowParams]].\n * @param {MuiEvent<React.MouseEvent>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onRowClick: PropTypes.func,\n /**\n * Callback fired when the row count has changed.\n * @param {number} count Updated row count.\n */\n onRowCountChange: PropTypes.func,\n /**\n * Callback fired when a double click event comes from a row container element.\n * @param {GridRowParams} params With all properties from [[RowParams]].\n * @param {MuiEvent<React.MouseEvent>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onRowDoubleClick: PropTypes.func,\n /**\n * Callback fired when the row turns to edit mode.\n * @param {GridRowParams} params With all properties from [[GridRowParams]].\n * @param {MuiEvent<React.KeyboardEvent | React.MouseEvent>} event The event that caused this prop to be called.\n */\n onRowEditStart: PropTypes.func,\n /**\n * Callback fired when the row turns to view mode.\n * @param {GridRowParams} params With all properties from [[GridRowParams]].\n * @param {MuiEvent<MuiBaseEvent>} event The event that caused this prop to be called.\n */\n onRowEditStop: PropTypes.func,\n /**\n * Callback fired when the `rowModesModel` prop changes.\n * @param {GridRowModesModel} rowModesModel Object containing which rows are in \"edit\" mode.\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onRowModesModelChange: PropTypes.func,\n /**\n * Callback fired when the selection state of one or multiple rows changes.\n * @param {GridRowSelectionModel} rowSelectionModel With all the row ids [[GridSelectionModel]].\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onRowSelectionModelChange: PropTypes.func,\n /**\n * Callback fired when the sort model changes before a column is sorted.\n * @param {GridSortModel} model With all properties from [[GridSortModel]].\n * @param {GridCallbackDetails} details Additional details for this callback.\n */\n onSortModelChange: PropTypes.func,\n /**\n * Callback fired when the state of the Data Grid is updated.\n * @param {GridState} state The new state.\n * @param {MuiEvent<{}>} event The event object.\n * @param {GridCallbackDetails} details Additional details for this callback.\n * @ignore - do not document.\n */\n onStateChange: PropTypes.func,\n /**\n * Select the pageSize dynamically using the component UI.\n * @default [25, 50, 100]\n */\n pageSizeOptions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired\n })]).isRequired),\n pagination: PropTypes.oneOf([true]),\n /**\n * The extra information about the pagination state of the Data Grid.\n * Only applicable with `paginationMode=\"server\"`.\n */\n paginationMeta: PropTypes.shape({\n hasNextPage: PropTypes.bool\n }),\n /**\n * Pagination can be processed on the server or client-side.\n * Set it to 'client' if you would like to handle the pagination on the client-side.\n * Set it to 'server' if you would like to handle the pagination on the server-side.\n * @default \"client\"\n */\n paginationMode: PropTypes.oneOf(['client', 'server']),\n /**\n * The pagination model of type [[GridPaginationModel]] which refers to current `page` and `pageSize`.\n */\n paginationModel: PropTypes.shape({\n page: PropTypes.number.isRequired,\n pageSize: PropTypes.number.isRequired\n }),\n /**\n * Callback called before updating a row with new values in the row and cell editing.\n * @template R\n * @param {R} newRow Row object with the new values.\n * @param {R} oldRow Row object with the old values.\n * @param {{ rowId: GridRowId }} params Additional parameters.\n * @returns {Promise<R> | R} The final values to update the row.\n */\n processRowUpdate: PropTypes.func,\n /**\n * The milliseconds throttle delay for resizing the grid.\n * @default 60\n */\n resizeThrottleMs: PropTypes.number,\n /**\n * Row region in pixels to render before/after the viewport\n * @default 150\n */\n rowBufferPx: PropTypes.number,\n /**\n * Set the total number of rows, if it is different from the length of the value `rows` prop.\n * If some rows have children (for instance in the tree data), this number represents the amount of top level rows.\n * Only works with `paginationMode=\"server\"`, ignored when `paginationMode=\"client\"`.\n */\n rowCount: PropTypes.number,\n /**\n * Sets the height in pixel of a row in the Data Grid.\n * @default 52\n */\n rowHeight: PropTypes.number,\n /**\n * Controls the modes of the rows.\n */\n rowModesModel: PropTypes.object,\n /**\n * The milliseconds delay to wait after measuring the row height before recalculating row positions.\n * Setting it to a lower value could be useful when using dynamic row height,\n * but might reduce performance when displaying a large number of rows.\n * @default 166\n * @deprecated\n */\n rowPositionsDebounceMs: PropTypes.number,\n /**\n * Set of rows of type [[GridRowsProp]].\n * @default []\n */\n rows: PropTypes.arrayOf(PropTypes.object),\n /**\n * If `false`, the row selection mode is disabled.\n * @default true\n */\n rowSelection: PropTypes.bool,\n /**\n * Sets the row selection model of the Data Grid.\n */\n rowSelectionModel: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired), PropTypes.number, PropTypes.string]),\n /**\n * Sets the type of space between rows added by `getRowSpacing`.\n * @default \"margin\"\n */\n rowSpacingType: PropTypes.oneOf(['border', 'margin']),\n /**\n * Override the height/width of the Data Grid inner scrollbar.\n */\n scrollbarSize: PropTypes.number,\n /**\n * If `true`, vertical borders will be displayed between cells.\n * @default false\n */\n showCellVerticalBorder: PropTypes.bool,\n /**\n * If `true`, vertical borders will be displayed between column header items.\n * @default false\n */\n showColumnVerticalBorder: PropTypes.bool,\n /**\n * Overridable components props dynamically passed to the component at rendering.\n */\n slotProps: PropTypes.object,\n /**\n * Overridable components.\n */\n slots: PropTypes.object,\n /**\n * Sorting can be processed on the server or client-side.\n * Set it to 'client' if you would like to handle sorting on the client-side.\n * Set it to 'server' if you would like to handle sorting on the server-side.\n * @default \"client\"\n */\n sortingMode: PropTypes.oneOf(['client', 'server']),\n /**\n * The order of the sorting sequence.\n * @default ['asc', 'desc', null]\n */\n sortingOrder: PropTypes.arrayOf(PropTypes.oneOf(['asc', 'desc'])),\n /**\n * Set the sort model of the Data Grid.\n */\n sortModel: PropTypes.arrayOf(PropTypes.shape({\n field: PropTypes.string.isRequired,\n sort: PropTypes.oneOf(['asc', 'desc'])\n })),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * If `true`, the Data Grid will auto span the cells over the rows having the same value.\n * @default false\n */\n unstable_rowSpanning: PropTypes.bool,\n /**\n * If `true`, the Data Grid enables column virtualization when `getRowHeight` is set to `() => 'auto'`.\n * By default, column virtualization is disabled when dynamic row height is enabled to measure the row height correctly.\n * For datasets with a large number of columns, this can cause performance issues.\n * The downside of enabling this prop is that the row height will be estimated based the cells that are currently rendered, which can cause row height change when scrolling horizontally.\n * @default false\n */\n virtualizeColumnsWithAutoRowHeight: PropTypes.bool\n};","import { gridVisibleColumnDefinitionsSelector } from \"../features/columns/gridColumnsSelector.js\";\nimport { useGridSelector } from \"./useGridSelector.js\";\nimport { useGridRootProps } from \"./useGridRootProps.js\";\nimport { gridColumnGroupsHeaderMaxDepthSelector } from \"../features/columnGrouping/gridColumnGroupsSelector.js\";\nimport { gridPinnedRowsCountSelector } from \"../features/rows/gridRowsSelector.js\";\nimport { useGridPrivateApiContext } from \"./useGridPrivateApiContext.js\";\nimport { isMultipleRowSelectionEnabled } from \"../features/rowSelection/utils.js\";\nimport { gridExpandedRowCountSelector } from \"../features/filter/gridFilterSelector.js\";\nexport const useGridAriaAttributes = () => {\n const apiRef = useGridPrivateApiContext();\n const rootProps = useGridRootProps();\n const visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);\n const accessibleRowCount = useGridSelector(apiRef, gridExpandedRowCountSelector);\n const headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector);\n const pinnedRowsCount = useGridSelector(apiRef, gridPinnedRowsCountSelector);\n return {\n role: 'grid',\n 'aria-colcount': visibleColumns.length,\n 'aria-rowcount': headerGroupingMaxDepth + 1 + pinnedRowsCount + accessibleRowCount,\n 'aria-multiselectable': isMultipleRowSelectionEnabled(rootProps)\n };\n};","import * as React from 'react';\nimport { selectedIdsLookupSelector } from \"../rowSelection/index.js\";\nimport { useGridSelector } from \"../../utils/useGridSelector.js\";\nimport { gridColumnGroupsHeaderMaxDepthSelector } from \"../columnGrouping/gridColumnGroupsSelector.js\";\nimport { useGridPrivateApiContext } from \"../../utils/useGridPrivateApiContext.js\";\nexport const useGridRowAriaAttributes = () => {\n const apiRef = useGridPrivateApiContext();\n const selectedIdsLookup = useGridSelector(apiRef, selectedIdsLookupSelector);\n const headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector);\n return React.useCallback((rowNode, index) => {\n const ariaAttributes = {};\n const ariaRowIndex = index + headerGroupingMaxDepth + 2; // 1 for the header row and 1 as it's 1-based\n ariaAttributes['aria-rowindex'] = ariaRowIndex;\n if (apiRef.current.isRowSelectable(rowNode.id)) {\n ariaAttributes['aria-selected'] = selectedIdsLookup[rowNode.id] !== undefined;\n }\n return ariaAttributes;\n }, [apiRef, selectedIdsLookup, headerGroupingMaxDepth]);\n};","// Used https://gist.github.com/mudge/5830382 as a starting point.\n// See https://github.com/browserify/events/blob/master/events.js for\n// the Node.js (https://nodejs.org/api/events.html) polyfill used by webpack.\nexport class EventManager {\n constructor() {\n this.maxListeners = 20;\n this.warnOnce = false;\n this.events = {};\n }\n on(eventName, listener, options = {}) {\n let collection = this.events[eventName];\n if (!collection) {\n collection = {\n highPriority: new Map(),\n regular: new Map()\n };\n this.events[eventName] = collection;\n }\n if (options.isFirst) {\n collection.highPriority.set(listener, true);\n } else {\n collection.regular.set(listener, true);\n }\n if (process.env.NODE_ENV !== 'production') {\n const collectionSize = collection.highPriority.size + collection.regular.size;\n if (collectionSize > this.maxListeners && !this.warnOnce) {\n this.warnOnce = true;\n console.warn([`Possible EventEmitter memory leak detected. ${collectionSize} ${eventName} listeners added.`].join('\\n'));\n }\n }\n }\n removeListener(eventName, listener) {\n if (this.events[eventName]) {\n this.events[eventName].regular.delete(listener);\n this.events[eventName].highPriority.delete(listener);\n }\n }\n removeAllListeners() {\n this.events = {};\n }\n emit(eventName, ...args) {\n const collection = this.events[eventName];\n if (!collection) {\n return;\n }\n const highPriorityListeners = Array.from(collection.highPriority.keys());\n const regularListeners = Array.from(collection.regular.keys());\n for (let i = highPriorityListeners.length - 1; i >= 0; i -= 1) {\n const listener = highPriorityListeners[i];\n if (collection.highPriority.has(listener)) {\n listener.apply(this, args);\n }\n }\n for (let i = 0; i < regularListeners.length; i += 1) {\n const listener = regularListeners[i];\n if (collection.regular.has(listener)) {\n listener.apply(this, args);\n }\n }\n }\n once(eventName, listener) {\n // eslint-disable-next-line consistent-this\n const that = this;\n this.on(eventName, function oneTimeListener(...args) {\n that.removeListener(eventName, oneTimeListener);\n listener.apply(that, args);\n });\n }\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _default = exports.default = parseInt(React.version, 10);","import React from 'react';\n\ninterface Props {\n id: string;\n value: string;\n}\n\nconst hiddenStyles: React.CSSProperties = {\n display: 'none',\n};\n\nexport function HiddenText({id, value}: Props) {\n return (\n <div id={id} style={hiddenStyles}>\n {value}\n </div>\n );\n}\n","import React from 'react';\n\nexport interface Props {\n id: string;\n announcement: string;\n}\n\n// Hide element visually but keep it readable by screen readers\nconst visuallyHidden: React.CSSProperties = {\n position: 'fixed',\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap',\n};\n\nexport function LiveRegion({id, announcement}: Props) {\n return (\n <div\n id={id}\n style={visuallyHidden}\n role=\"status\"\n aria-live=\"assertive\"\n aria-atomic\n >\n {announcement}\n </div>\n );\n}\n","import {createContext} from 'react';\n\nimport type {RegisterListener} from './types';\n\nexport const DndMonitorContext = createContext<RegisterListener | null>(null);\n","import type {Announcements, ScreenReaderInstructions} from './types';\n\nexport const defaultScreenReaderInstructions: ScreenReaderInstructions = {\n draggable: `\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n `,\n};\n\nexport const defaultAnnouncements: Announcements = {\n onDragStart({active}) {\n return `Picked up draggable item ${active.id}.`;\n },\n onDragOver({active, over}) {\n if (over) {\n return `Draggable item ${active.id} was moved over droppable area ${over.id}.`;\n }\n\n return `Draggable item ${active.id} is no longer over a droppable area.`;\n },\n onDragEnd({active, over}) {\n if (over) {\n return `Draggable item ${active.id} was dropped over droppable area ${over.id}`;\n }\n\n return `Draggable item ${active.id} was dropped.`;\n },\n onDragCancel({active}) {\n return `Dragging was cancelled. Draggable item ${active.id} was dropped.`;\n },\n};\n","import React, {useEffect, useMemo, useState} from 'react';\nimport {createPortal} from 'react-dom';\nimport {useUniqueId} from '@dnd-kit/utilities';\nimport {HiddenText, LiveRegion, useAnnouncement} from '@dnd-kit/accessibility';\n\nimport {DndMonitorListener, useDndMonitor} from '../DndMonitor';\n\nimport type {Announcements, ScreenReaderInstructions} from './types';\nimport {\n defaultAnnouncements,\n defaultScreenReaderInstructions,\n} from './defaults';\n\ninterface Props {\n announcements?: Announcements;\n container?: Element;\n screenReaderInstructions?: ScreenReaderInstructions;\n hiddenTextDescribedById: string;\n}\n\nexport function Accessibility({\n announcements = defaultAnnouncements,\n container,\n hiddenTextDescribedById,\n screenReaderInstructions = defaultScreenReaderInstructions,\n}: Props) {\n const {announce, announcement} = useAnnouncement();\n const liveRegionId = useUniqueId(`DndLiveRegion`);\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n useDndMonitor(\n useMemo<DndMonitorListener>(\n () => ({\n onDragStart({active}) {\n announce(announcements.onDragStart({active}));\n },\n onDragMove({active, over}) {\n if (announcements.onDragMove) {\n announce(announcements.onDragMove({active, over}));\n }\n },\n onDragOver({active, over}) {\n announce(announcements.onDragOver({active, over}));\n },\n onDragEnd({active, over}) {\n announce(announcements.onDragEnd({active, over}));\n },\n onDragCancel({active, over}) {\n announce(announcements.onDragCancel({active, over}));\n },\n }),\n [announce, announcements]\n )\n );\n\n if (!mounted) {\n return null;\n }\n\n const markup = (\n <>\n <HiddenText\n id={hiddenTextDescribedById}\n value={screenReaderInstructions.draggable}\n />\n <LiveRegion id={liveRegionId} announcement={announcement} />\n </>\n );\n\n return container ? createPortal(markup, container) : markup;\n}\n","import {useCallback, useState} from 'react';\n\nexport function useAnnouncement() {\n const [announcement, setAnnouncement] = useState('');\n const announce = useCallback((value: string | undefined) => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n\n return {announce, announcement} as const;\n}\n","import {useContext, useEffect} from 'react';\n\nimport {DndMonitorContext} from './context';\nimport type {DndMonitorListener} from './types';\n\nexport function useDndMonitor(listener: DndMonitorListener) {\n const registerListener = useContext(DndMonitorContext);\n\n useEffect(() => {\n if (!registerListener) {\n throw new Error(\n 'useDndMonitor must be used within a children of <DndContext>'\n );\n }\n\n const unsubscribe = registerListener(listener);\n\n return unsubscribe;\n }, [listener, registerListener]);\n}\n","import type {Coordinates, UniqueIdentifier} from '../types';\nimport type {DroppableContainer} from './types';\n\nexport enum Action {\n DragStart = 'dragStart',\n DragMove = 'dragMove',\n DragEnd = 'dragEnd',\n DragCancel = 'dragCancel',\n DragOver = 'dragOver',\n RegisterDroppable = 'registerDroppable',\n SetDroppableDisabled = 'setDroppableDisabled',\n UnregisterDroppable = 'unregisterDroppable',\n}\n\nexport type Actions =\n | {\n type: Action.DragStart;\n active: UniqueIdentifier;\n initialCoordinates: Coordinates;\n }\n | {type: Action.DragMove; coordinates: Coordinates}\n | {type: Action.DragEnd}\n | {type: Action.DragCancel}\n | {\n type: Action.RegisterDroppable;\n element: DroppableContainer;\n }\n | {\n type: Action.SetDroppableDisabled;\n id: UniqueIdentifier;\n key: UniqueIdentifier;\n disabled: boolean;\n }\n | {\n type: Action.UnregisterDroppable;\n id: UniqueIdentifier;\n key: UniqueIdentifier;\n };\n","export function noop(..._args: any) {}\n","import {useMemo} from 'react';\n\nimport type {Sensor, SensorDescriptor, SensorOptions} from './types';\n\nexport function useSensor<T extends SensorOptions>(\n sensor: Sensor<T>,\n options?: T\n): SensorDescriptor<T> {\n return useMemo(\n () => ({\n sensor,\n options: options ?? ({} as T),\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [sensor, options]\n );\n}\n","import {useMemo} from 'react';\n\nimport type {SensorDescriptor, SensorOptions} from './types';\n\nexport function useSensors(\n ...sensors: (SensorDescriptor<any> | undefined | null)[]\n): SensorDescriptor<SensorOptions>[] {\n return useMemo(\n () =>\n [...sensors].filter(\n (sensor): sensor is SensorDescriptor<any> => sensor != null\n ),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...sensors]\n );\n}\n","import type {Coordinates} from '../../types';\n\nexport const defaultCoordinates: Coordinates = Object.freeze({\n x: 0,\n y: 0,\n});\n","import type {Coordinates} from '../../types';\n\n/**\n * Returns the distance between two points\n */\nexport function distanceBetween(p1: Coordinates, p2: Coordinates) {\n return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\n","import {getEventCoordinates} from '@dnd-kit/utilities';\nimport type {ClientRect} from '../../types';\n\nexport function getRelativeTransformOrigin(\n event: MouseEvent | TouchEvent | KeyboardEvent,\n rect: ClientRect\n) {\n const eventCoordinates = getEventCoordinates(event);\n\n if (!eventCoordinates) {\n return '0 0';\n }\n\n const transformOrigin = {\n x: ((eventCoordinates.x - rect.left) / rect.width) * 100,\n y: ((eventCoordinates.y - rect.top) / rect.height) * 100,\n };\n\n return `${transformOrigin.x}% ${transformOrigin.y}%`;\n}\n","/* eslint-disable no-redeclare */\nimport type {ClientRect} from '../../types';\n\nimport type {Collision, CollisionDescriptor} from './types';\n\n/**\n * Sort collisions from smallest to greatest value\n */\nexport function sortCollisionsAsc(\n {data: {value: a}}: CollisionDescriptor,\n {data: {value: b}}: CollisionDescriptor\n) {\n return a - b;\n}\n\n/**\n * Sort collisions from greatest to smallest value\n */\nexport function sortCollisionsDesc(\n {data: {value: a}}: CollisionDescriptor,\n {data: {value: b}}: CollisionDescriptor\n) {\n return b - a;\n}\n\n/**\n * Returns the coordinates of the corners of a given rectangle:\n * [TopLeft {x, y}, TopRight {x, y}, BottomLeft {x, y}, BottomRight {x, y}]\n */\nexport function cornersOfRectangle({left, top, height, width}: ClientRect) {\n return [\n {\n x: left,\n y: top,\n },\n {\n x: left + width,\n y: top,\n },\n {\n x: left,\n y: top + height,\n },\n {\n x: left + width,\n y: top + height,\n },\n ];\n}\n\n/**\n * Returns the first collision, or null if there isn't one.\n * If a property is specified, returns the specified property of the first collision.\n */\nexport function getFirstCollision(\n collisions: Collision[] | null | undefined\n): Collision | null;\nexport function getFirstCollision<T extends keyof Collision>(\n collisions: Collision[] | null | undefined,\n property: T\n): Collision[T] | null;\nexport function getFirstCollision(\n collisions: Collision[] | null | undefined,\n property?: keyof Collision\n) {\n if (!collisions || collisions.length === 0) {\n return null;\n }\n\n const [firstCollision] = collisions;\n\n return property ? firstCollision[property] : firstCollision;\n}\n","import {distanceBetween} from '../coordinates';\nimport type {Coordinates, ClientRect} from '../../types';\n\nimport type {CollisionDescriptor, CollisionDetection} from './types';\nimport {sortCollisionsAsc} from './helpers';\n\n/**\n * Returns the coordinates of the center of a given ClientRect\n */\nfunction centerOfRectangle(\n rect: ClientRect,\n left = rect.left,\n top = rect.top\n): Coordinates {\n return {\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5,\n };\n}\n\n/**\n * Returns the closest rectangles from an array of rectangles to the center of a given\n * rectangle.\n */\nexport const closestCenter: CollisionDetection = ({\n collisionRect,\n droppableRects,\n droppableContainers,\n}) => {\n const centerRect = centerOfRectangle(\n collisionRect,\n collisionRect.left,\n collisionRect.top\n );\n const collisions: CollisionDescriptor[] = [];\n\n for (const droppableContainer of droppableContainers) {\n const {id} = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const distBetween = distanceBetween(centerOfRectangle(rect), centerRect);\n\n collisions.push({id, data: {droppableContainer, value: distBetween}});\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n","import type {ClientRect} from '../../types';\n\nimport type {CollisionDescriptor, CollisionDetection} from './types';\nimport {sortCollisionsDesc} from './helpers';\n\n/**\n * Returns the intersecting rectangle area between two rectangles\n */\nexport function getIntersectionRatio(\n entry: ClientRect,\n target: ClientRect\n): number {\n const top = Math.max(target.top, entry.top);\n const left = Math.max(target.left, entry.left);\n const right = Math.min(target.left + target.width, entry.left + entry.width);\n const bottom = Math.min(target.top + target.height, entry.top + entry.height);\n const width = right - left;\n const height = bottom - top;\n\n if (left < right && top < bottom) {\n const targetArea = target.width * target.height;\n const entryArea = entry.width * entry.height;\n const intersectionArea = width * height;\n const intersectionRatio =\n intersectionArea / (targetArea + entryArea - intersectionArea);\n\n return Number(intersectionRatio.toFixed(4));\n }\n\n // Rectangles do not overlap, or overlap has an area of zero (edge/corner overlap)\n return 0;\n}\n\n/**\n * Returns the rectangles that has the greatest intersection area with a given\n * rectangle in an array of rectangles.\n */\nexport const rectIntersection: CollisionDetection = ({\n collisionRect,\n droppableRects,\n droppableContainers,\n}) => {\n const collisions: CollisionDescriptor[] = [];\n\n for (const droppableContainer of droppableContainers) {\n const {id} = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const intersectionRatio = getIntersectionRatio(rect, collisionRect);\n\n if (intersectionRatio > 0) {\n collisions.push({\n id,\n data: {droppableContainer, value: intersectionRatio},\n });\n }\n }\n }\n\n return collisions.sort(sortCollisionsDesc);\n};\n","import type {Coordinates, ClientRect} from '../../types';\nimport {defaultCoordinates} from '../coordinates';\n\nexport function getRectDelta(\n rect1: ClientRect | null,\n rect2: ClientRect | null\n): Coordinates {\n return rect1 && rect2\n ? {\n x: rect1.left - rect2.left,\n y: rect1.top - rect2.top,\n }\n : defaultCoordinates;\n}\n","import type {Coordinates, ClientRect} from '../../types';\n\nexport function createRectAdjustmentFn(modifier: number) {\n return function adjustClientRect(\n rect: ClientRect,\n ...adjustments: Coordinates[]\n ): ClientRect {\n return adjustments.reduce<ClientRect>(\n (acc, adjustment) => ({\n ...acc,\n top: acc.top + modifier * adjustment.y,\n bottom: acc.bottom + modifier * adjustment.y,\n left: acc.left + modifier * adjustment.x,\n right: acc.right + modifier * adjustment.x,\n }),\n {...rect}\n );\n };\n}\n\nexport const getAdjustedRect = createRectAdjustmentFn(1);\n","import type {Transform} from '@dnd-kit/utilities';\n\nexport function parseTransform(transform: string): Transform | null {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5],\n };\n } else if (transform.startsWith('matrix(')) {\n const transformArray = transform.slice(7, -1).split(/, /);\n\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3],\n };\n }\n\n return null;\n}\n","import {getWindow} from '@dnd-kit/utilities';\n\nimport type {ClientRect} from '../../types';\nimport {inverseTransform} from '../transform';\n\ninterface Options {\n ignoreTransform?: boolean;\n}\n\nconst defaultOptions: Options = {ignoreTransform: false};\n\n/**\n * Returns the bounding client rect of an element relative to the viewport.\n */\nexport function getClientRect(\n element: Element,\n options: Options = defaultOptions\n) {\n let rect: ClientRect = element.getBoundingClientRect();\n\n if (options.ignoreTransform) {\n const {getComputedStyle} = getWindow(element);\n const {transform, transformOrigin} = getComputedStyle(element);\n\n if (transform) {\n rect = inverseTransform(rect, transform, transformOrigin);\n }\n }\n\n const {top, left, width, height, bottom, right} = rect;\n\n return {\n top,\n left,\n width,\n height,\n bottom,\n right,\n };\n}\n\n/**\n * Returns the bounding client rect of an element relative to the viewport.\n *\n * @remarks\n * The ClientRect returned by this method does not take into account transforms\n * applied to the element it measures.\n *\n */\nexport function getTransformAgnosticClientRect(element: Element): ClientRect {\n return getClientRect(element, {ignoreTransform: true});\n}\n","import type {ClientRect} from '../../types';\n\nimport {parseTransform} from './parseTransform';\n\nexport function inverseTransform(\n rect: ClientRect,\n transform: string,\n transformOrigin: string\n): ClientRect {\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return rect;\n }\n\n const {scaleX, scaleY, x: translateX, y: translateY} = parsedTransform;\n\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y =\n rect.top -\n translateY -\n (1 - scaleY) *\n parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n\n return {\n width: w,\n height: h,\n top: y,\n right: x + w,\n bottom: y + h,\n left: x,\n };\n}\n","import {\n getWindow,\n isDocument,\n isHTMLElement,\n isSVGElement,\n} from '@dnd-kit/utilities';\n\nimport {isFixed} from './isFixed';\nimport {isScrollable} from './isScrollable';\n\nexport function getScrollableAncestors(\n element: Node | null,\n limit?: number\n): Element[] {\n const scrollParents: Element[] = [];\n\n function findScrollableAncestors(node: Node | null): Element[] {\n if (limit != null && scrollParents.length >= limit) {\n return scrollParents;\n }\n\n if (!node) {\n return scrollParents;\n }\n\n if (\n isDocument(node) &&\n node.scrollingElement != null &&\n !scrollParents.includes(node.scrollingElement)\n ) {\n scrollParents.push(node.scrollingElement);\n\n return scrollParents;\n }\n\n if (!isHTMLElement(node) || isSVGElement(node)) {\n return scrollParents;\n }\n\n if (scrollParents.includes(node)) {\n return scrollParents;\n }\n\n const {getComputedStyle} = getWindow(node);\n const computedStyle = getComputedStyle(node);\n\n if (node !== element) {\n if (isScrollable(node, computedStyle)) {\n scrollParents.push(node);\n }\n }\n\n if (isFixed(node, computedStyle)) {\n return scrollParents;\n }\n\n return findScrollableAncestors(node.parentNode);\n }\n\n if (!element) {\n return scrollParents;\n }\n\n return findScrollableAncestors(element);\n}\n\nexport function getFirstScrollableAncestor(node: Node | null): Element | null {\n const [firstScrollableAncestor] = getScrollableAncestors(node, 1);\n\n return firstScrollableAncestor ?? null;\n}\n","import {getWindow} from '@dnd-kit/utilities';\n\nexport function isScrollable(\n element: HTMLElement,\n computedStyle: CSSStyleDeclaration = getWindow(element).getComputedStyle(\n element\n )\n): boolean {\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n\n return properties.some((property) => {\n const value = computedStyle[property as keyof CSSStyleDeclaration];\n\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n });\n}\n","import {getWindow} from '@dnd-kit/utilities';\n\nexport function isFixed(\n node: HTMLElement,\n computedStyle: CSSStyleDeclaration = getWindow(node).getComputedStyle(node)\n): boolean {\n return computedStyle.position === 'fixed';\n}\n","import {\n canUseDOM,\n isHTMLElement,\n isDocument,\n getOwnerDocument,\n isNode,\n isWindow,\n} from '@dnd-kit/utilities';\n\nexport function getScrollableElement(element: EventTarget | null) {\n if (!canUseDOM || !element) {\n return null;\n }\n\n if (isWindow(element)) {\n return element;\n }\n\n if (!isNode(element)) {\n return null;\n }\n\n if (\n isDocument(element) ||\n element === getOwnerDocument(element).scrollingElement\n ) {\n return window;\n }\n\n if (isHTMLElement(element)) {\n return element;\n }\n\n return null;\n}\n","import {isWindow} from '@dnd-kit/utilities';\n\nimport type {Coordinates} from '../../types';\n\nexport function getScrollXCoordinate(element: Element | typeof window): number {\n if (isWindow(element)) {\n return element.scrollX;\n }\n\n return element.scrollLeft;\n}\n\nexport function getScrollYCoordinate(element: Element | typeof window): number {\n if (isWindow(element)) {\n return element.scrollY;\n }\n\n return element.scrollTop;\n}\n\nexport function getScrollCoordinates(\n element: Element | typeof window\n): Coordinates {\n return {\n x: getScrollXCoordinate(element),\n y: getScrollYCoordinate(element),\n };\n}\n","export enum Direction {\n Forward = 1,\n Backward = -1,\n}\n","import {canUseDOM} from '@dnd-kit/utilities';\n\nexport function isDocumentScrollingElement(element: Element | null) {\n if (!canUseDOM || !element) {\n return false;\n }\n\n return element === document.scrollingElement;\n}\n","import {isDocumentScrollingElement} from './documentScrollingElement';\n\nexport function getScrollPosition(scrollingContainer: Element) {\n const minScroll = {\n x: 0,\n y: 0,\n };\n const dimensions = isDocumentScrollingElement(scrollingContainer)\n ? {\n height: window.innerHeight,\n width: window.innerWidth,\n }\n : {\n height: scrollingContainer.clientHeight,\n width: scrollingContainer.clientWidth,\n };\n const maxScroll = {\n x: scrollingContainer.scrollWidth - dimensions.width,\n y: scrollingContainer.scrollHeight - dimensions.height,\n };\n\n const isTop = scrollingContainer.scrollTop <= minScroll.y;\n const isLeft = scrollingContainer.scrollLeft <= minScroll.x;\n const isBottom = scrollingContainer.scrollTop >= maxScroll.y;\n const isRight = scrollingContainer.scrollLeft >= maxScroll.x;\n\n return {\n isTop,\n isLeft,\n isBottom,\n isRight,\n maxScroll,\n minScroll,\n };\n}\n","import {Direction, ClientRect} from '../../types';\nimport {getScrollPosition} from './getScrollPosition';\n\ninterface PositionalCoordinates\n extends Pick<ClientRect, 'top' | 'left' | 'right' | 'bottom'> {}\n\nconst defaultThreshold = {\n x: 0.2,\n y: 0.2,\n};\n\nexport function getScrollDirectionAndSpeed(\n scrollContainer: Element,\n scrollContainerRect: ClientRect,\n {top, left, right, bottom}: PositionalCoordinates,\n acceleration = 10,\n thresholdPercentage = defaultThreshold\n) {\n const {isTop, isBottom, isLeft, isRight} = getScrollPosition(scrollContainer);\n\n const direction = {\n x: 0,\n y: 0,\n };\n const speed = {\n x: 0,\n y: 0,\n };\n const threshold = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x,\n };\n\n if (!isTop && top <= scrollContainerRect.top + threshold.height) {\n // Scroll Up\n direction.y = Direction.Backward;\n speed.y =\n acceleration *\n Math.abs(\n (scrollContainerRect.top + threshold.height - top) / threshold.height\n );\n } else if (\n !isBottom &&\n bottom >= scrollContainerRect.bottom - threshold.height\n ) {\n // Scroll Down\n direction.y = Direction.Forward;\n speed.y =\n acceleration *\n Math.abs(\n (scrollContainerRect.bottom - threshold.height - bottom) /\n threshold.height\n );\n }\n\n if (!isRight && right >= scrollContainerRect.right - threshold.width) {\n // Scroll Right\n direction.x = Direction.Forward;\n speed.x =\n acceleration *\n Math.abs(\n (scrollContainerRect.right - threshold.width - right) / threshold.width\n );\n } else if (!isLeft && left <= scrollContainerRect.left + threshold.width) {\n // Scroll Left\n direction.x = Direction.Backward;\n speed.x =\n acceleration *\n Math.abs(\n (scrollContainerRect.left + threshold.width - left) / threshold.width\n );\n }\n\n return {\n direction,\n speed,\n };\n}\n","export function getScrollElementRect(element: Element) {\n if (element === document.scrollingElement) {\n const {innerWidth, innerHeight} = window;\n\n return {\n top: 0,\n left: 0,\n right: innerWidth,\n bottom: innerHeight,\n width: innerWidth,\n height: innerHeight,\n };\n }\n\n const {top, left, right, bottom} = element.getBoundingClientRect();\n\n return {\n top,\n left,\n right,\n bottom,\n width: element.clientWidth,\n height: element.clientHeight,\n };\n}\n","import {add} from '@dnd-kit/utilities';\n\nimport type {Coordinates} from '../../types';\nimport {\n getScrollCoordinates,\n getScrollXCoordinate,\n getScrollYCoordinate,\n} from './getScrollCoordinates';\nimport {defaultCoordinates} from '../coordinates';\n\nexport function getScrollOffsets(scrollableAncestors: Element[]): Coordinates {\n return scrollableAncestors.reduce<Coordinates>((acc, node) => {\n return add(acc, getScrollCoordinates(node));\n }, defaultCoordinates);\n}\n\nexport function getScrollXOffset(scrollableAncestors: Element[]): number {\n return scrollableAncestors.reduce<number>((acc, node) => {\n return acc + getScrollXCoordinate(node);\n }, 0);\n}\n\nexport function getScrollYOffset(scrollableAncestors: Element[]): number {\n return scrollableAncestors.reduce<number>((acc, node) => {\n return acc + getScrollYCoordinate(node);\n }, 0);\n}\n","import type {ClientRect} from '../../types';\nimport {getClientRect} from '../rect/getRect';\nimport {getFirstScrollableAncestor} from './getScrollableAncestors';\n\nexport function scrollIntoViewIfNeeded(\n element: HTMLElement | null | undefined,\n measure: (node: HTMLElement) => ClientRect = getClientRect\n) {\n if (!element) {\n return;\n }\n\n const {top, left, bottom, right} = measure(element);\n const firstScrollableAncestor = getFirstScrollableAncestor(element);\n\n if (!firstScrollableAncestor) {\n return;\n }\n\n if (\n bottom <= 0 ||\n right <= 0 ||\n top >= window.innerHeight ||\n left >= window.innerWidth\n ) {\n element.scrollIntoView({\n block: 'center',\n inline: 'center',\n });\n }\n}\n","import type {ClientRect} from '../../types/rect';\nimport {\n getScrollableAncestors,\n getScrollOffsets,\n getScrollXOffset,\n getScrollYOffset,\n} from '../scroll';\n\nconst properties = [\n ['x', ['left', 'right'], getScrollXOffset],\n ['y', ['top', 'bottom'], getScrollYOffset],\n] as const;\n\nexport class Rect {\n constructor(rect: ClientRect, element: Element) {\n const scrollableAncestors = getScrollableAncestors(element);\n const scrollOffsets = getScrollOffsets(scrollableAncestors);\n\n this.rect = {...rect};\n this.width = rect.width;\n this.height = rect.height;\n\n for (const [axis, keys, getScrollOffset] of properties) {\n for (const key of keys) {\n Object.defineProperty(this, key, {\n get: () => {\n const currentOffsets = getScrollOffset(scrollableAncestors);\n const scrollOffsetsDeltla = scrollOffsets[axis] - currentOffsets;\n\n return this.rect[key] + scrollOffsetsDeltla;\n },\n enumerable: true,\n });\n }\n }\n\n Object.defineProperty(this, 'rect', {enumerable: false});\n }\n\n private rect: ClientRect;\n\n public width: number;\n\n public height: number;\n\n // The below properties are set by the `Object.defineProperty` calls in the constructor\n // @ts-ignore\n public top: number;\n // @ts-ignore\n public bottom: number;\n // @ts-ignore\n public right: number;\n // @ts-ignore\n public left: number;\n}\n","export class Listeners {\n private listeners: [\n string,\n EventListenerOrEventListenerObject,\n AddEventListenerOptions | boolean | undefined\n ][] = [];\n\n constructor(private target: EventTarget | null) {}\n\n public add<T extends Event>(\n eventName: string,\n handler: (event: T) => void,\n options?: AddEventListenerOptions | boolean\n ) {\n this.target?.addEventListener(eventName, handler as EventListener, options);\n this.listeners.push([eventName, handler as EventListener, options]);\n }\n\n public removeAll = () => {\n this.listeners.forEach((listener) =>\n this.target?.removeEventListener(...listener)\n );\n };\n}\n","import type {Coordinates, DistanceMeasurement} from '../../types';\n\nexport function hasExceededDistance(\n delta: Coordinates,\n measurement: DistanceMeasurement\n): boolean {\n const dx = Math.abs(delta.x);\n const dy = Math.abs(delta.y);\n\n if (typeof measurement === 'number') {\n return Math.sqrt(dx ** 2 + dy ** 2) > measurement;\n }\n\n if ('x' in measurement && 'y' in measurement) {\n return dx > measurement.x && dy > measurement.y;\n }\n\n if ('x' in measurement) {\n return dx > measurement.x;\n }\n\n if ('y' in measurement) {\n return dy > measurement.y;\n }\n\n return false;\n}\n","export enum EventName {\n Click = 'click',\n DragStart = 'dragstart',\n Keydown = 'keydown',\n ContextMenu = 'contextmenu',\n Resize = 'resize',\n SelectionChange = 'selectionchange',\n VisibilityChange = 'visibilitychange',\n}\n\nexport function preventDefault(event: Event) {\n event.preventDefault();\n}\n\nexport function stopPropagation(event: Event) {\n event.stopPropagation();\n}\n","import type {Coordinates, UniqueIdentifier} from '../../types';\nimport type {SensorContext} from '../types';\n\nexport enum KeyboardCode {\n Space = 'Space',\n Down = 'ArrowDown',\n Right = 'ArrowRight',\n Left = 'ArrowLeft',\n Up = 'ArrowUp',\n Esc = 'Escape',\n Enter = 'Enter',\n}\n\nexport type KeyboardCodes = {\n start: KeyboardEvent['code'][];\n cancel: KeyboardEvent['code'][];\n end: KeyboardEvent['code'][];\n};\n\nexport type KeyboardCoordinateGetter = (\n event: KeyboardEvent,\n args: {\n active: UniqueIdentifier;\n currentCoordinates: Coordinates;\n context: SensorContext;\n }\n) => Coordinates | void;\n","import {KeyboardCoordinateGetter, KeyboardCode, KeyboardCodes} from './types';\n\nexport const defaultKeyboardCodes: KeyboardCodes = {\n start: [KeyboardCode.Space, KeyboardCode.Enter],\n cancel: [KeyboardCode.Esc],\n end: [KeyboardCode.Space, KeyboardCode.Enter],\n};\n\nexport const defaultKeyboardCoordinateGetter: KeyboardCoordinateGetter = (\n event,\n {currentCoordinates}\n) => {\n switch (event.code) {\n case KeyboardCode.Right:\n return {\n ...currentCoordinates,\n x: currentCoordinates.x + 25,\n };\n case KeyboardCode.Left:\n return {\n ...currentCoordinates,\n x: currentCoordinates.x - 25,\n };\n case KeyboardCode.Down:\n return {\n ...currentCoordinates,\n y: currentCoordinates.y + 25,\n };\n case KeyboardCode.Up:\n return {\n ...currentCoordinates,\n y: currentCoordinates.y - 25,\n };\n }\n\n return undefined;\n};\n","import {\n add as getAdjustedCoordinates,\n subtract as getCoordinatesDelta,\n getOwnerDocument,\n getWindow,\n isKeyboardEvent,\n} from '@dnd-kit/utilities';\n\nimport type {Coordinates} from '../../types';\nimport {\n defaultCoordinates,\n getScrollPosition,\n getScrollElementRect,\n} from '../../utilities';\nimport {scrollIntoViewIfNeeded} from '../../utilities/scroll';\nimport {EventName} from '../events';\nimport {Listeners} from '../utilities';\nimport type {\n Activators,\n SensorInstance,\n SensorProps,\n SensorOptions,\n} from '../types';\n\nimport {KeyboardCoordinateGetter, KeyboardCode, KeyboardCodes} from './types';\nimport {\n defaultKeyboardCodes,\n defaultKeyboardCoordinateGetter,\n} from './defaults';\n\nexport interface KeyboardSensorOptions extends SensorOptions {\n keyboardCodes?: KeyboardCodes;\n coordinateGetter?: KeyboardCoordinateGetter;\n scrollBehavior?: ScrollBehavior;\n onActivation?({event}: {event: KeyboardEvent}): void;\n}\n\nexport type KeyboardSensorProps = SensorProps<KeyboardSensorOptions>;\n\nexport class KeyboardSensor implements SensorInstance {\n public autoScrollEnabled = false;\n private referenceCoordinates: Coordinates | undefined;\n private listeners: Listeners;\n private windowListeners: Listeners;\n\n constructor(private props: KeyboardSensorProps) {\n const {\n event: {target},\n } = props;\n\n this.props = props;\n this.listeners = new Listeners(getOwnerDocument(target));\n this.windowListeners = new Listeners(getWindow(target));\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n\n this.attach();\n }\n\n private attach() {\n this.handleStart();\n\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n\n setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown));\n }\n\n private handleStart() {\n const {activeNode, onStart} = this.props;\n const node = activeNode.node.current;\n\n if (node) {\n scrollIntoViewIfNeeded(node);\n }\n\n onStart(defaultCoordinates);\n }\n\n private handleKeyDown(event: Event) {\n if (isKeyboardEvent(event)) {\n const {active, context, options} = this.props;\n const {\n keyboardCodes = defaultKeyboardCodes,\n coordinateGetter = defaultKeyboardCoordinateGetter,\n scrollBehavior = 'smooth',\n } = options;\n const {code} = event;\n\n if (keyboardCodes.end.includes(code)) {\n this.handleEnd(event);\n return;\n }\n\n if (keyboardCodes.cancel.includes(code)) {\n this.handleCancel(event);\n return;\n }\n\n const {collisionRect} = context.current;\n const currentCoordinates = collisionRect\n ? {x: collisionRect.left, y: collisionRect.top}\n : defaultCoordinates;\n\n if (!this.referenceCoordinates) {\n this.referenceCoordinates = currentCoordinates;\n }\n\n const newCoordinates = coordinateGetter(event, {\n active,\n context: context.current,\n currentCoordinates,\n });\n\n if (newCoordinates) {\n const coordinatesDelta = getCoordinatesDelta(\n newCoordinates,\n currentCoordinates\n );\n const scrollDelta = {\n x: 0,\n y: 0,\n };\n const {scrollableAncestors} = context.current;\n\n for (const scrollContainer of scrollableAncestors) {\n const direction = event.code;\n const {isTop, isRight, isLeft, isBottom, maxScroll, minScroll} =\n getScrollPosition(scrollContainer);\n const scrollElementRect = getScrollElementRect(scrollContainer);\n\n const clampedCoordinates = {\n x: Math.min(\n direction === KeyboardCode.Right\n ? scrollElementRect.right - scrollElementRect.width / 2\n : scrollElementRect.right,\n Math.max(\n direction === KeyboardCode.Right\n ? scrollElementRect.left\n : scrollElementRect.left + scrollElementRect.width / 2,\n newCoordinates.x\n )\n ),\n y: Math.min(\n direction === KeyboardCode.Down\n ? scrollElementRect.bottom - scrollElementRect.height / 2\n : scrollElementRect.bottom,\n Math.max(\n direction === KeyboardCode.Down\n ? scrollElementRect.top\n : scrollElementRect.top + scrollElementRect.height / 2,\n newCoordinates.y\n )\n ),\n };\n\n const canScrollX =\n (direction === KeyboardCode.Right && !isRight) ||\n (direction === KeyboardCode.Left && !isLeft);\n const canScrollY =\n (direction === KeyboardCode.Down && !isBottom) ||\n (direction === KeyboardCode.Up && !isTop);\n\n if (canScrollX && clampedCoordinates.x !== newCoordinates.x) {\n const newScrollCoordinates =\n scrollContainer.scrollLeft + coordinatesDelta.x;\n const canScrollToNewCoordinates =\n (direction === KeyboardCode.Right &&\n newScrollCoordinates <= maxScroll.x) ||\n (direction === KeyboardCode.Left &&\n newScrollCoordinates >= minScroll.x);\n\n if (canScrollToNewCoordinates && !coordinatesDelta.y) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n left: newScrollCoordinates,\n behavior: scrollBehavior,\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.x = scrollContainer.scrollLeft - newScrollCoordinates;\n } else {\n scrollDelta.x =\n direction === KeyboardCode.Right\n ? scrollContainer.scrollLeft - maxScroll.x\n : scrollContainer.scrollLeft - minScroll.x;\n }\n\n if (scrollDelta.x) {\n scrollContainer.scrollBy({\n left: -scrollDelta.x,\n behavior: scrollBehavior,\n });\n }\n break;\n } else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) {\n const newScrollCoordinates =\n scrollContainer.scrollTop + coordinatesDelta.y;\n const canScrollToNewCoordinates =\n (direction === KeyboardCode.Down &&\n newScrollCoordinates <= maxScroll.y) ||\n (direction === KeyboardCode.Up &&\n newScrollCoordinates >= minScroll.y);\n\n if (canScrollToNewCoordinates && !coordinatesDelta.x) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n top: newScrollCoordinates,\n behavior: scrollBehavior,\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.y = scrollContainer.scrollTop - newScrollCoordinates;\n } else {\n scrollDelta.y =\n direction === KeyboardCode.Down\n ? scrollContainer.scrollTop - maxScroll.y\n : scrollContainer.scrollTop - minScroll.y;\n }\n\n if (scrollDelta.y) {\n scrollContainer.scrollBy({\n top: -scrollDelta.y,\n behavior: scrollBehavior,\n });\n }\n\n break;\n }\n }\n\n this.handleMove(\n event,\n getAdjustedCoordinates(\n getCoordinatesDelta(newCoordinates, this.referenceCoordinates),\n scrollDelta\n )\n );\n }\n }\n }\n\n private handleMove(event: Event, coordinates: Coordinates) {\n const {onMove} = this.props;\n\n event.preventDefault();\n onMove(coordinates);\n }\n\n private handleEnd(event: Event) {\n const {onEnd} = this.props;\n\n event.preventDefault();\n this.detach();\n onEnd();\n }\n\n private handleCancel(event: Event) {\n const {onCancel} = this.props;\n\n event.preventDefault();\n this.detach();\n onCancel();\n }\n\n private detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n }\n\n static activators: Activators<KeyboardSensorOptions> = [\n {\n eventName: 'onKeyDown' as const,\n handler: (\n event: React.KeyboardEvent,\n {keyboardCodes = defaultKeyboardCodes, onActivation},\n {active}\n ) => {\n const {code} = event.nativeEvent;\n\n if (keyboardCodes.start.includes(code)) {\n const activator = active.activatorNode.current;\n\n if (activator && event.target !== activator) {\n return false;\n }\n\n event.preventDefault();\n\n onActivation?.({event: event.nativeEvent});\n\n return true;\n }\n\n return false;\n },\n },\n ];\n}\n","import {\n subtract as getCoordinatesDelta,\n getEventCoordinates,\n getOwnerDocument,\n getWindow,\n} from '@dnd-kit/utilities';\n\nimport {defaultCoordinates} from '../../utilities';\nimport {\n getEventListenerTarget,\n hasExceededDistance,\n Listeners,\n} from '../utilities';\nimport {EventName, preventDefault, stopPropagation} from '../events';\nimport {KeyboardCode} from '../keyboard';\nimport type {SensorInstance, SensorProps, SensorOptions} from '../types';\nimport type {Coordinates, DistanceMeasurement} from '../../types';\n\ninterface DistanceConstraint {\n distance: DistanceMeasurement;\n tolerance?: DistanceMeasurement;\n}\n\ninterface DelayConstraint {\n delay: number;\n tolerance: DistanceMeasurement;\n}\n\ninterface EventDescriptor {\n name: keyof DocumentEventMap;\n passive?: boolean;\n}\n\nexport interface PointerEventHandlers {\n move: EventDescriptor;\n end: EventDescriptor;\n}\n\nexport type PointerActivationConstraint = DistanceConstraint | DelayConstraint;\n\nfunction isDistanceConstraint(\n constraint: PointerActivationConstraint\n): constraint is DistanceConstraint {\n return Boolean(constraint && 'distance' in constraint);\n}\n\nfunction isDelayConstraint(\n constraint: PointerActivationConstraint\n): constraint is DelayConstraint {\n return Boolean(constraint && 'delay' in constraint);\n}\n\nexport interface AbstractPointerSensorOptions extends SensorOptions {\n activationConstraint?: PointerActivationConstraint;\n onActivation?({event}: {event: Event}): void;\n}\n\nexport type AbstractPointerSensorProps = SensorProps<AbstractPointerSensorOptions>;\n\nexport class AbstractPointerSensor implements SensorInstance {\n public autoScrollEnabled = true;\n private document: Document;\n private activated: boolean = false;\n private initialCoordinates: Coordinates;\n private timeoutId: NodeJS.Timeout | null = null;\n private listeners: Listeners;\n private documentListeners: Listeners;\n private windowListeners: Listeners;\n\n constructor(\n private props: AbstractPointerSensorProps,\n private events: PointerEventHandlers,\n listenerTarget = getEventListenerTarget(props.event.target)\n ) {\n const {event} = props;\n const {target} = event;\n\n this.props = props;\n this.events = events;\n this.document = getOwnerDocument(target);\n this.documentListeners = new Listeners(this.document);\n this.listeners = new Listeners(listenerTarget);\n this.windowListeners = new Listeners(getWindow(target));\n this.initialCoordinates = getEventCoordinates(event) ?? defaultCoordinates;\n this.handleStart = this.handleStart.bind(this);\n this.handleMove = this.handleMove.bind(this);\n this.handleEnd = this.handleEnd.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.removeTextSelection = this.removeTextSelection.bind(this);\n\n this.attach();\n }\n\n private attach() {\n const {\n events,\n props: {\n options: {activationConstraint},\n },\n } = this;\n\n this.listeners.add(events.move.name, this.handleMove, {passive: false});\n this.listeners.add(events.end.name, this.handleEnd);\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.DragStart, preventDefault);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n this.windowListeners.add(EventName.ContextMenu, preventDefault);\n this.documentListeners.add(EventName.Keydown, this.handleKeydown);\n\n if (activationConstraint) {\n if (isDistanceConstraint(activationConstraint)) {\n return;\n }\n\n if (isDelayConstraint(activationConstraint)) {\n this.timeoutId = setTimeout(\n this.handleStart,\n activationConstraint.delay\n );\n return;\n }\n }\n\n this.handleStart();\n }\n\n private detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n\n // Wait until the next event loop before removing document listeners\n // This is necessary because we listen for `click` and `selection` events on the document\n setTimeout(this.documentListeners.removeAll, 50);\n\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n\n private handleStart() {\n const {initialCoordinates} = this;\n const {onStart} = this.props;\n\n if (initialCoordinates) {\n this.activated = true;\n\n // Stop propagation of click events once activation constraints are met\n this.documentListeners.add(EventName.Click, stopPropagation, {\n capture: true,\n });\n\n // Remove any text selection from the document\n this.removeTextSelection();\n\n // Prevent further text selection while dragging\n this.documentListeners.add(\n EventName.SelectionChange,\n this.removeTextSelection\n );\n\n onStart(initialCoordinates);\n }\n }\n\n private handleMove(event: Event) {\n const {activated, initialCoordinates, props} = this;\n const {\n onMove,\n options: {activationConstraint},\n } = props;\n\n if (!initialCoordinates) {\n return;\n }\n\n const coordinates = getEventCoordinates(event) ?? defaultCoordinates;\n const delta = getCoordinatesDelta(initialCoordinates, coordinates);\n\n if (!activated && activationConstraint) {\n // Constraint validation\n if (isDelayConstraint(activationConstraint)) {\n if (hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n\n return;\n }\n\n if (isDistanceConstraint(activationConstraint)) {\n if (\n activationConstraint.tolerance != null &&\n hasExceededDistance(delta, activationConstraint.tolerance)\n ) {\n return this.handleCancel();\n }\n if (hasExceededDistance(delta, activationConstraint.distance)) {\n return this.handleStart();\n }\n\n return;\n }\n }\n\n if (event.cancelable) {\n event.preventDefault();\n }\n\n onMove(coordinates);\n }\n\n private handleEnd() {\n const {onEnd} = this.props;\n\n this.detach();\n onEnd();\n }\n\n private handleCancel() {\n const {onCancel} = this.props;\n\n this.detach();\n onCancel();\n }\n\n private handleKeydown(event: KeyboardEvent) {\n if (event.code === KeyboardCode.Esc) {\n this.handleCancel();\n }\n }\n\n private removeTextSelection() {\n this.document.getSelection()?.removeAllRanges();\n }\n}\n","import {getOwnerDocument, getWindow} from '@dnd-kit/utilities';\n\nexport function getEventListenerTarget(\n target: EventTarget | null\n): EventTarget | Document {\n // If the `event.target` element is removed from the document events will still be targeted\n // at it, and hence won't always bubble up to the window or document anymore.\n // If there is any risk of an element being removed while it is being dragged,\n // the best practice is to attach the event listeners directly to the target.\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n\n const {EventTarget} = getWindow(target);\n\n return target instanceof EventTarget ? target : getOwnerDocument(target);\n}\n","import type {PointerEvent} from 'react';\nimport {getOwnerDocument} from '@dnd-kit/utilities';\n\nimport type {SensorProps} from '../types';\nimport {\n AbstractPointerSensor,\n AbstractPointerSensorOptions,\n PointerEventHandlers,\n} from './AbstractPointerSensor';\n\nconst events: PointerEventHandlers = {\n move: {name: 'pointermove'},\n end: {name: 'pointerup'},\n};\n\nexport interface PointerSensorOptions extends AbstractPointerSensorOptions {}\n\nexport type PointerSensorProps = SensorProps<PointerSensorOptions>;\n\nexport class PointerSensor extends AbstractPointerSensor {\n constructor(props: PointerSensorProps) {\n const {event} = props;\n // Pointer events stop firing if the target is unmounted while dragging\n // Therefore we attach listeners to the owner document instead\n const listenerTarget = getOwnerDocument(event.target);\n\n super(props, events, listenerTarget);\n }\n\n static activators = [\n {\n eventName: 'onPointerDown' as const,\n handler: (\n {nativeEvent: event}: PointerEvent,\n {onActivation}: PointerSensorOptions\n ) => {\n if (!event.isPrimary || event.button !== 0) {\n return false;\n }\n\n onActivation?.({event});\n\n return true;\n },\n },\n ];\n}\n","import type {MouseEvent} from 'react';\nimport {getOwnerDocument} from '@dnd-kit/utilities';\n\nimport type {SensorProps} from '../types';\nimport {\n AbstractPointerSensor,\n PointerEventHandlers,\n AbstractPointerSensorOptions,\n} from '../pointer';\n\nconst events: PointerEventHandlers = {\n move: {name: 'mousemove'},\n end: {name: 'mouseup'},\n};\n\nenum MouseButton {\n RightClick = 2,\n}\n\nexport interface MouseSensorOptions extends AbstractPointerSensorOptions {}\n\nexport type MouseSensorProps = SensorProps<MouseSensorOptions>;\n\nexport class MouseSensor extends AbstractPointerSensor {\n constructor(props: MouseSensorProps) {\n super(props, events, getOwnerDocument(props.event.target));\n }\n\n static activators = [\n {\n eventName: 'onMouseDown' as const,\n handler: (\n {nativeEvent: event}: MouseEvent,\n {onActivation}: MouseSensorOptions\n ) => {\n if (event.button === MouseButton.RightClick) {\n return false;\n }\n\n onActivation?.({event});\n\n return true;\n },\n },\n ];\n}\n","import type {TouchEvent} from 'react';\n\nimport {\n AbstractPointerSensor,\n PointerSensorProps,\n PointerEventHandlers,\n PointerSensorOptions,\n} from '../pointer';\nimport type {SensorProps} from '../types';\n\nconst events: PointerEventHandlers = {\n move: {name: 'touchmove'},\n end: {name: 'touchend'},\n};\n\nexport interface TouchSensorOptions extends PointerSensorOptions {}\n\nexport type TouchSensorProps = SensorProps<TouchSensorOptions>;\n\nexport class TouchSensor extends AbstractPointerSensor {\n constructor(props: PointerSensorProps) {\n super(props, events);\n }\n\n static activators = [\n {\n eventName: 'onTouchStart' as const,\n handler: (\n {nativeEvent: event}: TouchEvent,\n {onActivation}: TouchSensorOptions\n ) => {\n const {touches} = event;\n\n if (touches.length > 1) {\n return false;\n }\n\n onActivation?.({event});\n\n return true;\n },\n },\n ];\n\n static setup() {\n // Adding a non-capture and non-passive `touchmove` listener in order\n // to force `event.preventDefault()` calls to work in dynamically added\n // touchmove event handlers. This is required for iOS Safari.\n window.addEventListener(events.move.name, noop, {\n capture: false,\n passive: false,\n });\n\n return function teardown() {\n window.removeEventListener(events.move.name, noop);\n };\n\n // We create a new handler because the teardown function of another sensor\n // could remove our event listener if we use a referentially equal listener.\n function noop() {}\n }\n}\n","import {useCallback, useEffect, useMemo, useRef} from 'react';\nimport {useInterval, useLazyMemo, usePrevious} from '@dnd-kit/utilities';\n\nimport {getScrollDirectionAndSpeed} from '../../utilities';\nimport {Direction} from '../../types';\nimport type {Coordinates, ClientRect} from '../../types';\n\nexport type ScrollAncestorSortingFn = (ancestors: Element[]) => Element[];\n\nexport enum AutoScrollActivator {\n Pointer,\n DraggableRect,\n}\n\nexport interface Options {\n acceleration?: number;\n activator?: AutoScrollActivator;\n canScroll?: CanScroll;\n enabled?: boolean;\n interval?: number;\n layoutShiftCompensation?:\n | boolean\n | {\n x: boolean;\n y: boolean;\n };\n order?: TraversalOrder;\n threshold?: {\n x: number;\n y: number;\n };\n}\n\ninterface Arguments extends Options {\n draggingRect: ClientRect | null;\n enabled: boolean;\n pointerCoordinates: Coordinates | null;\n scrollableAncestors: Element[];\n scrollableAncestorRects: ClientRect[];\n delta: Coordinates;\n}\n\nexport type CanScroll = (element: Element) => boolean;\n\nexport enum TraversalOrder {\n TreeOrder,\n ReversedTreeOrder,\n}\n\ninterface ScrollDirection {\n x: 0 | Direction;\n y: 0 | Direction;\n}\n\nexport function useAutoScroller({\n acceleration,\n activator = AutoScrollActivator.Pointer,\n canScroll,\n draggingRect,\n enabled,\n interval = 5,\n order = TraversalOrder.TreeOrder,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n delta,\n threshold,\n}: Arguments) {\n const scrollIntent = useScrollIntent({delta, disabled: !enabled});\n const [setAutoScrollInterval, clearAutoScrollInterval] = useInterval();\n const scrollSpeed = useRef<Coordinates>({x: 0, y: 0});\n const scrollDirection = useRef<ScrollDirection>({x: 0, y: 0});\n const rect = useMemo(() => {\n switch (activator) {\n case AutoScrollActivator.Pointer:\n return pointerCoordinates\n ? {\n top: pointerCoordinates.y,\n bottom: pointerCoordinates.y,\n left: pointerCoordinates.x,\n right: pointerCoordinates.x,\n }\n : null;\n case AutoScrollActivator.DraggableRect:\n return draggingRect;\n }\n }, [activator, draggingRect, pointerCoordinates]);\n const scrollContainerRef = useRef<Element | null>(null);\n const autoScroll = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n\n if (!scrollContainer) {\n return;\n }\n\n const scrollLeft = scrollSpeed.current.x * scrollDirection.current.x;\n const scrollTop = scrollSpeed.current.y * scrollDirection.current.y;\n\n scrollContainer.scrollBy(scrollLeft, scrollTop);\n }, []);\n const sortedScrollableAncestors = useMemo(\n () =>\n order === TraversalOrder.TreeOrder\n ? [...scrollableAncestors].reverse()\n : scrollableAncestors,\n [order, scrollableAncestors]\n );\n\n useEffect(\n () => {\n if (!enabled || !scrollableAncestors.length || !rect) {\n clearAutoScrollInterval();\n return;\n }\n\n for (const scrollContainer of sortedScrollableAncestors) {\n if (canScroll?.(scrollContainer) === false) {\n continue;\n }\n\n const index = scrollableAncestors.indexOf(scrollContainer);\n const scrollContainerRect = scrollableAncestorRects[index];\n\n if (!scrollContainerRect) {\n continue;\n }\n\n const {direction, speed} = getScrollDirectionAndSpeed(\n scrollContainer,\n scrollContainerRect,\n rect,\n acceleration,\n threshold\n );\n\n for (const axis of ['x', 'y'] as const) {\n if (!scrollIntent[axis][direction[axis] as Direction]) {\n speed[axis] = 0;\n direction[axis] = 0;\n }\n }\n\n if (speed.x > 0 || speed.y > 0) {\n clearAutoScrollInterval();\n\n scrollContainerRef.current = scrollContainer;\n setAutoScrollInterval(autoScroll, interval);\n\n scrollSpeed.current = speed;\n scrollDirection.current = direction;\n\n return;\n }\n }\n\n scrollSpeed.current = {x: 0, y: 0};\n scrollDirection.current = {x: 0, y: 0};\n clearAutoScrollInterval();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n acceleration,\n autoScroll,\n canScroll,\n clearAutoScrollInterval,\n enabled,\n interval,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(rect),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(scrollIntent),\n setAutoScrollInterval,\n scrollableAncestors,\n sortedScrollableAncestors,\n scrollableAncestorRects,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold),\n ]\n );\n}\n\ninterface ScrollIntent {\n x: Record<Direction, boolean>;\n y: Record<Direction, boolean>;\n}\n\nconst defaultScrollIntent: ScrollIntent = {\n x: {[Direction.Backward]: false, [Direction.Forward]: false},\n y: {[Direction.Backward]: false, [Direction.Forward]: false},\n};\n\nfunction useScrollIntent({\n delta,\n disabled,\n}: {\n delta: Coordinates;\n disabled: boolean;\n}): ScrollIntent {\n const previousDelta = usePrevious(delta);\n\n return useLazyMemo<ScrollIntent>(\n (previousIntent) => {\n if (disabled || !previousDelta || !previousIntent) {\n // Reset scroll intent tracking when auto-scrolling is disabled\n return defaultScrollIntent;\n }\n\n const direction = {\n x: Math.sign(delta.x - previousDelta.x),\n y: Math.sign(delta.y - previousDelta.y),\n };\n\n // Keep track of the user intent to scroll in each direction for both axis\n return {\n x: {\n [Direction.Backward]:\n previousIntent.x[Direction.Backward] || direction.x === -1,\n [Direction.Forward]:\n previousIntent.x[Direction.Forward] || direction.x === 1,\n },\n y: {\n [Direction.Backward]:\n previousIntent.y[Direction.Backward] || direction.y === -1,\n [Direction.Forward]:\n previousIntent.y[Direction.Forward] || direction.y === 1,\n },\n };\n },\n [disabled, delta, previousDelta]\n );\n}\n","import {useCallback, useEffect, useRef, useState} from 'react';\nimport {useLatestValue, useLazyMemo} from '@dnd-kit/utilities';\n\nimport {Rect} from '../../utilities/rect';\nimport type {DroppableContainer, RectMap} from '../../store/types';\nimport type {ClientRect, UniqueIdentifier} from '../../types';\n\ninterface Arguments {\n dragging: boolean;\n dependencies: any[];\n config: DroppableMeasuring;\n}\n\nexport enum MeasuringStrategy {\n Always,\n BeforeDragging,\n WhileDragging,\n}\n\nexport enum MeasuringFrequency {\n Optimized = 'optimized',\n}\n\ntype MeasuringFunction = (element: HTMLElement) => ClientRect;\n\nexport interface DroppableMeasuring {\n measure: MeasuringFunction;\n strategy: MeasuringStrategy;\n frequency: MeasuringFrequency | number;\n}\n\nconst defaultValue: RectMap = new Map();\n\nexport function useDroppableMeasuring(\n containers: DroppableContainer[],\n {dragging, dependencies, config}: Arguments\n) {\n const [\n containerIdsScheduledForMeasurement,\n setContainerIdsScheduledForMeasurement,\n ] = useState<UniqueIdentifier[] | null>(null);\n const measuringScheduled = containerIdsScheduledForMeasurement != null;\n const {frequency, measure, strategy} = config;\n const containersRef = useRef(containers);\n const disabled = isDisabled();\n const disabledRef = useLatestValue(disabled);\n const measureDroppableContainers = useCallback(\n (ids: UniqueIdentifier[] = []) => {\n if (disabledRef.current) {\n return;\n }\n\n setContainerIdsScheduledForMeasurement((value) =>\n value ? value.concat(ids) : ids\n );\n },\n [disabledRef]\n );\n const timeoutId = useRef<NodeJS.Timeout | null>(null);\n const droppableRects = useLazyMemo<RectMap>(\n (previousValue) => {\n if (disabled && !dragging) {\n return defaultValue;\n }\n\n const ids = containerIdsScheduledForMeasurement;\n\n if (\n !previousValue ||\n previousValue === defaultValue ||\n containersRef.current !== containers ||\n ids != null\n ) {\n const map: RectMap = new Map();\n\n for (let container of containers) {\n if (!container) {\n continue;\n }\n\n if (\n ids &&\n ids.length > 0 &&\n !ids.includes(container.id) &&\n container.rect.current\n ) {\n // This container does not need to be re-measured\n map.set(container.id, container.rect.current);\n continue;\n }\n\n const node = container.node.current;\n const rect = node ? new Rect(measure(node), node) : null;\n\n container.rect.current = rect;\n\n if (rect) {\n map.set(container.id, rect);\n }\n }\n\n return map;\n }\n\n return previousValue;\n },\n [\n containers,\n containerIdsScheduledForMeasurement,\n dragging,\n disabled,\n measure,\n ]\n );\n\n useEffect(() => {\n containersRef.current = containers;\n }, [containers]);\n\n useEffect(\n () => {\n if (disabled) {\n return;\n }\n\n requestAnimationFrame(() => measureDroppableContainers());\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dragging, disabled]\n );\n\n useEffect(() => {\n if (measuringScheduled) {\n setContainerIdsScheduledForMeasurement(null);\n }\n }, [measuringScheduled]);\n\n useEffect(\n () => {\n if (\n disabled ||\n typeof frequency !== 'number' ||\n timeoutId.current !== null\n ) {\n return;\n }\n\n timeoutId.current = setTimeout(() => {\n measureDroppableContainers();\n timeoutId.current = null;\n }, frequency);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [frequency, disabled, measureDroppableContainers, ...dependencies]\n );\n\n return {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled,\n };\n\n function isDisabled() {\n switch (strategy) {\n case MeasuringStrategy.Always:\n return false;\n case MeasuringStrategy.BeforeDragging:\n return dragging;\n default:\n return !dragging;\n }\n }\n}\n","import {useLazyMemo} from '@dnd-kit/utilities';\n\ntype AnyFunction = (...args: any) => any;\n\nexport function useInitialValue<\n T,\n U extends AnyFunction | undefined = undefined\n>(\n value: T | null,\n computeFn?: U\n): U extends AnyFunction ? ReturnType<U> | null : T | null {\n return useLazyMemo(\n (previousValue) => {\n if (!value) {\n return null;\n }\n\n if (previousValue) {\n return previousValue;\n }\n\n return typeof computeFn === 'function' ? computeFn(value) : value;\n },\n [computeFn, value]\n );\n}\n","import {useEffect, useMemo} from 'react';\nimport {useEvent} from '@dnd-kit/utilities';\n\ninterface Arguments {\n callback: ResizeObserverCallback;\n disabled?: boolean;\n}\n\n/**\n * Returns a new ResizeObserver instance bound to the `onResize` callback.\n * If `ResizeObserver` is undefined in the execution environment, returns `undefined`.\n */\nexport function useResizeObserver({callback, disabled}: Arguments) {\n const handleResize = useEvent(callback);\n const resizeObserver = useMemo(\n () => {\n if (\n disabled ||\n typeof window === 'undefined' ||\n typeof window.ResizeObserver === 'undefined'\n ) {\n return undefined;\n }\n\n const {ResizeObserver} = window;\n\n return new ResizeObserver(handleResize);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [disabled]\n );\n\n useEffect(() => {\n return () => resizeObserver?.disconnect();\n }, [resizeObserver]);\n\n return resizeObserver;\n}\n","import {useReducer} from 'react';\nimport {useIsomorphicLayoutEffect} from '@dnd-kit/utilities';\n\nimport type {ClientRect} from '../../types';\nimport {getClientRect, Rect} from '../../utilities';\n\nimport {useMutationObserver} from './useMutationObserver';\nimport {useResizeObserver} from './useResizeObserver';\n\nfunction defaultMeasure(element: HTMLElement) {\n return new Rect(getClientRect(element), element);\n}\n\nexport function useRect(\n element: HTMLElement | null,\n measure: (element: HTMLElement) => ClientRect = defaultMeasure,\n fallbackRect?: ClientRect | null\n) {\n const [rect, measureRect] = useReducer(reducer, null);\n\n const mutationObserver = useMutationObserver({\n callback(records) {\n if (!element) {\n return;\n }\n\n for (const record of records) {\n const {type, target} = record;\n\n if (\n type === 'childList' &&\n target instanceof HTMLElement &&\n target.contains(element)\n ) {\n measureRect();\n break;\n }\n }\n },\n });\n const resizeObserver = useResizeObserver({callback: measureRect});\n\n useIsomorphicLayoutEffect(() => {\n measureRect();\n\n if (element) {\n resizeObserver?.observe(element);\n mutationObserver?.observe(document.body, {\n childList: true,\n subtree: true,\n });\n } else {\n resizeObserver?.disconnect();\n mutationObserver?.disconnect();\n }\n }, [element]);\n\n return rect;\n\n function reducer(currentRect: ClientRect | null) {\n if (!element) {\n return null;\n }\n\n if (element.isConnected === false) {\n // Fall back to last rect we measured if the element is\n // no longer connected to the DOM.\n return currentRect ?? fallbackRect ?? null;\n }\n\n const newRect = measure(element);\n\n if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {\n return currentRect;\n }\n\n return newRect;\n }\n}\n","import {useEffect, useMemo} from 'react';\nimport {useEvent} from '@dnd-kit/utilities';\n\ninterface Arguments {\n callback: MutationCallback;\n disabled?: boolean;\n}\n\n/**\n * Returns a new MutationObserver instance.\n * If `MutationObserver` is undefined in the execution environment, returns `undefined`.\n */\nexport function useMutationObserver({callback, disabled}: Arguments) {\n const handleMutations = useEvent(callback);\n const mutationObserver = useMemo(() => {\n if (\n disabled ||\n typeof window === 'undefined' ||\n typeof window.MutationObserver === 'undefined'\n ) {\n return undefined;\n }\n\n const {MutationObserver} = window;\n\n return new MutationObserver(handleMutations);\n }, [handleMutations, disabled]);\n\n useEffect(() => {\n return () => mutationObserver?.disconnect();\n }, [mutationObserver]);\n\n return mutationObserver;\n}\n","import {useEffect, useRef} from 'react';\nimport {useLazyMemo} from '@dnd-kit/utilities';\n\nimport {getScrollableAncestors} from '../../utilities';\n\nconst defaultValue: Element[] = [];\n\nexport function useScrollableAncestors(node: HTMLElement | null) {\n const previousNode = useRef(node);\n\n const ancestors = useLazyMemo<Element[]>(\n (previousValue) => {\n if (!node) {\n return defaultValue;\n }\n\n if (\n previousValue &&\n previousValue !== defaultValue &&\n node &&\n previousNode.current &&\n node.parentNode === previousNode.current.parentNode\n ) {\n return previousValue;\n }\n\n return getScrollableAncestors(node);\n },\n [node]\n );\n\n useEffect(() => {\n previousNode.current = node;\n }, [node]);\n\n return ancestors;\n}\n","import {useEffect, useRef} from 'react';\nimport {Coordinates, subtract} from '@dnd-kit/utilities';\n\nimport {defaultCoordinates} from '../../utilities';\n\nexport function useScrollOffsetsDelta(\n scrollOffsets: Coordinates,\n dependencies: any[] = []\n) {\n const initialScrollOffsets = useRef<Coordinates | null>(null);\n\n useEffect(\n () => {\n initialScrollOffsets.current = null;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n dependencies\n );\n\n useEffect(() => {\n const hasScrollOffsets = scrollOffsets !== defaultCoordinates;\n\n if (hasScrollOffsets && !initialScrollOffsets.current) {\n initialScrollOffsets.current = scrollOffsets;\n }\n\n if (!hasScrollOffsets && initialScrollOffsets.current) {\n initialScrollOffsets.current = null;\n }\n }, [scrollOffsets]);\n\n return initialScrollOffsets.current\n ? subtract(scrollOffsets, initialScrollOffsets.current)\n : defaultCoordinates;\n}\n","import {useMemo} from 'react';\n\nimport {getWindowClientRect} from '../../utilities/rect';\n\nexport function useWindowRect(element: typeof window | null) {\n return useMemo(() => (element ? getWindowClientRect(element) : null), [\n element,\n ]);\n}\n","import type {ClientRect} from '../../types';\n\nexport function getWindowClientRect(element: typeof window): ClientRect {\n const width = element.innerWidth;\n const height = element.innerHeight;\n\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height,\n };\n}\n","import {useReducer} from 'react';\nimport {getWindow, useIsomorphicLayoutEffect} from '@dnd-kit/utilities';\n\nimport type {ClientRect} from '../../types';\nimport {Rect, getClientRect} from '../../utilities/rect';\nimport {isDocumentScrollingElement} from '../../utilities';\n\nimport {useResizeObserver} from './useResizeObserver';\nimport {useWindowRect} from './useWindowRect';\n\nconst defaultValue: Rect[] = [];\n\nexport function useRects(\n elements: Element[],\n measure: (element: Element) => ClientRect = getClientRect\n): ClientRect[] {\n const [firstElement] = elements;\n const windowRect = useWindowRect(\n firstElement ? getWindow(firstElement) : null\n );\n const [rects, measureRects] = useReducer(reducer, defaultValue);\n const resizeObserver = useResizeObserver({callback: measureRects});\n\n if (elements.length > 0 && rects === defaultValue) {\n measureRects();\n }\n\n useIsomorphicLayoutEffect(() => {\n if (elements.length) {\n elements.forEach((element) => resizeObserver?.observe(element));\n } else {\n resizeObserver?.disconnect();\n measureRects();\n }\n }, [elements]);\n\n return rects;\n\n function reducer() {\n if (!elements.length) {\n return defaultValue;\n }\n\n return elements.map((element) =>\n isDocumentScrollingElement(element)\n ? (windowRect as ClientRect)\n : new Rect(measure(element), element)\n );\n }\n}\n","import {isHTMLElement} from '@dnd-kit/utilities';\n\nexport function getMeasurableNode(\n node: HTMLElement | undefined | null\n): HTMLElement | null {\n if (!node) {\n return null;\n }\n\n if (node.children.length > 1) {\n return node;\n }\n const firstChild = node.children[0];\n\n return isHTMLElement(firstChild) ? firstChild : node;\n}\n","import type {DeepRequired} from '@dnd-kit/utilities';\n\nimport type {DataRef} from '../../store/types';\nimport {KeyboardSensor, PointerSensor} from '../../sensors';\nimport {MeasuringStrategy, MeasuringFrequency} from '../../hooks/utilities';\nimport {\n getClientRect,\n getTransformAgnosticClientRect,\n} from '../../utilities/rect';\n\nimport type {MeasuringConfiguration} from './types';\n\nexport const defaultSensors = [\n {sensor: PointerSensor, options: {}},\n {sensor: KeyboardSensor, options: {}},\n];\n\nexport const defaultData: DataRef = {current: {}};\n\nexport const defaultMeasuringConfiguration: DeepRequired<MeasuringConfiguration> = {\n draggable: {\n measure: getTransformAgnosticClientRect,\n },\n droppable: {\n measure: getTransformAgnosticClientRect,\n strategy: MeasuringStrategy.WhileDragging,\n frequency: MeasuringFrequency.Optimized,\n },\n dragOverlay: {\n measure: getClientRect,\n },\n};\n","import type {UniqueIdentifier} from '../types';\nimport type {DroppableContainer} from './types';\n\ntype Identifier = UniqueIdentifier | null | undefined;\n\nexport class DroppableContainersMap extends Map<\n UniqueIdentifier,\n DroppableContainer\n> {\n get(id: Identifier) {\n return id != null ? super.get(id) ?? undefined : undefined;\n }\n\n toArray(): DroppableContainer[] {\n return Array.from(this.values());\n }\n\n getEnabled(): DroppableContainer[] {\n return this.toArray().filter(({disabled}) => !disabled);\n }\n\n getNodeFor(id: Identifier) {\n return this.get(id)?.node.current ?? undefined;\n }\n}\n","import {createContext} from 'react';\n\nimport {noop} from '../utilities/other';\nimport {defaultMeasuringConfiguration} from '../components/DndContext/defaults';\nimport {DroppableContainersMap} from './constructors';\nimport type {InternalContextDescriptor, PublicContextDescriptor} from './types';\n\nexport const defaultPublicContext: PublicContextDescriptor = {\n activatorEvent: null,\n active: null,\n activeNode: null,\n activeNodeRect: null,\n collisions: null,\n containerNodeRect: null,\n draggableNodes: new Map(),\n droppableRects: new Map(),\n droppableContainers: new DroppableContainersMap(),\n over: null,\n dragOverlay: {\n nodeRef: {\n current: null,\n },\n rect: null,\n setRef: noop,\n },\n scrollableAncestors: [],\n scrollableAncestorRects: [],\n measuringConfiguration: defaultMeasuringConfiguration,\n measureDroppableContainers: noop,\n windowRect: null,\n measuringScheduled: false,\n};\n\nexport const defaultInternalContext: InternalContextDescriptor = {\n activatorEvent: null,\n activators: [],\n active: null,\n activeNodeRect: null,\n ariaDescribedById: {\n draggable: '',\n },\n dispatch: noop,\n draggableNodes: new Map(),\n over: null,\n measureDroppableContainers: noop,\n};\n\nexport const InternalContext = createContext<InternalContextDescriptor>(\n defaultInternalContext\n);\n\nexport const PublicContext = createContext<PublicContextDescriptor>(\n defaultPublicContext\n);\n","import {Action, Actions} from './actions';\nimport {DroppableContainersMap} from './constructors';\nimport type {State} from './types';\n\nexport function getInitialState(): State {\n return {\n draggable: {\n active: null,\n initialCoordinates: {x: 0, y: 0},\n nodes: new Map(),\n translate: {x: 0, y: 0},\n },\n droppable: {\n containers: new DroppableContainersMap(),\n },\n };\n}\n\nexport function reducer(state: State, action: Actions): State {\n switch (action.type) {\n case Action.DragStart:\n return {\n ...state,\n draggable: {\n ...state.draggable,\n initialCoordinates: action.initialCoordinates,\n active: action.active,\n },\n };\n case Action.DragMove:\n if (!state.draggable.active) {\n return state;\n }\n\n return {\n ...state,\n draggable: {\n ...state.draggable,\n translate: {\n x: action.coordinates.x - state.draggable.initialCoordinates.x,\n y: action.coordinates.y - state.draggable.initialCoordinates.y,\n },\n },\n };\n case Action.DragEnd:\n case Action.DragCancel:\n return {\n ...state,\n draggable: {\n ...state.draggable,\n active: null,\n initialCoordinates: {x: 0, y: 0},\n translate: {x: 0, y: 0},\n },\n };\n\n case Action.RegisterDroppable: {\n const {element} = action;\n const {id} = element;\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, element);\n\n return {\n ...state,\n droppable: {\n ...state.droppable,\n containers,\n },\n };\n }\n\n case Action.SetDroppableDisabled: {\n const {id, key, disabled} = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, {\n ...element,\n disabled,\n });\n\n return {\n ...state,\n droppable: {\n ...state.droppable,\n containers,\n },\n };\n }\n\n case Action.UnregisterDroppable: {\n const {id, key} = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.delete(id);\n\n return {\n ...state,\n droppable: {\n ...state.droppable,\n containers,\n },\n };\n }\n\n default: {\n return state;\n }\n }\n}\n","import {useContext, useEffect} from 'react';\nimport {\n findFirstFocusableNode,\n isKeyboardEvent,\n usePrevious,\n} from '@dnd-kit/utilities';\n\nimport {InternalContext} from '../../../store';\n\ninterface Props {\n disabled: boolean;\n}\n\nexport function RestoreFocus({disabled}: Props) {\n const {active, activatorEvent, draggableNodes} = useContext(InternalContext);\n const previousActivatorEvent = usePrevious(activatorEvent);\n const previousActiveId = usePrevious(active?.id);\n\n // Restore keyboard focus on the activator node\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n if (!activatorEvent && previousActivatorEvent && previousActiveId != null) {\n if (!isKeyboardEvent(previousActivatorEvent)) {\n return;\n }\n\n if (document.activeElement === previousActivatorEvent.target) {\n // No need to restore focus\n return;\n }\n\n const draggableNode = draggableNodes.get(previousActiveId);\n\n if (!draggableNode) {\n return;\n }\n\n const {activatorNode, node} = draggableNode;\n\n if (!activatorNode.current && !node.current) {\n return;\n }\n\n requestAnimationFrame(() => {\n for (const element of [activatorNode.current, node.current]) {\n if (!element) {\n continue;\n }\n\n const focusableNode = findFirstFocusableNode(element);\n\n if (focusableNode) {\n focusableNode.focus();\n break;\n }\n }\n });\n }\n }, [\n activatorEvent,\n disabled,\n draggableNodes,\n previousActiveId,\n previousActivatorEvent,\n ]);\n\n return null;\n}\n","import type {FirstArgument, Transform} from '@dnd-kit/utilities';\n\nimport type {Modifiers, Modifier} from './types';\n\nexport function applyModifiers(\n modifiers: Modifiers | undefined,\n {transform, ...args}: FirstArgument<Modifier>\n): Transform {\n return modifiers?.length\n ? modifiers.reduce<Transform>((accumulator, modifier) => {\n return modifier({\n transform: accumulator,\n ...args,\n });\n }, transform)\n : transform;\n}\n","import React, {\n memo,\n createContext,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react';\nimport {unstable_batchedUpdates} from 'react-dom';\nimport {\n add,\n getEventCoordinates,\n getWindow,\n useLatestValue,\n useIsomorphicLayoutEffect,\n useUniqueId,\n} from '@dnd-kit/utilities';\nimport type {Transform} from '@dnd-kit/utilities';\n\nimport {\n Action,\n PublicContext,\n InternalContext,\n PublicContextDescriptor,\n InternalContextDescriptor,\n getInitialState,\n reducer,\n} from '../../store';\nimport {DndMonitorContext, useDndMonitorProvider} from '../DndMonitor';\nimport {\n useAutoScroller,\n useCachedNode,\n useCombineActivators,\n useDragOverlayMeasuring,\n useDroppableMeasuring,\n useInitialRect,\n useRect,\n useRectDelta,\n useRects,\n useScrollableAncestors,\n useScrollOffsets,\n useScrollOffsetsDelta,\n useSensorSetup,\n useWindowRect,\n} from '../../hooks/utilities';\nimport type {AutoScrollOptions, SyntheticListener} from '../../hooks/utilities';\nimport type {\n Sensor,\n SensorContext,\n SensorDescriptor,\n SensorActivatorFunction,\n SensorInstance,\n} from '../../sensors';\nimport {\n adjustScale,\n CollisionDetection,\n defaultCoordinates,\n getAdjustedRect,\n getFirstCollision,\n rectIntersection,\n} from '../../utilities';\nimport {applyModifiers, Modifiers} from '../../modifiers';\nimport type {Active, Over} from '../../store/types';\nimport type {\n DragStartEvent,\n DragCancelEvent,\n DragEndEvent,\n DragMoveEvent,\n DragOverEvent,\n UniqueIdentifier,\n} from '../../types';\nimport {\n Accessibility,\n Announcements,\n RestoreFocus,\n ScreenReaderInstructions,\n} from '../Accessibility';\n\nimport {defaultData, defaultSensors} from './defaults';\nimport {\n useLayoutShiftScrollCompensation,\n useMeasuringConfiguration,\n} from './hooks';\nimport type {MeasuringConfiguration} from './types';\n\nexport interface Props {\n id?: string;\n accessibility?: {\n announcements?: Announcements;\n container?: Element;\n restoreFocus?: boolean;\n screenReaderInstructions?: ScreenReaderInstructions;\n };\n autoScroll?: boolean | AutoScrollOptions;\n cancelDrop?: CancelDrop;\n children?: React.ReactNode;\n collisionDetection?: CollisionDetection;\n measuring?: MeasuringConfiguration;\n modifiers?: Modifiers;\n sensors?: SensorDescriptor<any>[];\n onDragStart?(event: DragStartEvent): void;\n onDragMove?(event: DragMoveEvent): void;\n onDragOver?(event: DragOverEvent): void;\n onDragEnd?(event: DragEndEvent): void;\n onDragCancel?(event: DragCancelEvent): void;\n}\n\nexport interface CancelDropArguments extends DragEndEvent {}\n\nexport type CancelDrop = (\n args: CancelDropArguments\n) => boolean | Promise<boolean>;\n\ninterface DndEvent extends Event {\n dndKit?: {\n capturedBy: Sensor<any>;\n };\n}\n\nexport const ActiveDraggableContext = createContext<Transform>({\n ...defaultCoordinates,\n scaleX: 1,\n scaleY: 1,\n});\n\nenum Status {\n Uninitialized,\n Initializing,\n Initialized,\n}\n\nexport const DndContext = memo(function DndContext({\n id,\n accessibility,\n autoScroll = true,\n children,\n sensors = defaultSensors,\n collisionDetection = rectIntersection,\n measuring,\n modifiers,\n ...props\n}: Props) {\n const store = useReducer(reducer, undefined, getInitialState);\n const [state, dispatch] = store;\n const [dispatchMonitorEvent, registerMonitorListener] =\n useDndMonitorProvider();\n const [status, setStatus] = useState<Status>(Status.Uninitialized);\n const isInitialized = status === Status.Initialized;\n const {\n draggable: {active: activeId, nodes: draggableNodes, translate},\n droppable: {containers: droppableContainers},\n } = state;\n const node = activeId ? draggableNodes.get(activeId) : null;\n const activeRects = useRef<Active['rect']['current']>({\n initial: null,\n translated: null,\n });\n const active = useMemo<Active | null>(\n () =>\n activeId != null\n ? {\n id: activeId,\n // It's possible for the active node to unmount while dragging\n data: node?.data ?? defaultData,\n rect: activeRects,\n }\n : null,\n [activeId, node]\n );\n const activeRef = useRef<UniqueIdentifier | null>(null);\n const [activeSensor, setActiveSensor] = useState<SensorInstance | null>(null);\n const [activatorEvent, setActivatorEvent] = useState<Event | null>(null);\n const latestProps = useLatestValue(props, Object.values(props));\n const draggableDescribedById = useUniqueId(`DndDescribedBy`, id);\n const enabledDroppableContainers = useMemo(\n () => droppableContainers.getEnabled(),\n [droppableContainers]\n );\n const measuringConfiguration = useMeasuringConfiguration(measuring);\n const {droppableRects, measureDroppableContainers, measuringScheduled} =\n useDroppableMeasuring(enabledDroppableContainers, {\n dragging: isInitialized,\n dependencies: [translate.x, translate.y],\n config: measuringConfiguration.droppable,\n });\n const activeNode = useCachedNode(draggableNodes, activeId);\n const activationCoordinates = useMemo(\n () => (activatorEvent ? getEventCoordinates(activatorEvent) : null),\n [activatorEvent]\n );\n const autoScrollOptions = getAutoScrollerOptions();\n const initialActiveNodeRect = useInitialRect(\n activeNode,\n measuringConfiguration.draggable.measure\n );\n\n useLayoutShiftScrollCompensation({\n activeNode: activeId ? draggableNodes.get(activeId) : null,\n config: autoScrollOptions.layoutShiftCompensation,\n initialRect: initialActiveNodeRect,\n measure: measuringConfiguration.draggable.measure,\n });\n\n const activeNodeRect = useRect(\n activeNode,\n measuringConfiguration.draggable.measure,\n initialActiveNodeRect\n );\n const containerNodeRect = useRect(\n activeNode ? activeNode.parentElement : null\n );\n const sensorContext = useRef<SensorContext>({\n activatorEvent: null,\n active: null,\n activeNode,\n collisionRect: null,\n collisions: null,\n droppableRects,\n draggableNodes,\n draggingNode: null,\n draggingNodeRect: null,\n droppableContainers,\n over: null,\n scrollableAncestors: [],\n scrollAdjustedTranslate: null,\n });\n const overNode = droppableContainers.getNodeFor(\n sensorContext.current.over?.id\n );\n const dragOverlay = useDragOverlayMeasuring({\n measure: measuringConfiguration.dragOverlay.measure,\n });\n\n // Use the rect of the drag overlay if it is mounted\n const draggingNode = dragOverlay.nodeRef.current ?? activeNode;\n const draggingNodeRect = isInitialized\n ? dragOverlay.rect ?? activeNodeRect\n : null;\n const usesDragOverlay = Boolean(\n dragOverlay.nodeRef.current && dragOverlay.rect\n );\n // The delta between the previous and new position of the draggable node\n // is only relevant when there is no drag overlay\n const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect);\n\n // Get the window rect of the dragging node\n const windowRect = useWindowRect(\n draggingNode ? getWindow(draggingNode) : null\n );\n\n // Get scrollable ancestors of the dragging node\n const scrollableAncestors = useScrollableAncestors(\n isInitialized ? overNode ?? activeNode : null\n );\n const scrollableAncestorRects = useRects(scrollableAncestors);\n\n // Apply modifiers\n const modifiedTranslate = applyModifiers(modifiers, {\n transform: {\n x: translate.x - nodeRectDelta.x,\n y: translate.y - nodeRectDelta.y,\n scaleX: 1,\n scaleY: 1,\n },\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect,\n over: sensorContext.current.over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect,\n });\n\n const pointerCoordinates = activationCoordinates\n ? add(activationCoordinates, translate)\n : null;\n\n const scrollOffsets = useScrollOffsets(scrollableAncestors);\n // Represents the scroll delta since dragging was initiated\n const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets);\n // Represents the scroll delta since the last time the active node rect was measured\n const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [\n activeNodeRect,\n ]);\n\n const scrollAdjustedTranslate = add(modifiedTranslate, scrollAdjustment);\n\n const collisionRect = draggingNodeRect\n ? getAdjustedRect(draggingNodeRect, modifiedTranslate)\n : null;\n\n const collisions =\n active && collisionRect\n ? collisionDetection({\n active,\n collisionRect,\n droppableRects,\n droppableContainers: enabledDroppableContainers,\n pointerCoordinates,\n })\n : null;\n const overId = getFirstCollision(collisions, 'id');\n const [over, setOver] = useState<Over | null>(null);\n\n // When there is no drag overlay used, we need to account for the\n // window scroll delta\n const appliedTranslate = usesDragOverlay\n ? modifiedTranslate\n : add(modifiedTranslate, activeNodeScrollDelta);\n\n const transform = adjustScale(\n appliedTranslate,\n over?.rect ?? null,\n activeNodeRect\n );\n\n const instantiateSensor = useCallback(\n (\n event: React.SyntheticEvent,\n {sensor: Sensor, options}: SensorDescriptor<any>\n ) => {\n if (activeRef.current == null) {\n return;\n }\n\n const activeNode = draggableNodes.get(activeRef.current);\n\n if (!activeNode) {\n return;\n }\n\n const activatorEvent = event.nativeEvent;\n\n const sensorInstance = new Sensor({\n active: activeRef.current,\n activeNode,\n event: activatorEvent,\n options,\n // Sensors need to be instantiated with refs for arguments that change over time\n // otherwise they are frozen in time with the stale arguments\n context: sensorContext,\n onStart(initialCoordinates) {\n const id = activeRef.current;\n\n if (id == null) {\n return;\n }\n\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {onDragStart} = latestProps.current;\n const event: DragStartEvent = {\n active: {id, data: draggableNode.data, rect: activeRects},\n };\n\n unstable_batchedUpdates(() => {\n onDragStart?.(event);\n setStatus(Status.Initializing);\n dispatch({\n type: Action.DragStart,\n initialCoordinates,\n active: id,\n });\n dispatchMonitorEvent({type: 'onDragStart', event});\n });\n },\n onMove(coordinates) {\n dispatch({\n type: Action.DragMove,\n coordinates,\n });\n },\n onEnd: createHandler(Action.DragEnd),\n onCancel: createHandler(Action.DragCancel),\n });\n\n unstable_batchedUpdates(() => {\n setActiveSensor(sensorInstance);\n setActivatorEvent(event.nativeEvent);\n });\n\n function createHandler(type: Action.DragEnd | Action.DragCancel) {\n return async function handler() {\n const {active, collisions, over, scrollAdjustedTranslate} =\n sensorContext.current;\n let event: DragEndEvent | null = null;\n\n if (active && scrollAdjustedTranslate) {\n const {cancelDrop} = latestProps.current;\n\n event = {\n activatorEvent,\n active: active,\n collisions,\n delta: scrollAdjustedTranslate,\n over,\n };\n\n if (type === Action.DragEnd && typeof cancelDrop === 'function') {\n const shouldCancel = await Promise.resolve(cancelDrop(event));\n\n if (shouldCancel) {\n type = Action.DragCancel;\n }\n }\n }\n\n activeRef.current = null;\n\n unstable_batchedUpdates(() => {\n dispatch({type});\n setStatus(Status.Uninitialized);\n setOver(null);\n setActiveSensor(null);\n setActivatorEvent(null);\n\n const eventName =\n type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';\n\n if (event) {\n const handler = latestProps.current[eventName];\n\n handler?.(event);\n dispatchMonitorEvent({type: eventName, event});\n }\n });\n };\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes]\n );\n\n const bindActivatorToSensorInstantiator = useCallback(\n (\n handler: SensorActivatorFunction<any>,\n sensor: SensorDescriptor<any>\n ): SyntheticListener['handler'] => {\n return (event, active) => {\n const nativeEvent = event.nativeEvent as DndEvent;\n const activeDraggableNode = draggableNodes.get(active);\n\n if (\n // Another sensor is already instantiating\n activeRef.current !== null ||\n // No active draggable\n !activeDraggableNode ||\n // Event has already been captured\n nativeEvent.dndKit ||\n nativeEvent.defaultPrevented\n ) {\n return;\n }\n\n const activationContext = {\n active: activeDraggableNode,\n };\n const shouldActivate = handler(\n event,\n sensor.options,\n activationContext\n );\n\n if (shouldActivate === true) {\n nativeEvent.dndKit = {\n capturedBy: sensor.sensor,\n };\n\n activeRef.current = active;\n instantiateSensor(event, sensor);\n }\n };\n },\n [draggableNodes, instantiateSensor]\n );\n\n const activators = useCombineActivators(\n sensors,\n bindActivatorToSensorInstantiator\n );\n\n useSensorSetup(sensors);\n\n useIsomorphicLayoutEffect(() => {\n if (activeNodeRect && status === Status.Initializing) {\n setStatus(Status.Initialized);\n }\n }, [activeNodeRect, status]);\n\n useEffect(\n () => {\n const {onDragMove} = latestProps.current;\n const {active, activatorEvent, collisions, over} = sensorContext.current;\n\n if (!active || !activatorEvent) {\n return;\n }\n\n const event: DragMoveEvent = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y,\n },\n over,\n };\n\n unstable_batchedUpdates(() => {\n onDragMove?.(event);\n dispatchMonitorEvent({type: 'onDragMove', event});\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]\n );\n\n useEffect(\n () => {\n const {\n active,\n activatorEvent,\n collisions,\n droppableContainers,\n scrollAdjustedTranslate,\n } = sensorContext.current;\n\n if (\n !active ||\n activeRef.current == null ||\n !activatorEvent ||\n !scrollAdjustedTranslate\n ) {\n return;\n }\n\n const {onDragOver} = latestProps.current;\n const overContainer = droppableContainers.get(overId);\n const over =\n overContainer && overContainer.rect.current\n ? {\n id: overContainer.id,\n rect: overContainer.rect.current,\n data: overContainer.data,\n disabled: overContainer.disabled,\n }\n : null;\n const event: DragOverEvent = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y,\n },\n over,\n };\n\n unstable_batchedUpdates(() => {\n setOver(over);\n onDragOver?.(event);\n dispatchMonitorEvent({type: 'onDragOver', event});\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [overId]\n );\n\n useIsomorphicLayoutEffect(() => {\n sensorContext.current = {\n activatorEvent,\n active,\n activeNode,\n collisionRect,\n collisions,\n droppableRects,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate,\n };\n\n activeRects.current = {\n initial: draggingNodeRect,\n translated: collisionRect,\n };\n }, [\n active,\n activeNode,\n collisions,\n collisionRect,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableRects,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate,\n ]);\n\n useAutoScroller({\n ...autoScrollOptions,\n delta: translate,\n draggingRect: collisionRect,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n });\n\n const publicContext = useMemo(() => {\n const context: PublicContextDescriptor = {\n active,\n activeNode,\n activeNodeRect,\n activatorEvent,\n collisions,\n containerNodeRect,\n dragOverlay,\n draggableNodes,\n droppableContainers,\n droppableRects,\n over,\n measureDroppableContainers,\n scrollableAncestors,\n scrollableAncestorRects,\n measuringConfiguration,\n measuringScheduled,\n windowRect,\n };\n\n return context;\n }, [\n active,\n activeNode,\n activeNodeRect,\n activatorEvent,\n collisions,\n containerNodeRect,\n dragOverlay,\n draggableNodes,\n droppableContainers,\n droppableRects,\n over,\n measureDroppableContainers,\n scrollableAncestors,\n scrollableAncestorRects,\n measuringConfiguration,\n measuringScheduled,\n windowRect,\n ]);\n\n const internalContext = useMemo(() => {\n const context: InternalContextDescriptor = {\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n ariaDescribedById: {\n draggable: draggableDescribedById,\n },\n dispatch,\n draggableNodes,\n over,\n measureDroppableContainers,\n };\n\n return context;\n }, [\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n dispatch,\n draggableDescribedById,\n draggableNodes,\n over,\n measureDroppableContainers,\n ]);\n\n return (\n <DndMonitorContext.Provider value={registerMonitorListener}>\n <InternalContext.Provider value={internalContext}>\n <PublicContext.Provider value={publicContext}>\n <ActiveDraggableContext.Provider value={transform}>\n {children}\n </ActiveDraggableContext.Provider>\n </PublicContext.Provider>\n <RestoreFocus disabled={accessibility?.restoreFocus === false} />\n </InternalContext.Provider>\n <Accessibility\n {...accessibility}\n hiddenTextDescribedById={draggableDescribedById}\n />\n </DndMonitorContext.Provider>\n );\n\n function getAutoScrollerOptions() {\n const activeSensorDisablesAutoscroll =\n activeSensor?.autoScrollEnabled === false;\n const autoScrollGloballyDisabled =\n typeof autoScroll === 'object'\n ? autoScroll.enabled === false\n : autoScroll === false;\n const enabled =\n isInitialized &&\n !activeSensorDisablesAutoscroll &&\n !autoScrollGloballyDisabled;\n\n if (typeof autoScroll === 'object') {\n return {\n ...autoScroll,\n enabled,\n };\n }\n\n return {enabled};\n }\n});\n","import {useCallback, useState} from 'react';\n\nimport type {DndMonitorListener, DndMonitorEvent} from './types';\n\nexport function useDndMonitorProvider() {\n const [listeners] = useState(() => new Set<DndMonitorListener>());\n\n const registerListener = useCallback(\n (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n [listeners]\n );\n\n const dispatch = useCallback(\n ({type, event}: DndMonitorEvent) => {\n listeners.forEach((listener) => listener[type]?.(event as any));\n },\n [listeners]\n );\n\n return [dispatch, registerListener] as const;\n}\n","import {useMemo} from 'react';\nimport type {DeepRequired} from '@dnd-kit/utilities';\n\nimport {defaultMeasuringConfiguration} from '../defaults';\nimport type {MeasuringConfiguration} from '../types';\n\nexport function useMeasuringConfiguration(\n config: MeasuringConfiguration | undefined\n): DeepRequired<MeasuringConfiguration> {\n return useMemo(\n () => ({\n draggable: {\n ...defaultMeasuringConfiguration.draggable,\n ...config?.draggable,\n },\n droppable: {\n ...defaultMeasuringConfiguration.droppable,\n ...config?.droppable,\n },\n dragOverlay: {\n ...defaultMeasuringConfiguration.dragOverlay,\n ...config?.dragOverlay,\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [config?.draggable, config?.droppable, config?.dragOverlay]\n );\n}\n","import {useLazyMemo} from '@dnd-kit/utilities';\n\nimport type {DraggableNode, DraggableNodes} from '../../store';\nimport type {UniqueIdentifier} from '../../types';\n\nexport function useCachedNode(\n draggableNodes: DraggableNodes,\n id: UniqueIdentifier | null\n): DraggableNode['node']['current'] {\n const draggableNode = id !== null ? draggableNodes.get(id) : undefined;\n const node = draggableNode ? draggableNode.node.current : null;\n\n return useLazyMemo(\n (cachedNode) => {\n if (id === null) {\n return null;\n }\n\n // In some cases, the draggable node can unmount while dragging\n // This is the case for virtualized lists. In those situations,\n // we fall back to the last known value for that node.\n return node ?? cachedNode ?? null;\n },\n [node, id]\n );\n}\n","import type {ClientRect} from '../../types';\nimport {useInitialValue} from './useInitialValue';\n\nexport function useInitialRect(\n node: HTMLElement | null,\n measure: (node: HTMLElement) => ClientRect\n) {\n return useInitialValue(node, measure);\n}\n","import {useRef} from 'react';\nimport {useIsomorphicLayoutEffect} from '@dnd-kit/utilities';\n\nimport {getRectDelta} from '../../../utilities/rect';\nimport {getFirstScrollableAncestor} from '../../../utilities/scroll';\nimport type {ClientRect} from '../../../types';\nimport type {DraggableNode} from '../../../store';\nimport type {MeasuringFunction} from '../types';\n\ninterface Options {\n activeNode: DraggableNode | null | undefined;\n config: boolean | {x: boolean; y: boolean} | undefined;\n initialRect: ClientRect | null;\n measure: MeasuringFunction;\n}\n\nexport function useLayoutShiftScrollCompensation({\n activeNode,\n measure,\n initialRect,\n config = true,\n}: Options) {\n const initialized = useRef(false);\n const {x, y} = typeof config === 'boolean' ? {x: config, y: config} : config;\n\n useIsomorphicLayoutEffect(() => {\n const disabled = !x && !y;\n\n if (disabled || !activeNode) {\n initialized.current = false;\n return;\n }\n\n if (initialized.current || !initialRect) {\n // Return early if layout shift scroll compensation was already attempted\n // or if there is no initialRect to compare to.\n return;\n }\n\n // Get the most up to date node ref for the active draggable\n const node = activeNode?.node.current;\n\n if (!node || node.isConnected === false) {\n // Return early if there is no attached node ref or if the node is\n // disconnected from the document.\n return;\n }\n\n const rect = measure(node);\n const rectDelta = getRectDelta(rect, initialRect);\n\n if (!x) {\n rectDelta.x = 0;\n }\n\n if (!y) {\n rectDelta.y = 0;\n }\n\n // Only perform layout shift scroll compensation once\n initialized.current = true;\n\n if (Math.abs(rectDelta.x) > 0 || Math.abs(rectDelta.y) > 0) {\n const firstScrollableAncestor = getFirstScrollableAncestor(node);\n\n if (firstScrollableAncestor) {\n firstScrollableAncestor.scrollBy({\n top: rectDelta.y,\n left: rectDelta.x,\n });\n }\n }\n }, [activeNode, x, y, initialRect, measure]);\n}\n","import {useMemo, useCallback, useState} from 'react';\nimport {isHTMLElement, useNodeRef} from '@dnd-kit/utilities';\n\nimport {useResizeObserver} from './useResizeObserver';\nimport {getMeasurableNode} from '../../utilities/nodes';\nimport type {PublicContextDescriptor} from '../../store';\nimport type {ClientRect} from '../../types';\n\ninterface Arguments {\n measure(element: HTMLElement): ClientRect;\n}\n\nexport function useDragOverlayMeasuring({\n measure,\n}: Arguments): PublicContextDescriptor['dragOverlay'] {\n const [rect, setRect] = useState<ClientRect | null>(null);\n const handleResize = useCallback(\n (entries: ResizeObserverEntry[]) => {\n for (const {target} of entries) {\n if (isHTMLElement(target)) {\n setRect((rect) => {\n const newRect = measure(target);\n\n return rect\n ? {...rect, width: newRect.width, height: newRect.height}\n : newRect;\n });\n break;\n }\n }\n },\n [measure]\n );\n const resizeObserver = useResizeObserver({callback: handleResize});\n const handleNodeChange = useCallback(\n (element) => {\n const node = getMeasurableNode(element);\n\n resizeObserver?.disconnect();\n\n if (node) {\n resizeObserver?.observe(node);\n }\n\n setRect(node ? measure(node) : null);\n },\n [measure, resizeObserver]\n );\n const [nodeRef, setRef] = useNodeRef(handleNodeChange);\n\n return useMemo(\n () => ({\n nodeRef,\n rect,\n setRef,\n }),\n [rect, nodeRef, setRef]\n );\n}\n","import type {ClientRect} from '../../types';\nimport {getRectDelta} from '../../utilities';\n\nimport {useInitialValue} from './useInitialValue';\n\nexport function useRectDelta(rect: ClientRect | null) {\n const initialRect = useInitialValue(rect);\n\n return getRectDelta(rect, initialRect);\n}\n","import {useState, useCallback, useMemo, useRef, useEffect} from 'react';\nimport {add} from '@dnd-kit/utilities';\n\nimport {\n defaultCoordinates,\n getScrollableElement,\n getScrollCoordinates,\n getScrollOffsets,\n} from '../../utilities';\nimport type {Coordinates} from '../../types';\n\ntype ScrollCoordinates = Map<HTMLElement | Window, Coordinates>;\n\nexport function useScrollOffsets(elements: Element[]): Coordinates {\n const [\n scrollCoordinates,\n setScrollCoordinates,\n ] = useState<ScrollCoordinates | null>(null);\n const prevElements = useRef(elements);\n\n // To-do: Throttle the handleScroll callback\n const handleScroll = useCallback((event: Event) => {\n const scrollingElement = getScrollableElement(event.target);\n\n if (!scrollingElement) {\n return;\n }\n\n setScrollCoordinates((scrollCoordinates) => {\n if (!scrollCoordinates) {\n return null;\n }\n\n scrollCoordinates.set(\n scrollingElement,\n getScrollCoordinates(scrollingElement)\n );\n\n return new Map(scrollCoordinates);\n });\n }, []);\n\n useEffect(() => {\n const previousElements = prevElements.current;\n\n if (elements !== previousElements) {\n cleanup(previousElements);\n\n const entries = elements\n .map((element) => {\n const scrollableElement = getScrollableElement(element);\n\n if (scrollableElement) {\n scrollableElement.addEventListener('scroll', handleScroll, {\n passive: true,\n });\n\n return [\n scrollableElement,\n getScrollCoordinates(scrollableElement),\n ] as const;\n }\n\n return null;\n })\n .filter(\n (\n entry\n ): entry is [\n HTMLElement | (Window & typeof globalThis),\n Coordinates\n ] => entry != null\n );\n\n setScrollCoordinates(entries.length ? new Map(entries) : null);\n\n prevElements.current = elements;\n }\n\n return () => {\n cleanup(elements);\n cleanup(previousElements);\n };\n\n function cleanup(elements: Element[]) {\n elements.forEach((element) => {\n const scrollableElement = getScrollableElement(element);\n\n scrollableElement?.removeEventListener('scroll', handleScroll);\n });\n }\n }, [handleScroll, elements]);\n\n return useMemo(() => {\n if (elements.length) {\n return scrollCoordinates\n ? Array.from(scrollCoordinates.values()).reduce(\n (acc, coordinates) => add(acc, coordinates),\n defaultCoordinates\n )\n : getScrollOffsets(elements);\n }\n\n return defaultCoordinates;\n }, [elements, scrollCoordinates]);\n}\n","import type {Transform} from '@dnd-kit/utilities';\nimport type {ClientRect} from '../../types';\n\nexport function adjustScale(\n transform: Transform,\n rect1: ClientRect | null,\n rect2: ClientRect | null\n): Transform {\n return {\n ...transform,\n scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1,\n scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1,\n };\n}\n","import {useMemo} from 'react';\n\nimport type {SensorActivatorFunction, SensorDescriptor} from '../../sensors';\nimport type {\n SyntheticListener,\n SyntheticListeners,\n} from './useSyntheticListeners';\n\nexport function useCombineActivators(\n sensors: SensorDescriptor<any>[],\n getSyntheticHandler: (\n handler: SensorActivatorFunction<any>,\n sensor: SensorDescriptor<any>\n ) => SyntheticListener['handler']\n): SyntheticListeners {\n return useMemo(\n () =>\n sensors.reduce<SyntheticListeners>((accumulator, sensor) => {\n const {sensor: Sensor} = sensor;\n\n const sensorActivators = Sensor.activators.map((activator) => ({\n eventName: activator.eventName,\n handler: getSyntheticHandler(activator.handler, sensor),\n }));\n\n return [...accumulator, ...sensorActivators];\n }, []),\n [sensors, getSyntheticHandler]\n );\n}\n","import {useEffect} from 'react';\nimport {canUseDOM} from '@dnd-kit/utilities';\n\nimport type {SensorDescriptor} from '../../sensors';\n\nexport function useSensorSetup(sensors: SensorDescriptor<any>[]) {\n useEffect(\n () => {\n if (!canUseDOM) {\n return;\n }\n\n const teardownFns = sensors.map(({sensor}) => sensor.setup?.());\n\n return () => {\n for (const teardown of teardownFns) {\n teardown?.();\n }\n };\n },\n // TO-DO: Sensors length could theoretically change which would not be a valid dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n sensors.map(({sensor}) => sensor)\n );\n}\n","import {createContext, useContext, useMemo} from 'react';\nimport {\n Transform,\n useNodeRef,\n useIsomorphicLayoutEffect,\n useLatestValue,\n useUniqueId,\n} from '@dnd-kit/utilities';\n\nimport {InternalContext, Data} from '../store';\nimport type {UniqueIdentifier} from '../types';\nimport {ActiveDraggableContext} from '../components/DndContext';\nimport {useSyntheticListeners, SyntheticListenerMap} from './utilities';\n\nexport interface UseDraggableArguments {\n id: UniqueIdentifier;\n data?: Data;\n disabled?: boolean;\n attributes?: {\n role?: string;\n roleDescription?: string;\n tabIndex?: number;\n };\n}\n\nexport interface DraggableAttributes {\n role: string;\n tabIndex: number;\n 'aria-disabled': boolean;\n 'aria-pressed': boolean | undefined;\n 'aria-roledescription': string;\n 'aria-describedby': string;\n}\n\nexport type DraggableSyntheticListeners = SyntheticListenerMap | undefined;\n\nconst NullContext = createContext<any>(null);\n\nconst defaultRole = 'button';\n\nconst ID_PREFIX = 'Droppable';\n\nexport function useDraggable({\n id,\n data,\n disabled = false,\n attributes,\n}: UseDraggableArguments) {\n const key = useUniqueId(ID_PREFIX);\n const {\n activators,\n activatorEvent,\n active,\n activeNodeRect,\n ariaDescribedById,\n draggableNodes,\n over,\n } = useContext(InternalContext);\n const {role = defaultRole, roleDescription = 'draggable', tabIndex = 0} =\n attributes ?? {};\n const isDragging = active?.id === id;\n const transform: Transform | null = useContext(\n isDragging ? ActiveDraggableContext : NullContext\n );\n const [node, setNodeRef] = useNodeRef();\n const [activatorNode, setActivatorNodeRef] = useNodeRef();\n const listeners = useSyntheticListeners(activators, id);\n const dataRef = useLatestValue(data);\n\n useIsomorphicLayoutEffect(\n () => {\n draggableNodes.set(id, {id, key, node, activatorNode, data: dataRef});\n\n return () => {\n const node = draggableNodes.get(id);\n\n if (node && node.key === key) {\n draggableNodes.delete(id);\n }\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes, id]\n );\n\n const memoizedAttributes: DraggableAttributes = useMemo(\n () => ({\n role,\n tabIndex,\n 'aria-disabled': disabled,\n 'aria-pressed': isDragging && role === defaultRole ? true : undefined,\n 'aria-roledescription': roleDescription,\n 'aria-describedby': ariaDescribedById.draggable,\n }),\n [\n disabled,\n role,\n tabIndex,\n isDragging,\n roleDescription,\n ariaDescribedById.draggable,\n ]\n );\n\n return {\n active,\n activatorEvent,\n activeNodeRect,\n attributes: memoizedAttributes,\n isDragging,\n listeners: disabled ? undefined : listeners,\n node,\n over,\n setNodeRef,\n setActivatorNodeRef,\n transform,\n };\n}\n","import {useMemo} from 'react';\n\nimport type {SyntheticEventName, UniqueIdentifier} from '../../types';\n\nexport type SyntheticListener = {\n eventName: SyntheticEventName;\n handler: (event: React.SyntheticEvent, id: UniqueIdentifier) => void;\n};\n\nexport type SyntheticListeners = SyntheticListener[];\n\nexport type SyntheticListenerMap = Record<string, Function>;\n\nexport function useSyntheticListeners(\n listeners: SyntheticListeners,\n id: UniqueIdentifier\n): SyntheticListenerMap {\n return useMemo(() => {\n return listeners.reduce<SyntheticListenerMap>(\n (acc, {eventName, handler}) => {\n acc[eventName] = (event: React.SyntheticEvent) => {\n handler(event, id);\n };\n\n return acc;\n },\n {} as SyntheticListenerMap\n );\n }, [listeners, id]);\n}\n","import {ContextType, useContext} from 'react';\nimport {PublicContext} from '../store';\n\nexport function useDndContext() {\n return useContext(PublicContext);\n}\n\nexport type UseDndContextReturnValue = ContextType<typeof PublicContext>;\n","import {useCallback, useContext, useEffect, useRef} from 'react';\nimport {\n useIsomorphicLayoutEffect,\n useLatestValue,\n useNodeRef,\n useUniqueId,\n} from '@dnd-kit/utilities';\n\nimport {InternalContext, Action, Data} from '../store';\nimport type {ClientRect, UniqueIdentifier} from '../types';\n\nimport {useResizeObserver} from './utilities';\n\ninterface ResizeObserverConfig {\n /** Whether the ResizeObserver should be disabled entirely */\n disabled?: boolean;\n /** Resize events may affect the layout and position of other droppable containers.\n * Specify an array of `UniqueIdentifier` of droppable containers that should also be re-measured\n * when this droppable container resizes. Specifying an empty array re-measures all droppable containers.\n */\n updateMeasurementsFor?: UniqueIdentifier[];\n /** Represents the debounce timeout between when resize events are observed and when elements are re-measured */\n timeout?: number;\n}\n\nexport interface UseDroppableArguments {\n id: UniqueIdentifier;\n disabled?: boolean;\n data?: Data;\n resizeObserverConfig?: ResizeObserverConfig;\n}\n\nconst ID_PREFIX = 'Droppable';\n\nconst defaultResizeObserverConfig = {\n timeout: 25,\n};\n\nexport function useDroppable({\n data,\n disabled = false,\n id,\n resizeObserverConfig,\n}: UseDroppableArguments) {\n const key = useUniqueId(ID_PREFIX);\n const {active, dispatch, over, measureDroppableContainers} = useContext(\n InternalContext\n );\n const previous = useRef({disabled});\n const resizeObserverConnected = useRef(false);\n const rect = useRef<ClientRect | null>(null);\n const callbackId = useRef<NodeJS.Timeout | null>(null);\n const {\n disabled: resizeObserverDisabled,\n updateMeasurementsFor,\n timeout: resizeObserverTimeout,\n } = {\n ...defaultResizeObserverConfig,\n ...resizeObserverConfig,\n };\n const ids = useLatestValue(updateMeasurementsFor ?? id);\n const handleResize = useCallback(\n () => {\n if (!resizeObserverConnected.current) {\n // ResizeObserver invokes the `handleResize` callback as soon as `observe` is called,\n // assuming the element is rendered and displayed.\n resizeObserverConnected.current = true;\n return;\n }\n\n if (callbackId.current != null) {\n clearTimeout(callbackId.current);\n }\n\n callbackId.current = setTimeout(() => {\n measureDroppableContainers(\n Array.isArray(ids.current) ? ids.current : [ids.current]\n );\n callbackId.current = null;\n }, resizeObserverTimeout);\n },\n //eslint-disable-next-line react-hooks/exhaustive-deps\n [resizeObserverTimeout]\n );\n const resizeObserver = useResizeObserver({\n callback: handleResize,\n disabled: resizeObserverDisabled || !active,\n });\n const handleNodeChange = useCallback(\n (newElement: HTMLElement | null, previousElement: HTMLElement | null) => {\n if (!resizeObserver) {\n return;\n }\n\n if (previousElement) {\n resizeObserver.unobserve(previousElement);\n resizeObserverConnected.current = false;\n }\n\n if (newElement) {\n resizeObserver.observe(newElement);\n }\n },\n [resizeObserver]\n );\n const [nodeRef, setNodeRef] = useNodeRef(handleNodeChange);\n const dataRef = useLatestValue(data);\n\n useEffect(() => {\n if (!resizeObserver || !nodeRef.current) {\n return;\n }\n\n resizeObserver.disconnect();\n resizeObserverConnected.current = false;\n resizeObserver.observe(nodeRef.current);\n }, [nodeRef, resizeObserver]);\n\n useIsomorphicLayoutEffect(\n () => {\n dispatch({\n type: Action.RegisterDroppable,\n element: {\n id,\n key,\n disabled,\n node: nodeRef,\n rect,\n data: dataRef,\n },\n });\n\n return () =>\n dispatch({\n type: Action.UnregisterDroppable,\n key,\n id,\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [id]\n );\n\n useEffect(() => {\n if (disabled !== previous.current.disabled) {\n dispatch({\n type: Action.SetDroppableDisabled,\n id,\n key,\n disabled,\n });\n\n previous.current.disabled = disabled;\n }\n }, [id, key, disabled, dispatch]);\n\n return {\n active,\n rect,\n isOver: over?.id === id,\n node: nodeRef,\n over,\n setNodeRef,\n };\n}\n","import React, {cloneElement, useState} from 'react';\nimport {useIsomorphicLayoutEffect, usePrevious} from '@dnd-kit/utilities';\n\nimport type {UniqueIdentifier} from '../../../../types';\n\nexport type Animation = (\n key: UniqueIdentifier,\n node: HTMLElement\n) => Promise<void> | void;\n\nexport interface Props {\n animation: Animation;\n children: React.ReactElement | null;\n}\n\nexport function AnimationManager({animation, children}: Props) {\n const [\n clonedChildren,\n setClonedChildren,\n ] = useState<React.ReactElement | null>(null);\n const [element, setElement] = useState<HTMLElement | null>(null);\n const previousChildren = usePrevious(children);\n\n if (!children && !clonedChildren && previousChildren) {\n setClonedChildren(previousChildren);\n }\n\n useIsomorphicLayoutEffect(() => {\n if (!element) {\n return;\n }\n\n const key = clonedChildren?.key;\n const id = clonedChildren?.props.id;\n\n if (key == null || id == null) {\n setClonedChildren(null);\n return;\n }\n\n Promise.resolve(animation(id, element)).then(() => {\n setClonedChildren(null);\n });\n }, [animation, clonedChildren, element]);\n\n return (\n <>\n {children}\n {clonedChildren ? cloneElement(clonedChildren, {ref: setElement}) : null}\n </>\n );\n}\n","import React from 'react';\nimport type {Transform} from '@dnd-kit/utilities';\n\nimport {InternalContext, defaultInternalContext} from '../../../../store';\nimport {ActiveDraggableContext} from '../../../DndContext';\n\ninterface Props {\n children: React.ReactNode;\n}\n\nconst defaultTransform: Transform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1,\n};\n\nexport function NullifiedContextProvider({children}: Props) {\n return (\n <InternalContext.Provider value={defaultInternalContext}>\n <ActiveDraggableContext.Provider value={defaultTransform}>\n {children}\n </ActiveDraggableContext.Provider>\n </InternalContext.Provider>\n );\n}\n","import React, {forwardRef} from 'react';\nimport {CSS, isKeyboardEvent} from '@dnd-kit/utilities';\n\nimport type {Transform} from '@dnd-kit/utilities';\n\nimport {getRelativeTransformOrigin} from '../../../../utilities';\nimport type {ClientRect, UniqueIdentifier} from '../../../../types';\n\ntype TransitionGetter = (\n activatorEvent: Event | null\n) => React.CSSProperties['transition'] | undefined;\n\nexport interface Props {\n as: keyof JSX.IntrinsicElements;\n activatorEvent: Event | null;\n adjustScale?: boolean;\n children?: React.ReactNode;\n className?: string;\n id: UniqueIdentifier;\n rect: ClientRect | null;\n style?: React.CSSProperties;\n transition?: string | TransitionGetter;\n transform: Transform;\n}\n\nconst baseStyles: React.CSSProperties = {\n position: 'fixed',\n touchAction: 'none',\n};\n\nconst defaultTransition: TransitionGetter = (activatorEvent) => {\n const isKeyboardActivator = isKeyboardEvent(activatorEvent);\n\n return isKeyboardActivator ? 'transform 250ms ease' : undefined;\n};\n\nexport const PositionedOverlay = forwardRef<HTMLElement, Props>(\n (\n {\n as,\n activatorEvent,\n adjustScale,\n children,\n className,\n rect,\n style,\n transform,\n transition = defaultTransition,\n },\n ref\n ) => {\n if (!rect) {\n return null;\n }\n\n const scaleAdjustedTransform = adjustScale\n ? transform\n : {\n ...transform,\n scaleX: 1,\n scaleY: 1,\n };\n const styles: React.CSSProperties | undefined = {\n ...baseStyles,\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n transform: CSS.Transform.toString(scaleAdjustedTransform),\n transformOrigin:\n adjustScale && activatorEvent\n ? getRelativeTransformOrigin(\n activatorEvent as MouseEvent | KeyboardEvent | TouchEvent,\n rect\n )\n : undefined,\n transition:\n typeof transition === 'function'\n ? transition(activatorEvent)\n : transition,\n ...style,\n };\n\n return React.createElement(\n as,\n {\n className,\n style: styles,\n ref,\n },\n children\n );\n }\n);\n","import {CSS, useEvent, getWindow} from '@dnd-kit/utilities';\nimport type {DeepRequired, Transform} from '@dnd-kit/utilities';\n\nimport type {\n Active,\n DraggableNode,\n DraggableNodes,\n DroppableContainers,\n} from '../../../store';\nimport type {ClientRect, UniqueIdentifier} from '../../../types';\nimport {getMeasurableNode} from '../../../utilities/nodes';\nimport {scrollIntoViewIfNeeded} from '../../../utilities/scroll';\nimport {parseTransform} from '../../../utilities/transform';\nimport type {MeasuringConfiguration} from '../../DndContext';\nimport type {Animation} from '../components';\n\ninterface SharedParameters {\n active: {\n id: UniqueIdentifier;\n data: Active['data'];\n node: HTMLElement;\n rect: ClientRect;\n };\n dragOverlay: {\n node: HTMLElement;\n rect: ClientRect;\n };\n draggableNodes: DraggableNodes;\n droppableContainers: DroppableContainers;\n measuringConfiguration: DeepRequired<MeasuringConfiguration>;\n}\n\nexport interface KeyframeResolverParameters extends SharedParameters {\n transform: {\n initial: Transform;\n final: Transform;\n };\n}\n\nexport type KeyframeResolver = (\n parameters: KeyframeResolverParameters\n) => Keyframe[];\n\nexport interface DropAnimationOptions {\n keyframes?: KeyframeResolver;\n duration?: number;\n easing?: string;\n sideEffects?: DropAnimationSideEffects | null;\n}\n\nexport type DropAnimation = DropAnimationFunction | DropAnimationOptions;\n\ninterface Arguments {\n draggableNodes: DraggableNodes;\n droppableContainers: DroppableContainers;\n measuringConfiguration: DeepRequired<MeasuringConfiguration>;\n config?: DropAnimation | null;\n}\n\nexport interface DropAnimationFunctionArguments extends SharedParameters {\n transform: Transform;\n}\n\nexport type DropAnimationFunction = (\n args: DropAnimationFunctionArguments\n) => Promise<void> | void;\n\ntype CleanupFunction = () => void;\n\nexport interface DropAnimationSideEffectsParameters extends SharedParameters {}\n\nexport type DropAnimationSideEffects = (\n parameters: DropAnimationSideEffectsParameters\n) => CleanupFunction | void;\n\ntype ExtractStringProperties<T> = {\n [K in keyof T]?: T[K] extends string ? string : never;\n};\n\ntype Styles = ExtractStringProperties<CSSStyleDeclaration>;\n\ninterface DefaultDropAnimationSideEffectsOptions {\n className?: {\n active?: string;\n dragOverlay?: string;\n };\n styles?: {\n active?: Styles;\n dragOverlay?: Styles;\n };\n}\n\nexport const defaultDropAnimationSideEffects = (\n options: DefaultDropAnimationSideEffectsOptions\n): DropAnimationSideEffects => ({active, dragOverlay}) => {\n const originalStyles: Record<string, string> = {};\n const {styles, className} = options;\n\n if (styles?.active) {\n for (const [key, value] of Object.entries(styles.active)) {\n if (value === undefined) {\n continue;\n }\n\n originalStyles[key] = active.node.style.getPropertyValue(key);\n active.node.style.setProperty(key, value);\n }\n }\n\n if (styles?.dragOverlay) {\n for (const [key, value] of Object.entries(styles.dragOverlay)) {\n if (value === undefined) {\n continue;\n }\n\n dragOverlay.node.style.setProperty(key, value);\n }\n }\n\n if (className?.active) {\n active.node.classList.add(className.active);\n }\n\n if (className?.dragOverlay) {\n dragOverlay.node.classList.add(className.dragOverlay);\n }\n\n return function cleanup() {\n for (const [key, value] of Object.entries(originalStyles)) {\n active.node.style.setProperty(key, value);\n }\n\n if (className?.active) {\n active.node.classList.remove(className.active);\n }\n };\n};\n\nconst defaultKeyframeResolver: KeyframeResolver = ({\n transform: {initial, final},\n}) => [\n {\n transform: CSS.Transform.toString(initial),\n },\n {\n transform: CSS.Transform.toString(final),\n },\n];\n\nexport const defaultDropAnimationConfiguration: Required<DropAnimationOptions> = {\n duration: 250,\n easing: 'ease',\n keyframes: defaultKeyframeResolver,\n sideEffects: defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0',\n },\n },\n }),\n};\n\nexport function useDropAnimation({\n config,\n draggableNodes,\n droppableContainers,\n measuringConfiguration,\n}: Arguments) {\n return useEvent<Animation>((id, node) => {\n if (config === null) {\n return;\n }\n\n const activeDraggable: DraggableNode | undefined = draggableNodes.get(id);\n\n if (!activeDraggable) {\n return;\n }\n\n const activeNode = activeDraggable.node.current;\n\n if (!activeNode) {\n return;\n }\n\n const measurableNode = getMeasurableNode(node);\n\n if (!measurableNode) {\n return;\n }\n const {transform} = getWindow(node).getComputedStyle(node);\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return;\n }\n\n const animation: DropAnimationFunction =\n typeof config === 'function'\n ? config\n : createDefaultDropAnimation(config);\n\n scrollIntoViewIfNeeded(\n activeNode,\n measuringConfiguration.draggable.measure\n );\n\n return animation({\n active: {\n id,\n data: activeDraggable.data,\n node: activeNode,\n rect: measuringConfiguration.draggable.measure(activeNode),\n },\n draggableNodes,\n dragOverlay: {\n node,\n rect: measuringConfiguration.dragOverlay.measure(measurableNode),\n },\n droppableContainers,\n measuringConfiguration,\n transform: parsedTransform,\n });\n });\n}\n\nfunction createDefaultDropAnimation(\n options: DropAnimationOptions | undefined\n): DropAnimationFunction {\n const {duration, easing, sideEffects, keyframes} = {\n ...defaultDropAnimationConfiguration,\n ...options,\n };\n\n return ({active, dragOverlay, transform, ...rest}) => {\n if (!duration) {\n // Do not animate if animation duration is zero.\n return;\n }\n\n const delta = {\n x: dragOverlay.rect.left - active.rect.left,\n y: dragOverlay.rect.top - active.rect.top,\n };\n\n const scale = {\n scaleX:\n transform.scaleX !== 1\n ? (active.rect.width * transform.scaleX) / dragOverlay.rect.width\n : 1,\n scaleY:\n transform.scaleY !== 1\n ? (active.rect.height * transform.scaleY) / dragOverlay.rect.height\n : 1,\n };\n const finalTransform = {\n x: transform.x - delta.x,\n y: transform.y - delta.y,\n ...scale,\n };\n\n const animationKeyframes = keyframes({\n ...rest,\n active,\n dragOverlay,\n transform: {initial: transform, final: finalTransform},\n });\n\n const [firstKeyframe] = animationKeyframes;\n const lastKeyframe = animationKeyframes[animationKeyframes.length - 1];\n\n if (JSON.stringify(firstKeyframe) === JSON.stringify(lastKeyframe)) {\n // The start and end keyframes are the same, infer that there is no animation needed.\n return;\n }\n\n const cleanup = sideEffects?.({active, dragOverlay, ...rest});\n const animation = dragOverlay.node.animate(animationKeyframes, {\n duration,\n easing,\n fill: 'forwards',\n });\n\n return new Promise((resolve) => {\n animation.onfinish = () => {\n cleanup?.();\n resolve();\n };\n });\n };\n}\n","import {useMemo} from 'react';\n\nimport type {UniqueIdentifier} from '../../../types';\n\nlet key = 0;\n\nexport function useKey(id: UniqueIdentifier | undefined) {\n return useMemo(() => {\n if (id == null) {\n return;\n }\n\n key++;\n return key;\n }, [id]);\n}\n","import React, {useContext} from 'react';\n\nimport {applyModifiers, Modifiers} from '../../modifiers';\nimport {ActiveDraggableContext} from '../DndContext';\nimport {useDndContext} from '../../hooks';\nimport {useInitialValue} from '../../hooks/utilities';\n\nimport {\n AnimationManager,\n NullifiedContextProvider,\n PositionedOverlay,\n} from './components';\nimport type {PositionedOverlayProps} from './components';\n\nimport {useDropAnimation, useKey} from './hooks';\nimport type {DropAnimation} from './hooks';\n\nexport interface Props\n extends Pick<\n PositionedOverlayProps,\n 'adjustScale' | 'children' | 'className' | 'style' | 'transition'\n > {\n dropAnimation?: DropAnimation | null | undefined;\n modifiers?: Modifiers;\n wrapperElement?: keyof JSX.IntrinsicElements;\n zIndex?: number;\n}\n\nexport const DragOverlay = React.memo(\n ({\n adjustScale = false,\n children,\n dropAnimation: dropAnimationConfig,\n style,\n transition,\n modifiers,\n wrapperElement = 'div',\n className,\n zIndex = 999,\n }: Props) => {\n const {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggableNodes,\n droppableContainers,\n dragOverlay,\n over,\n measuringConfiguration,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect,\n } = useDndContext();\n const transform = useContext(ActiveDraggableContext);\n const key = useKey(active?.id);\n const modifiedTransform = applyModifiers(modifiers, {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect: dragOverlay.rect,\n over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n transform,\n windowRect,\n });\n const initialRect = useInitialValue(activeNodeRect);\n const dropAnimation = useDropAnimation({\n config: dropAnimationConfig,\n draggableNodes,\n droppableContainers,\n measuringConfiguration,\n });\n // We need to wait for the active node to be measured before connecting the drag overlay ref\n // otherwise collisions can be computed against a mispositioned drag overlay\n const ref = initialRect ? dragOverlay.setRef : undefined;\n\n return (\n <NullifiedContextProvider>\n <AnimationManager animation={dropAnimation}>\n {active && key ? (\n <PositionedOverlay\n key={key}\n id={active.id}\n ref={ref}\n as={wrapperElement}\n activatorEvent={activatorEvent}\n adjustScale={adjustScale}\n className={className}\n transition={transition}\n rect={initialRect}\n style={{\n zIndex,\n ...style,\n }}\n transform={modifiedTransform}\n >\n {children}\n </PositionedOverlay>\n ) : null}\n </AnimationManager>\n </NullifiedContextProvider>\n );\n }\n);\n","/**\n * Move an array item to a different position. Returns a new array with the item moved to the new position.\n */\nexport function arrayMove<T>(array: T[], from: number, to: number): T[] {\n const newArray = array.slice();\n newArray.splice(\n to < 0 ? newArray.length + to : to,\n 0,\n newArray.splice(from, 1)[0]\n );\n\n return newArray;\n}\n","import type {\n ClientRect,\n UniqueIdentifier,\n UseDndContextReturnValue,\n} from '@dnd-kit/core';\n\nexport function getSortedRects(\n items: UniqueIdentifier[],\n rects: UseDndContextReturnValue['droppableRects']\n) {\n return items.reduce<ClientRect[]>((accumulator, id, index) => {\n const rect = rects.get(id);\n\n if (rect) {\n accumulator[index] = rect;\n }\n\n return accumulator;\n }, Array(items.length));\n}\n","export function isValidIndex(index: number | null): index is number {\n return index !== null && index >= 0;\n}\n","import {arrayMove} from '../utilities';\nimport type {SortingStrategy} from '../types';\n\nexport const rectSortingStrategy: SortingStrategy = ({\n rects,\n activeIndex,\n overIndex,\n index,\n}) => {\n const newRects = arrayMove(rects, overIndex, activeIndex);\n\n const oldRect = rects[index];\n const newRect = newRects[index];\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height,\n };\n};\n","import type {ClientRect} from '@dnd-kit/core';\nimport type {SortingStrategy} from '../types';\n\n// To-do: We should be calculating scale transformation\nconst defaultScale = {\n scaleX: 1,\n scaleY: 1,\n};\n\nexport const verticalListSortingStrategy: SortingStrategy = ({\n activeIndex,\n activeNodeRect: fallbackActiveRect,\n index,\n rects,\n overIndex,\n}) => {\n const activeNodeRect = rects[activeIndex] ?? fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n if (index === activeIndex) {\n const overIndexRect = rects[overIndex];\n\n if (!overIndexRect) {\n return null;\n }\n\n return {\n x: 0,\n y:\n activeIndex < overIndex\n ? overIndexRect.top +\n overIndexRect.height -\n (activeNodeRect.top + activeNodeRect.height)\n : overIndexRect.top - activeNodeRect.top,\n ...defaultScale,\n };\n }\n\n const itemGap = getItemGap(rects, index, activeIndex);\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: 0,\n y: -activeNodeRect.height - itemGap,\n ...defaultScale,\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: 0,\n y: activeNodeRect.height + itemGap,\n ...defaultScale,\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale,\n };\n};\n\nfunction getItemGap(\n clientRects: ClientRect[],\n index: number,\n activeIndex: number\n) {\n const currentRect: ClientRect | undefined = clientRects[index];\n const previousRect: ClientRect | undefined = clientRects[index - 1];\n const nextRect: ClientRect | undefined = clientRects[index + 1];\n\n if (!currentRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect\n ? currentRect.top - (previousRect.top + previousRect.height)\n : nextRect\n ? nextRect.top - (currentRect.top + currentRect.height)\n : 0;\n }\n\n return nextRect\n ? nextRect.top - (currentRect.top + currentRect.height)\n : previousRect\n ? currentRect.top - (previousRect.top + previousRect.height)\n : 0;\n}\n","import React, {useEffect, useMemo, useRef} from 'react';\nimport {useDndContext, ClientRect, UniqueIdentifier} from '@dnd-kit/core';\nimport {useIsomorphicLayoutEffect, useUniqueId} from '@dnd-kit/utilities';\n\nimport type {Disabled, SortingStrategy} from '../types';\nimport {getSortedRects, itemsEqual, normalizeDisabled} from '../utilities';\nimport {rectSortingStrategy} from '../strategies';\n\nexport interface Props {\n children: React.ReactNode;\n items: (UniqueIdentifier | {id: UniqueIdentifier})[];\n strategy?: SortingStrategy;\n id?: string;\n disabled?: boolean | Disabled;\n}\n\nconst ID_PREFIX = 'Sortable';\n\ninterface ContextDescriptor {\n activeIndex: number;\n containerId: string;\n disabled: Disabled;\n disableTransforms: boolean;\n items: UniqueIdentifier[];\n overIndex: number;\n useDragOverlay: boolean;\n sortedRects: ClientRect[];\n strategy: SortingStrategy;\n}\n\nexport const Context = React.createContext<ContextDescriptor>({\n activeIndex: -1,\n containerId: ID_PREFIX,\n disableTransforms: false,\n items: [],\n overIndex: -1,\n useDragOverlay: false,\n sortedRects: [],\n strategy: rectSortingStrategy,\n disabled: {\n draggable: false,\n droppable: false,\n },\n});\n\nexport function SortableContext({\n children,\n id,\n items: userDefinedItems,\n strategy = rectSortingStrategy,\n disabled: disabledProp = false,\n}: Props) {\n const {\n active,\n dragOverlay,\n droppableRects,\n over,\n measureDroppableContainers,\n measuringScheduled,\n } = useDndContext();\n const containerId = useUniqueId(ID_PREFIX, id);\n const useDragOverlay = Boolean(dragOverlay.rect !== null);\n const items = useMemo<UniqueIdentifier[]>(\n () =>\n userDefinedItems.map((item) =>\n typeof item === 'object' && 'id' in item ? item.id : item\n ),\n [userDefinedItems]\n );\n const isDragging = active != null;\n const activeIndex = active ? items.indexOf(active.id) : -1;\n const overIndex = over ? items.indexOf(over.id) : -1;\n const previousItemsRef = useRef(items);\n const itemsHaveChanged = !itemsEqual(items, previousItemsRef.current);\n const disableTransforms =\n (overIndex !== -1 && activeIndex === -1) || itemsHaveChanged;\n const disabled = normalizeDisabled(disabledProp);\n\n useIsomorphicLayoutEffect(() => {\n if (itemsHaveChanged && isDragging && !measuringScheduled) {\n measureDroppableContainers(items);\n }\n }, [\n itemsHaveChanged,\n items,\n isDragging,\n measureDroppableContainers,\n measuringScheduled,\n ]);\n\n useEffect(() => {\n previousItemsRef.current = items;\n }, [items]);\n\n const contextValue = useMemo(\n (): ContextDescriptor => ({\n activeIndex,\n containerId,\n disabled,\n disableTransforms,\n items,\n overIndex,\n useDragOverlay,\n sortedRects: getSortedRects(items, droppableRects),\n strategy,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n activeIndex,\n containerId,\n disabled.draggable,\n disabled.droppable,\n disableTransforms,\n items,\n overIndex,\n droppableRects,\n useDragOverlay,\n strategy,\n ]\n );\n\n return <Context.Provider value={contextValue}>{children}</Context.Provider>;\n}\n","import type {UniqueIdentifier} from '@dnd-kit/core';\n\nexport function itemsEqual(a: UniqueIdentifier[], b: UniqueIdentifier[]) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n","import type {Disabled} from '../types';\n\nexport function normalizeDisabled(disabled: boolean | Disabled): Disabled {\n if (typeof disabled === 'boolean') {\n return {\n draggable: disabled,\n droppable: disabled,\n };\n }\n\n return disabled;\n}\n","import {CSS} from '@dnd-kit/utilities';\n\nimport {arrayMove} from '../utilities';\n\nimport type {\n AnimateLayoutChanges,\n NewIndexGetter,\n SortableTransition,\n} from './types';\n\nexport const defaultNewIndexGetter: NewIndexGetter = ({\n id,\n items,\n activeIndex,\n overIndex,\n}) => arrayMove(items, activeIndex, overIndex).indexOf(id);\n\nexport const defaultAnimateLayoutChanges: AnimateLayoutChanges = ({\n containerId,\n isSorting,\n wasDragging,\n index,\n items,\n newIndex,\n previousItems,\n previousContainerId,\n transition,\n}) => {\n if (!transition || !wasDragging) {\n return false;\n }\n\n if (previousItems !== items && index === newIndex) {\n return false;\n }\n\n if (isSorting) {\n return true;\n }\n\n return newIndex !== index && containerId === previousContainerId;\n};\n\nexport const defaultTransition: SortableTransition = {\n duration: 200,\n easing: 'ease',\n};\n\nexport const transitionProperty = 'transform';\n\nexport const disabledTransition = CSS.Transition.toString({\n property: transitionProperty,\n duration: 0,\n easing: 'linear',\n});\n\nexport const defaultAttributes = {\n roleDescription: 'sortable',\n};\n","import {useContext, useEffect, useMemo, useRef} from 'react';\nimport {\n useDraggable,\n useDroppable,\n UseDraggableArguments,\n UseDroppableArguments,\n} from '@dnd-kit/core';\nimport type {Data} from '@dnd-kit/core';\nimport {CSS, isKeyboardEvent, useCombinedRefs} from '@dnd-kit/utilities';\n\nimport {Context} from '../components';\nimport type {Disabled, SortableData, SortingStrategy} from '../types';\nimport {isValidIndex} from '../utilities';\nimport {\n defaultAnimateLayoutChanges,\n defaultAttributes,\n defaultNewIndexGetter,\n defaultTransition,\n disabledTransition,\n transitionProperty,\n} from './defaults';\nimport type {\n AnimateLayoutChanges,\n NewIndexGetter,\n SortableTransition,\n} from './types';\nimport {useDerivedTransform} from './utilities';\n\nexport interface Arguments\n extends Omit<UseDraggableArguments, 'disabled'>,\n Pick<UseDroppableArguments, 'resizeObserverConfig'> {\n animateLayoutChanges?: AnimateLayoutChanges;\n disabled?: boolean | Disabled;\n getNewIndex?: NewIndexGetter;\n strategy?: SortingStrategy;\n transition?: SortableTransition | null;\n}\n\nexport function useSortable({\n animateLayoutChanges = defaultAnimateLayoutChanges,\n attributes: userDefinedAttributes,\n disabled: localDisabled,\n data: customData,\n getNewIndex = defaultNewIndexGetter,\n id,\n strategy: localStrategy,\n resizeObserverConfig,\n transition = defaultTransition,\n}: Arguments) {\n const {\n items,\n containerId,\n activeIndex,\n disabled: globalDisabled,\n disableTransforms,\n sortedRects,\n overIndex,\n useDragOverlay,\n strategy: globalStrategy,\n } = useContext(Context);\n const disabled: Disabled = normalizeLocalDisabled(\n localDisabled,\n globalDisabled\n );\n const index = items.indexOf(id);\n const data = useMemo<SortableData & Data>(\n () => ({sortable: {containerId, index, items}, ...customData}),\n [containerId, customData, index, items]\n );\n const itemsAfterCurrentSortable = useMemo(\n () => items.slice(items.indexOf(id)),\n [items, id]\n );\n const {rect, node, isOver, setNodeRef: setDroppableNodeRef} = useDroppable({\n id,\n data,\n disabled: disabled.droppable,\n resizeObserverConfig: {\n updateMeasurementsFor: itemsAfterCurrentSortable,\n ...resizeObserverConfig,\n },\n });\n const {\n active,\n activatorEvent,\n activeNodeRect,\n attributes,\n setNodeRef: setDraggableNodeRef,\n listeners,\n isDragging,\n over,\n setActivatorNodeRef,\n transform,\n } = useDraggable({\n id,\n data,\n attributes: {\n ...defaultAttributes,\n ...userDefinedAttributes,\n },\n disabled: disabled.draggable,\n });\n const setNodeRef = useCombinedRefs(setDroppableNodeRef, setDraggableNodeRef);\n const isSorting = Boolean(active);\n const displaceItem =\n isSorting &&\n !disableTransforms &&\n isValidIndex(activeIndex) &&\n isValidIndex(overIndex);\n const shouldDisplaceDragSource = !useDragOverlay && isDragging;\n const dragSourceDisplacement =\n shouldDisplaceDragSource && displaceItem ? transform : null;\n const strategy = localStrategy ?? globalStrategy;\n const finalTransform = displaceItem\n ? dragSourceDisplacement ??\n strategy({\n rects: sortedRects,\n activeNodeRect,\n activeIndex,\n overIndex,\n index,\n })\n : null;\n const newIndex =\n isValidIndex(activeIndex) && isValidIndex(overIndex)\n ? getNewIndex({id, items, activeIndex, overIndex})\n : index;\n const activeId = active?.id;\n const previous = useRef({\n activeId,\n items,\n newIndex,\n containerId,\n });\n const itemsHaveChanged = items !== previous.current.items;\n const shouldAnimateLayoutChanges = animateLayoutChanges({\n active,\n containerId,\n isDragging,\n isSorting,\n id,\n index,\n items,\n newIndex: previous.current.newIndex,\n previousItems: previous.current.items,\n previousContainerId: previous.current.containerId,\n transition,\n wasDragging: previous.current.activeId != null,\n });\n\n const derivedTransform = useDerivedTransform({\n disabled: !shouldAnimateLayoutChanges,\n index,\n node,\n rect,\n });\n\n useEffect(() => {\n if (isSorting && previous.current.newIndex !== newIndex) {\n previous.current.newIndex = newIndex;\n }\n\n if (containerId !== previous.current.containerId) {\n previous.current.containerId = containerId;\n }\n\n if (items !== previous.current.items) {\n previous.current.items = items;\n }\n }, [isSorting, newIndex, containerId, items]);\n\n useEffect(() => {\n if (activeId === previous.current.activeId) {\n return;\n }\n\n if (activeId && !previous.current.activeId) {\n previous.current.activeId = activeId;\n return;\n }\n\n const timeoutId = setTimeout(() => {\n previous.current.activeId = activeId;\n }, 50);\n\n return () => clearTimeout(timeoutId);\n }, [activeId]);\n\n return {\n active,\n activeIndex,\n attributes,\n data,\n rect,\n index,\n newIndex,\n items,\n isOver,\n isSorting,\n isDragging,\n listeners,\n node,\n overIndex,\n over,\n setNodeRef,\n setActivatorNodeRef,\n setDroppableNodeRef,\n setDraggableNodeRef,\n transform: derivedTransform ?? finalTransform,\n transition: getTransition(),\n };\n\n function getTransition() {\n if (\n // Temporarily disable transitions for a single frame to set up derived transforms\n derivedTransform ||\n // Or to prevent items jumping to back to their \"new\" position when items change\n (itemsHaveChanged && previous.current.newIndex === index)\n ) {\n return disabledTransition;\n }\n\n if (\n (shouldDisplaceDragSource && !isKeyboardEvent(activatorEvent)) ||\n !transition\n ) {\n return undefined;\n }\n\n if (isSorting || shouldAnimateLayoutChanges) {\n return CSS.Transition.toString({\n ...transition,\n property: transitionProperty,\n });\n }\n\n return undefined;\n }\n}\n\nfunction normalizeLocalDisabled(\n localDisabled: Arguments['disabled'],\n globalDisabled: Disabled\n) {\n if (typeof localDisabled === 'boolean') {\n return {\n draggable: localDisabled,\n // Backwards compatibility\n droppable: false,\n };\n }\n\n return {\n draggable: localDisabled?.draggable ?? globalDisabled.draggable,\n droppable: localDisabled?.droppable ?? globalDisabled.droppable,\n };\n}\n","import {useEffect, useRef, useState} from 'react';\nimport {getClientRect, ClientRect} from '@dnd-kit/core';\nimport {Transform, useIsomorphicLayoutEffect} from '@dnd-kit/utilities';\n\ninterface Arguments {\n rect: React.MutableRefObject<ClientRect | null>;\n disabled: boolean;\n index: number;\n node: React.MutableRefObject<HTMLElement | null>;\n}\n\n/*\n * When the index of an item changes while sorting,\n * we need to temporarily disable the transforms\n */\nexport function useDerivedTransform({disabled, index, node, rect}: Arguments) {\n const [derivedTransform, setDerivedtransform] = useState<Transform | null>(\n null\n );\n const previousIndex = useRef(index);\n\n useIsomorphicLayoutEffect(() => {\n if (!disabled && index !== previousIndex.current && node.current) {\n const initial = rect.current;\n\n if (initial) {\n const current = getClientRect(node.current, {\n ignoreTransform: true,\n });\n\n const delta = {\n x: initial.left - current.left,\n y: initial.top - current.top,\n scaleX: initial.width / current.width,\n scaleY: initial.height / current.height,\n };\n\n if (delta.x || delta.y) {\n setDerivedtransform(delta);\n }\n }\n }\n\n if (index !== previousIndex.current) {\n previousIndex.current = index;\n }\n }, [disabled, index, node, rect]);\n\n useEffect(() => {\n if (derivedTransform) {\n requestAnimationFrame(() => {\n setDerivedtransform(null);\n });\n }\n }, [derivedTransform]);\n\n return derivedTransform;\n}\n","import {\n closestCorners,\n getScrollableAncestors,\n getFirstCollision,\n KeyboardCode,\n DroppableContainer,\n KeyboardCoordinateGetter,\n} from '@dnd-kit/core';\nimport {subtract} from '@dnd-kit/utilities';\n\nimport {hasSortableData} from '../../types';\n\nconst directions: string[] = [\n KeyboardCode.Down,\n KeyboardCode.Right,\n KeyboardCode.Up,\n KeyboardCode.Left,\n];\n\nexport const sortableKeyboardCoordinates: KeyboardCoordinateGetter = (\n event,\n {\n context: {\n active,\n collisionRect,\n droppableRects,\n droppableContainers,\n over,\n scrollableAncestors,\n },\n }\n) => {\n if (directions.includes(event.code)) {\n event.preventDefault();\n\n if (!active || !collisionRect) {\n return;\n }\n\n const filteredContainers: DroppableContainer[] = [];\n\n droppableContainers.getEnabled().forEach((entry) => {\n if (!entry || entry?.disabled) {\n return;\n }\n\n const rect = droppableRects.get(entry.id);\n\n if (!rect) {\n return;\n }\n\n switch (event.code) {\n case KeyboardCode.Down:\n if (collisionRect.top < rect.top) {\n filteredContainers.push(entry);\n }\n break;\n case KeyboardCode.Up:\n if (collisionRect.top > rect.top) {\n filteredContainers.push(entry);\n }\n break;\n case KeyboardCode.Left:\n if (collisionRect.left > rect.left) {\n filteredContainers.push(entry);\n }\n break;\n case KeyboardCode.Right:\n if (collisionRect.left < rect.left) {\n filteredContainers.push(entry);\n }\n break;\n }\n });\n\n const collisions = closestCorners({\n active,\n collisionRect: collisionRect,\n droppableRects,\n droppableContainers: filteredContainers,\n pointerCoordinates: null,\n });\n let closestId = getFirstCollision(collisions, 'id');\n\n if (closestId === over?.id && collisions.length > 1) {\n closestId = collisions[1].id;\n }\n\n if (closestId != null) {\n const activeDroppable = droppableContainers.get(active.id);\n const newDroppable = droppableContainers.get(closestId);\n const newRect = newDroppable ? droppableRects.get(newDroppable.id) : null;\n const newNode = newDroppable?.node.current;\n\n if (newNode && newRect && activeDroppable && newDroppable) {\n const newScrollAncestors = getScrollableAncestors(newNode);\n const hasDifferentScrollAncestors = newScrollAncestors.some(\n (element, index) => scrollableAncestors[index] !== element\n );\n const hasSameContainer = isSameContainer(activeDroppable, newDroppable);\n const isAfterActive = isAfter(activeDroppable, newDroppable);\n const offset =\n hasDifferentScrollAncestors || !hasSameContainer\n ? {\n x: 0,\n y: 0,\n }\n : {\n x: isAfterActive ? collisionRect.width - newRect.width : 0,\n y: isAfterActive ? collisionRect.height - newRect.height : 0,\n };\n const rectCoordinates = {\n x: newRect.left,\n y: newRect.top,\n };\n\n const newCoordinates =\n offset.x && offset.y\n ? rectCoordinates\n : subtract(rectCoordinates, offset);\n\n return newCoordinates;\n }\n }\n }\n\n return undefined;\n};\n\nfunction isSameContainer(a: DroppableContainer, b: DroppableContainer) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n return (\n a.data.current.sortable.containerId === b.data.current.sortable.containerId\n );\n}\n\nfunction isAfter(a: DroppableContainer, b: DroppableContainer) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n if (!isSameContainer(a, b)) {\n return false;\n }\n\n return a.data.current.sortable.index < b.data.current.sortable.index;\n}\n","import {useMemo} from 'react';\n\nexport function useCombinedRefs<T>(\n ...refs: ((node: T) => void)[]\n): (node: T) => void {\n return useMemo(\n () => (node: T) => {\n refs.forEach((ref) => ref(node));\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n refs\n );\n}\n","// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nexport const canUseDOM =\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined';\n","export function isWindow(element: Object): element is typeof window {\n const elementString = Object.prototype.toString.call(element);\n return (\n elementString === '[object Window]' ||\n // In Electron context the Window object serializes to [object global]\n elementString === '[object global]'\n );\n}\n","export function isNode(node: Object): node is Node {\n return 'nodeType' in node;\n}\n","import {isWindow} from '../type-guards/isWindow';\nimport {isNode} from '../type-guards/isNode';\n\nexport function getWindow(target: Event['target']): typeof window {\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return target.ownerDocument?.defaultView ?? window;\n}\n","import {getWindow} from '../execution-context/getWindow';\n\nexport function isDocument(node: Node): node is Document {\n const {Document} = getWindow(node);\n\n return node instanceof Document;\n}\n","import {getWindow} from '../execution-context/getWindow';\n\nimport {isWindow} from './isWindow';\n\nexport function isHTMLElement(node: Node | Window): node is HTMLElement {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n","import {getWindow} from '../execution-context/getWindow';\n\nexport function isSVGElement(node: Node): node is SVGElement {\n return node instanceof getWindow(node).SVGElement;\n}\n","import {isWindow, isHTMLElement, isDocument, isNode} from '../type-guards';\n\nexport function getOwnerDocument(target: Event['target']): Document {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n","import {useEffect, useLayoutEffect} from 'react';\n\nimport {canUseDOM} from '../execution-context';\n\n/**\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\n */\nexport const useIsomorphicLayoutEffect = canUseDOM\n ? useLayoutEffect\n : useEffect;\n","import {useCallback, useRef} from 'react';\n\nimport {useIsomorphicLayoutEffect} from './useIsomorphicLayoutEffect';\n\nexport function useEvent<T extends Function>(handler: T | undefined) {\n const handlerRef = useRef<T | undefined>(handler);\n\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n\n return useCallback(function (...args: any) {\n return handlerRef.current?.(...args);\n }, []);\n}\n","import {useCallback, useRef} from 'react';\n\nexport function useInterval() {\n const intervalRef = useRef<number | null>(null);\n\n const set = useCallback((listener: Function, duration: number) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n\n return [set, clear] as const;\n}\n","import {useRef} from 'react';\n\nimport {useIsomorphicLayoutEffect} from './useIsomorphicLayoutEffect';\n\nexport function useLatestValue<T extends any>(\n value: T,\n dependencies = [value]\n) {\n const valueRef = useRef<T>(value);\n\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n\n return valueRef;\n}\n","import {useMemo, useRef} from 'react';\n\nexport function useLazyMemo<T>(\n callback: (prevValue: T | undefined) => T,\n dependencies: any[]\n) {\n const valueRef = useRef<T>();\n\n return useMemo(\n () => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n\n return newValue;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]\n );\n}\n","import {useRef, useCallback} from 'react';\n\nimport {useEvent} from './useEvent';\n\nexport function useNodeRef(\n onChange?: (\n newElement: HTMLElement | null,\n previousElement: HTMLElement | null\n ) => void\n) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef<HTMLElement | null>(null);\n const setNodeRef = useCallback(\n (element: HTMLElement | null) => {\n if (element !== node.current) {\n onChangeHandler?.(element, node.current);\n }\n\n node.current = element;\n },\n //eslint-disable-next-line\n []\n );\n\n return [node, setNodeRef] as const;\n}\n","import {useRef, useEffect} from 'react';\n\nexport function usePrevious<T>(value: T) {\n const ref = useRef<T>();\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n}\n","import {useMemo} from 'react';\n\nlet ids: Record<string, number> = {};\n\nexport function useUniqueId(prefix: string, value?: string) {\n return useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n\n return `${prefix}-${id}`;\n }, [prefix, value]);\n}\n","function createAdjustmentFn(modifier: number) {\n return <T extends Record<U, number>, U extends string>(\n object: T,\n ...adjustments: Partial<T>[]\n ): T => {\n return adjustments.reduce<T>(\n (accumulator, adjustment) => {\n const entries = Object.entries(adjustment) as [U, number][];\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = (value + modifier * valueAdjustment) as T[U];\n }\n }\n\n return accumulator;\n },\n {\n ...object,\n }\n );\n };\n}\n\nexport const add = createAdjustmentFn(1);\nexport const subtract = createAdjustmentFn(-1);\n","import {getWindow} from '../execution-context';\n\nexport function isKeyboardEvent(\n event: Event | undefined | null\n): event is KeyboardEvent {\n if (!event) {\n return false;\n }\n\n const {KeyboardEvent} = getWindow(event.target);\n\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n","import type {Coordinates} from './types';\nimport {isTouchEvent, hasViewportRelativeCoordinates} from '../event';\n\n/**\n * Returns the normalized x and y coordinates for mouse and touch events.\n */\nexport function getEventCoordinates(event: Event): Coordinates | null {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {clientX: x, clientY: y} = event.touches[0];\n\n return {\n x,\n y,\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {clientX: x, clientY: y} = event.changedTouches[0];\n\n return {\n x,\n y,\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY,\n };\n }\n\n return null;\n}\n","import {getWindow} from '../execution-context';\n\nexport function isTouchEvent(\n event: Event | undefined | null\n): event is TouchEvent {\n if (!event) {\n return false;\n }\n\n const {TouchEvent} = getWindow(event.target);\n\n return TouchEvent && event instanceof TouchEvent;\n}\n","export function hasViewportRelativeCoordinates(\n event: Event\n): event is Event & Pick<PointerEvent, 'clientX' | 'clientY'> {\n return 'clientX' in event && 'clientY' in event;\n}\n","export type Transform = {\n x: number;\n y: number;\n scaleX: number;\n scaleY: number;\n};\n\nexport interface Transition {\n property: string;\n easing: string;\n duration: number;\n}\n\nexport const CSS = Object.freeze({\n Translate: {\n toString(transform: Transform | null) {\n if (!transform) {\n return;\n }\n\n const {x, y} = transform;\n\n return `translate3d(${x ? Math.round(x) : 0}px, ${\n y ? Math.round(y) : 0\n }px, 0)`;\n },\n },\n Scale: {\n toString(transform: Transform | null) {\n if (!transform) {\n return;\n }\n\n const {scaleX, scaleY} = transform;\n\n return `scaleX(${scaleX}) scaleY(${scaleY})`;\n },\n },\n Transform: {\n toString(transform: Transform | null) {\n if (!transform) {\n return;\n }\n\n return [\n CSS.Translate.toString(transform),\n CSS.Scale.toString(transform),\n ].join(' ');\n },\n },\n Transition: {\n toString({property, duration, easing}: Transition) {\n return `${property} ${duration}ms ${easing}`;\n },\n },\n});\n","const SELECTOR =\n 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\n\nexport function findFirstFocusableNode(\n element: HTMLElement\n): HTMLElement | null {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","import { useRef, createElement, createContext, createRef, useContext, useState, useMemo, useEffect, useCallback, Fragment, Component } from 'react';\nimport clsx from 'clsx';\n\nvar ClassNames;\n\n(function (ClassNames) {\n ClassNames[\"hiddenOnSearch\"] = \"epr-hidden-on-search\";\n ClassNames[\"searchActive\"] = \"epr-search-active\";\n ClassNames[\"hidden\"] = \"epr-hidden\";\n ClassNames[\"visible\"] = \"epr-visible\";\n ClassNames[\"active\"] = \"epr-active\";\n ClassNames[\"emoji\"] = \"epr-emoji\";\n ClassNames[\"category\"] = \"epr-emoji-category\";\n ClassNames[\"label\"] = \"epr-emoji-category-label\";\n ClassNames[\"categoryContent\"] = \"epr-emoji-category-content\";\n ClassNames[\"emojiHasVariations\"] = \"epr-emoji-has-variations\";\n ClassNames[\"scrollBody\"] = \"epr-body\";\n ClassNames[\"emojiList\"] = \"epr-emoji-list\";\n ClassNames[\"external\"] = \"__EmojiPicker__\";\n ClassNames[\"emojiPicker\"] = \"EmojiPickerReact\";\n ClassNames[\"open\"] = \"epr-open\";\n ClassNames[\"vertical\"] = \"epr-vertical\";\n ClassNames[\"horizontal\"] = \"epr-horizontal\";\n ClassNames[\"variationPicker\"] = \"epr-emoji-variation-picker\";\n})(ClassNames || (ClassNames = {}));\n\nfunction asSelectors() {\n for (var _len = arguments.length, classNames = new Array(_len), _key = 0; _key < _len; _key++) {\n classNames[_key] = arguments[_key];\n }\n\n return classNames.map(function (c) {\n return \".\" + c;\n }).join('');\n}\n\nfunction focusElement(element) {\n if (!element) {\n return;\n }\n\n requestAnimationFrame(function () {\n element.focus();\n });\n}\nfunction focusPrevElementSibling(element) {\n if (!element) return;\n var prev = element.previousElementSibling;\n focusElement(prev);\n}\nfunction focusNextElementSibling(element) {\n if (!element) return;\n var next = element.nextElementSibling;\n focusElement(next);\n}\nfunction focusFirstElementChild(element) {\n if (!element) return;\n var first = element.firstElementChild;\n focusElement(first);\n}\n\nfunction ElementRefContextProvider(_ref) {\n var children = _ref.children;\n var PickerMainRef = useRef(null);\n var AnchoredEmojiRef = useRef(null);\n var BodyRef = useRef(null);\n var SearchInputRef = useRef(null);\n var SkinTonePickerRef = useRef(null);\n var CategoryNavigationRef = useRef(null);\n var VariationPickerRef = useRef(null);\n return createElement(ElementRefContext.Provider, {\n value: {\n AnchoredEmojiRef: AnchoredEmojiRef,\n BodyRef: BodyRef,\n CategoryNavigationRef: CategoryNavigationRef,\n PickerMainRef: PickerMainRef,\n SearchInputRef: SearchInputRef,\n SkinTonePickerRef: SkinTonePickerRef,\n VariationPickerRef: VariationPickerRef\n }\n }, children);\n}\nvar ElementRefContext = /*#__PURE__*/createContext({\n AnchoredEmojiRef: /*#__PURE__*/createRef(),\n BodyRef: /*#__PURE__*/createRef(),\n CategoryNavigationRef: /*#__PURE__*/createRef(),\n PickerMainRef: /*#__PURE__*/createRef(),\n SearchInputRef: /*#__PURE__*/createRef(),\n SkinTonePickerRef: /*#__PURE__*/createRef(),\n VariationPickerRef: /*#__PURE__*/createRef()\n});\n\nfunction useElementRef() {\n return useContext(ElementRefContext);\n}\n\nfunction usePickerMainRef() {\n return useElementRef()['PickerMainRef'];\n}\nfunction useAnchoredEmojiRef() {\n return useElementRef()['AnchoredEmojiRef'];\n}\nfunction useSetAnchoredEmojiRef() {\n var AnchoredEmojiRef = useAnchoredEmojiRef();\n return function (target) {\n if (target === null && AnchoredEmojiRef.current !== null) {\n focusElement(AnchoredEmojiRef.current);\n }\n\n AnchoredEmojiRef.current = target;\n };\n}\nfunction useBodyRef() {\n return useElementRef()['BodyRef'];\n}\nfunction useSearchInputRef() {\n return useElementRef()['SearchInputRef'];\n}\nfunction useSkinTonePickerRef() {\n return useElementRef()['SkinTonePickerRef'];\n}\nfunction useCategoryNavigationRef() {\n return useElementRef()['CategoryNavigationRef'];\n}\nfunction useVariationPickerRef() {\n return useElementRef()['VariationPickerRef'];\n}\n\nfunction isSystemDarkTheme() {\n if (typeof window === 'undefined') {\n return false;\n }\n\n return !!window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar SuggestionMode;\n\n(function (SuggestionMode) {\n SuggestionMode[\"RECENT\"] = \"recent\";\n SuggestionMode[\"FREQUENT\"] = \"frequent\";\n})(SuggestionMode || (SuggestionMode = {}));\n\nvar EmojiStyle;\n\n(function (EmojiStyle) {\n EmojiStyle[\"NATIVE\"] = \"native\";\n EmojiStyle[\"APPLE\"] = \"apple\";\n EmojiStyle[\"TWITTER\"] = \"twitter\";\n EmojiStyle[\"GOOGLE\"] = \"google\";\n EmojiStyle[\"FACEBOOK\"] = \"facebook\";\n})(EmojiStyle || (EmojiStyle = {}));\n\nvar Theme;\n\n(function (Theme) {\n Theme[\"DARK\"] = \"dark\";\n Theme[\"LIGHT\"] = \"light\";\n Theme[\"AUTO\"] = \"auto\";\n})(Theme || (Theme = {}));\n\nvar SkinTones;\n\n(function (SkinTones) {\n SkinTones[\"NEUTRAL\"] = \"neutral\";\n SkinTones[\"LIGHT\"] = \"1f3fb\";\n SkinTones[\"MEDIUM_LIGHT\"] = \"1f3fc\";\n SkinTones[\"MEDIUM\"] = \"1f3fd\";\n SkinTones[\"MEDIUM_DARK\"] = \"1f3fe\";\n SkinTones[\"DARK\"] = \"1f3ff\";\n})(SkinTones || (SkinTones = {}));\n\nvar Categories;\n\n(function (Categories) {\n Categories[\"SUGGESTED\"] = \"suggested\";\n Categories[\"SMILEYS_PEOPLE\"] = \"smileys_people\";\n Categories[\"ANIMALS_NATURE\"] = \"animals_nature\";\n Categories[\"FOOD_DRINK\"] = \"food_drink\";\n Categories[\"TRAVEL_PLACES\"] = \"travel_places\";\n Categories[\"ACTIVITIES\"] = \"activities\";\n Categories[\"OBJECTS\"] = \"objects\";\n Categories[\"SYMBOLS\"] = \"symbols\";\n Categories[\"FLAGS\"] = \"flags\";\n})(Categories || (Categories = {}));\n\nvar SkinTonePickerLocation;\n\n(function (SkinTonePickerLocation) {\n SkinTonePickerLocation[\"SEARCH\"] = \"SEARCH\";\n SkinTonePickerLocation[\"PREVIEW\"] = \"PREVIEW\";\n})(SkinTonePickerLocation || (SkinTonePickerLocation = {}));\n\nvar CDN_URL_APPLE = 'https://cdn.jsdelivr.net/npm/emoji-datasource-apple/img/apple/64/';\nvar CDN_URL_FACEBOOK = 'https://cdn.jsdelivr.net/npm/emoji-datasource-facebook/img/facebook/64/';\nvar CDN_URL_TWITTER = 'https://cdn.jsdelivr.net/npm/emoji-datasource-twitter/img/twitter/64/';\nvar CDN_URL_GOOGLE = 'https://cdn.jsdelivr.net/npm/emoji-datasource-google/img/google/64/';\nfunction cdnUrl(emojiStyle) {\n switch (emojiStyle) {\n case EmojiStyle.TWITTER:\n return CDN_URL_TWITTER;\n\n case EmojiStyle.GOOGLE:\n return CDN_URL_GOOGLE;\n\n case EmojiStyle.FACEBOOK:\n return CDN_URL_FACEBOOK;\n\n case EmojiStyle.APPLE:\n default:\n return CDN_URL_APPLE;\n }\n}\n\nvar smileys_people = [\n\t{\n\t\tn: [\n\t\t\t\"grinning\",\n\t\t\t\"grinning face\"\n\t\t],\n\t\tu: \"1f600\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"smiley\",\n\t\t\t\"smiling face with open mouth\"\n\t\t],\n\t\tu: \"1f603\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"smile\",\n\t\t\t\"smiling face with open mouth and smiling eyes\"\n\t\t],\n\t\tu: \"1f604\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"grin\",\n\t\t\t\"grinning face with smiling eyes\"\n\t\t],\n\t\tu: \"1f601\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"laughing\",\n\t\t\t\"satisfied\",\n\t\t\t\"smiling face with open mouth and tightly-closed eyes\"\n\t\t],\n\t\tu: \"1f606\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sweat smile\",\n\t\t\t\"smiling face with open mouth and cold sweat\"\n\t\t],\n\t\tu: \"1f605\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rolling on the floor laughing\"\n\t\t],\n\t\tu: \"1f923\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"joy\",\n\t\t\t\"face with tears of joy\"\n\t\t],\n\t\tu: \"1f602\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"slightly smiling face\"\n\t\t],\n\t\tu: \"1f642\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"upside-down face\",\n\t\t\t\"upside down face\"\n\t\t],\n\t\tu: \"1f643\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"melting face\"\n\t\t],\n\t\tu: \"1fae0\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wink\",\n\t\t\t\"winking face\"\n\t\t],\n\t\tu: \"1f609\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"blush\",\n\t\t\t\"smiling face with smiling eyes\"\n\t\t],\n\t\tu: \"1f60a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"innocent\",\n\t\t\t\"smiling face with halo\"\n\t\t],\n\t\tu: \"1f607\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"smiling face with 3 hearts\",\n\t\t\t\"smiling face with smiling eyes and three hearts\"\n\t\t],\n\t\tu: \"1f970\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heart eyes\",\n\t\t\t\"smiling face with heart-shaped eyes\"\n\t\t],\n\t\tu: \"1f60d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"star-struck\",\n\t\t\t\"grinning face with star eyes\"\n\t\t],\n\t\tu: \"1f929\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"kissing heart\",\n\t\t\t\"face throwing a kiss\"\n\t\t],\n\t\tu: \"1f618\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"kissing\",\n\t\t\t\"kissing face\"\n\t\t],\n\t\tu: \"1f617\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"relaxed\",\n\t\t\t\"white smiling face\"\n\t\t],\n\t\tu: \"263a-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"kissing closed eyes\",\n\t\t\t\"kissing face with closed eyes\"\n\t\t],\n\t\tu: \"1f61a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"kissing smiling eyes\",\n\t\t\t\"kissing face with smiling eyes\"\n\t\t],\n\t\tu: \"1f619\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"smiling face with tear\"\n\t\t],\n\t\tu: \"1f972\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"yum\",\n\t\t\t\"face savouring delicious food\"\n\t\t],\n\t\tu: \"1f60b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"stuck out tongue\",\n\t\t\t\"face with stuck-out tongue\"\n\t\t],\n\t\tu: \"1f61b\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"stuck out tongue winking eye\",\n\t\t\t\"face with stuck-out tongue and winking eye\"\n\t\t],\n\t\tu: \"1f61c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"zany face\",\n\t\t\t\"grinning face with one large and one small eye\"\n\t\t],\n\t\tu: \"1f92a\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"stuck out tongue closed eyes\",\n\t\t\t\"face with stuck-out tongue and tightly-closed eyes\"\n\t\t],\n\t\tu: \"1f61d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"money-mouth face\",\n\t\t\t\"money mouth face\"\n\t\t],\n\t\tu: \"1f911\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hugging face\"\n\t\t],\n\t\tu: \"1f917\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face with hand over mouth\",\n\t\t\t\"smiling face with smiling eyes and hand covering mouth\"\n\t\t],\n\t\tu: \"1f92d\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face with open eyes and hand over mouth\"\n\t\t],\n\t\tu: \"1fae2\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face with peeking eye\"\n\t\t],\n\t\tu: \"1fae3\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shushing face\",\n\t\t\t\"face with finger covering closed lips\"\n\t\t],\n\t\tu: \"1f92b\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"thinking face\"\n\t\t],\n\t\tu: \"1f914\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"saluting face\"\n\t\t],\n\t\tu: \"1fae1\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"zipper-mouth face\",\n\t\t\t\"zipper mouth face\"\n\t\t],\n\t\tu: \"1f910\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face with raised eyebrow\",\n\t\t\t\"face with one eyebrow raised\"\n\t\t],\n\t\tu: \"1f928\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"neutral face\"\n\t\t],\n\t\tu: \"1f610\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"expressionless\",\n\t\t\t\"expressionless face\"\n\t\t],\n\t\tu: \"1f611\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"no mouth\",\n\t\t\t\"face without mouth\"\n\t\t],\n\t\tu: \"1f636\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dotted line face\"\n\t\t],\n\t\tu: \"1fae5\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face in clouds\"\n\t\t],\n\t\tu: \"1f636-200d-1f32b-fe0f\",\n\t\ta: \"13.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"smirk\",\n\t\t\t\"smirking face\"\n\t\t],\n\t\tu: \"1f60f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"unamused\",\n\t\t\t\"unamused face\"\n\t\t],\n\t\tu: \"1f612\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face with rolling eyes\"\n\t\t],\n\t\tu: \"1f644\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"grimacing\",\n\t\t\t\"grimacing face\"\n\t\t],\n\t\tu: \"1f62c\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face exhaling\"\n\t\t],\n\t\tu: \"1f62e-200d-1f4a8\",\n\t\ta: \"13.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lying face\"\n\t\t],\n\t\tu: \"1f925\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"relieved\",\n\t\t\t\"relieved face\"\n\t\t],\n\t\tu: \"1f60c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pensive\",\n\t\t\t\"pensive face\"\n\t\t],\n\t\tu: \"1f614\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sleepy\",\n\t\t\t\"sleepy face\"\n\t\t],\n\t\tu: \"1f62a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"drooling face\"\n\t\t],\n\t\tu: \"1f924\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sleeping\",\n\t\t\t\"sleeping face\"\n\t\t],\n\t\tu: \"1f634\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mask\",\n\t\t\t\"face with medical mask\"\n\t\t],\n\t\tu: \"1f637\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face with thermometer\"\n\t\t],\n\t\tu: \"1f912\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face with head-bandage\",\n\t\t\t\"face with head bandage\"\n\t\t],\n\t\tu: \"1f915\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"nauseated face\"\n\t\t],\n\t\tu: \"1f922\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face vomiting\",\n\t\t\t\"face with open mouth vomiting\"\n\t\t],\n\t\tu: \"1f92e\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sneezing face\"\n\t\t],\n\t\tu: \"1f927\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hot face\",\n\t\t\t\"overheated face\"\n\t\t],\n\t\tu: \"1f975\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cold face\",\n\t\t\t\"freezing face\"\n\t\t],\n\t\tu: \"1f976\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woozy face\",\n\t\t\t\"face with uneven eyes and wavy mouth\"\n\t\t],\n\t\tu: \"1f974\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dizzy face\"\n\t\t],\n\t\tu: \"1f635\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face with spiral eyes\"\n\t\t],\n\t\tu: \"1f635-200d-1f4ab\",\n\t\ta: \"13.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"exploding head\",\n\t\t\t\"shocked face with exploding head\"\n\t\t],\n\t\tu: \"1f92f\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face with cowboy hat\"\n\t\t],\n\t\tu: \"1f920\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"partying face\",\n\t\t\t\"face with party horn and party hat\"\n\t\t],\n\t\tu: \"1f973\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"disguised face\"\n\t\t],\n\t\tu: \"1f978\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sunglasses\",\n\t\t\t\"smiling face with sunglasses\"\n\t\t],\n\t\tu: \"1f60e\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"nerd face\"\n\t\t],\n\t\tu: \"1f913\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face with monocle\"\n\t\t],\n\t\tu: \"1f9d0\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"confused\",\n\t\t\t\"confused face\"\n\t\t],\n\t\tu: \"1f615\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face with diagonal mouth\"\n\t\t],\n\t\tu: \"1fae4\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"worried\",\n\t\t\t\"worried face\"\n\t\t],\n\t\tu: \"1f61f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"slightly frowning face\"\n\t\t],\n\t\tu: \"1f641\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"frowning face\",\n\t\t\t\"white frowning face\"\n\t\t],\n\t\tu: \"2639-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"open mouth\",\n\t\t\t\"face with open mouth\"\n\t\t],\n\t\tu: \"1f62e\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hushed\",\n\t\t\t\"hushed face\"\n\t\t],\n\t\tu: \"1f62f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"astonished\",\n\t\t\t\"astonished face\"\n\t\t],\n\t\tu: \"1f632\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flushed\",\n\t\t\t\"flushed face\"\n\t\t],\n\t\tu: \"1f633\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pleading face\",\n\t\t\t\"face with pleading eyes\"\n\t\t],\n\t\tu: \"1f97a\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face holding back tears\"\n\t\t],\n\t\tu: \"1f979\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"frowning\",\n\t\t\t\"frowning face with open mouth\"\n\t\t],\n\t\tu: \"1f626\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"anguished\",\n\t\t\t\"anguished face\"\n\t\t],\n\t\tu: \"1f627\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fearful\",\n\t\t\t\"fearful face\"\n\t\t],\n\t\tu: \"1f628\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cold sweat\",\n\t\t\t\"face with open mouth and cold sweat\"\n\t\t],\n\t\tu: \"1f630\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"disappointed relieved\",\n\t\t\t\"disappointed but relieved face\"\n\t\t],\n\t\tu: \"1f625\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cry\",\n\t\t\t\"crying face\"\n\t\t],\n\t\tu: \"1f622\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sob\",\n\t\t\t\"loudly crying face\"\n\t\t],\n\t\tu: \"1f62d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"scream\",\n\t\t\t\"face screaming in fear\"\n\t\t],\n\t\tu: \"1f631\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"confounded\",\n\t\t\t\"confounded face\"\n\t\t],\n\t\tu: \"1f616\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"persevere\",\n\t\t\t\"persevering face\"\n\t\t],\n\t\tu: \"1f623\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"disappointed\",\n\t\t\t\"disappointed face\"\n\t\t],\n\t\tu: \"1f61e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sweat\",\n\t\t\t\"face with cold sweat\"\n\t\t],\n\t\tu: \"1f613\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"weary\",\n\t\t\t\"weary face\"\n\t\t],\n\t\tu: \"1f629\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tired face\"\n\t\t],\n\t\tu: \"1f62b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"yawning face\"\n\t\t],\n\t\tu: \"1f971\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"triumph\",\n\t\t\t\"face with look of triumph\"\n\t\t],\n\t\tu: \"1f624\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rage\",\n\t\t\t\"pouting face\"\n\t\t],\n\t\tu: \"1f621\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"angry\",\n\t\t\t\"angry face\"\n\t\t],\n\t\tu: \"1f620\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face with symbols on mouth\",\n\t\t\t\"serious face with symbols covering mouth\"\n\t\t],\n\t\tu: \"1f92c\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"smiling imp\",\n\t\t\t\"smiling face with horns\"\n\t\t],\n\t\tu: \"1f608\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"imp\"\n\t\t],\n\t\tu: \"1f47f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"skull\"\n\t\t],\n\t\tu: \"1f480\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"skull and crossbones\"\n\t\t],\n\t\tu: \"2620-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"poop\",\n\t\t\t\"shit\",\n\t\t\t\"hankey\",\n\t\t\t\"pile of poo\"\n\t\t],\n\t\tu: \"1f4a9\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clown face\"\n\t\t],\n\t\tu: \"1f921\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"japanese ogre\"\n\t\t],\n\t\tu: \"1f479\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"japanese goblin\"\n\t\t],\n\t\tu: \"1f47a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ghost\"\n\t\t],\n\t\tu: \"1f47b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"alien\",\n\t\t\t\"extraterrestrial alien\"\n\t\t],\n\t\tu: \"1f47d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"alien monster\",\n\t\t\t\"space invader\"\n\t\t],\n\t\tu: \"1f47e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"robot face\"\n\t\t],\n\t\tu: \"1f916\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"smiley cat\",\n\t\t\t\"smiling cat face with open mouth\"\n\t\t],\n\t\tu: \"1f63a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"smile cat\",\n\t\t\t\"grinning cat face with smiling eyes\"\n\t\t],\n\t\tu: \"1f638\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"joy cat\",\n\t\t\t\"cat face with tears of joy\"\n\t\t],\n\t\tu: \"1f639\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heart eyes cat\",\n\t\t\t\"smiling cat face with heart-shaped eyes\"\n\t\t],\n\t\tu: \"1f63b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"smirk cat\",\n\t\t\t\"cat face with wry smile\"\n\t\t],\n\t\tu: \"1f63c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"kissing cat\",\n\t\t\t\"kissing cat face with closed eyes\"\n\t\t],\n\t\tu: \"1f63d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"scream cat\",\n\t\t\t\"weary cat face\"\n\t\t],\n\t\tu: \"1f640\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"crying cat face\"\n\t\t],\n\t\tu: \"1f63f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pouting cat\",\n\t\t\t\"pouting cat face\"\n\t\t],\n\t\tu: \"1f63e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"see no evil\",\n\t\t\t\"see-no-evil monkey\"\n\t\t],\n\t\tu: \"1f648\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hear no evil\",\n\t\t\t\"hear-no-evil monkey\"\n\t\t],\n\t\tu: \"1f649\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"speak no evil\",\n\t\t\t\"speak-no-evil monkey\"\n\t\t],\n\t\tu: \"1f64a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"kiss\",\n\t\t\t\"kiss mark\"\n\t\t],\n\t\tu: \"1f48b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"love letter\"\n\t\t],\n\t\tu: \"1f48c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cupid\",\n\t\t\t\"heart with arrow\"\n\t\t],\n\t\tu: \"1f498\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"gift heart\",\n\t\t\t\"heart with ribbon\"\n\t\t],\n\t\tu: \"1f49d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sparkling heart\"\n\t\t],\n\t\tu: \"1f496\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heartpulse\",\n\t\t\t\"growing heart\"\n\t\t],\n\t\tu: \"1f497\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heartbeat\",\n\t\t\t\"beating heart\"\n\t\t],\n\t\tu: \"1f493\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"revolving hearts\"\n\t\t],\n\t\tu: \"1f49e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"two hearts\"\n\t\t],\n\t\tu: \"1f495\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heart decoration\"\n\t\t],\n\t\tu: \"1f49f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heart exclamation\",\n\t\t\t\"heavy heart exclamation mark ornament\"\n\t\t],\n\t\tu: \"2763-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"broken heart\"\n\t\t],\n\t\tu: \"1f494\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heart on fire\"\n\t\t],\n\t\tu: \"2764-fe0f-200d-1f525\",\n\t\ta: \"13.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mending heart\"\n\t\t],\n\t\tu: \"2764-fe0f-200d-1fa79\",\n\t\ta: \"13.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heart\",\n\t\t\t\"heavy black heart\"\n\t\t],\n\t\tu: \"2764-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"orange heart\"\n\t\t],\n\t\tu: \"1f9e1\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"yellow heart\"\n\t\t],\n\t\tu: \"1f49b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"green heart\"\n\t\t],\n\t\tu: \"1f49a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"blue heart\"\n\t\t],\n\t\tu: \"1f499\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"purple heart\"\n\t\t],\n\t\tu: \"1f49c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"brown heart\"\n\t\t],\n\t\tu: \"1f90e\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"black heart\"\n\t\t],\n\t\tu: \"1f5a4\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"white heart\"\n\t\t],\n\t\tu: \"1f90d\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"100\",\n\t\t\t\"hundred points symbol\"\n\t\t],\n\t\tu: \"1f4af\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"anger\",\n\t\t\t\"anger symbol\"\n\t\t],\n\t\tu: \"1f4a2\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"boom\",\n\t\t\t\"collision\",\n\t\t\t\"collision symbol\"\n\t\t],\n\t\tu: \"1f4a5\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dizzy\",\n\t\t\t\"dizzy symbol\"\n\t\t],\n\t\tu: \"1f4ab\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sweat drops\",\n\t\t\t\"splashing sweat symbol\"\n\t\t],\n\t\tu: \"1f4a6\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dash\",\n\t\t\t\"dash symbol\"\n\t\t],\n\t\tu: \"1f4a8\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hole\"\n\t\t],\n\t\tu: \"1f573-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bomb\"\n\t\t],\n\t\tu: \"1f4a3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"speech balloon\"\n\t\t],\n\t\tu: \"1f4ac\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"eye in speech bubble\",\n\t\t\t\"eye-in-speech-bubble\"\n\t\t],\n\t\tu: \"1f441-fe0f-200d-1f5e8-fe0f\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"left speech bubble\"\n\t\t],\n\t\tu: \"1f5e8-fe0f\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"right anger bubble\"\n\t\t],\n\t\tu: \"1f5ef-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"thought balloon\"\n\t\t],\n\t\tu: \"1f4ad\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"zzz\",\n\t\t\t\"sleeping symbol\"\n\t\t],\n\t\tu: \"1f4a4\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wave\",\n\t\t\t\"waving hand sign\"\n\t\t],\n\t\tu: \"1f44b\",\n\t\tv: [\n\t\t\t\"1f44b-1f3fb\",\n\t\t\t\"1f44b-1f3fc\",\n\t\t\t\"1f44b-1f3fd\",\n\t\t\t\"1f44b-1f3fe\",\n\t\t\t\"1f44b-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"raised back of hand\"\n\t\t],\n\t\tu: \"1f91a\",\n\t\tv: [\n\t\t\t\"1f91a-1f3fb\",\n\t\t\t\"1f91a-1f3fc\",\n\t\t\t\"1f91a-1f3fd\",\n\t\t\t\"1f91a-1f3fe\",\n\t\t\t\"1f91a-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hand with fingers splayed\",\n\t\t\t\"raised hand with fingers splayed\"\n\t\t],\n\t\tu: \"1f590-fe0f\",\n\t\tv: [\n\t\t\t\"1f590-1f3fb\",\n\t\t\t\"1f590-1f3fc\",\n\t\t\t\"1f590-1f3fd\",\n\t\t\t\"1f590-1f3fe\",\n\t\t\t\"1f590-1f3ff\"\n\t\t],\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hand\",\n\t\t\t\"raised hand\"\n\t\t],\n\t\tu: \"270b\",\n\t\tv: [\n\t\t\t\"270b-1f3fb\",\n\t\t\t\"270b-1f3fc\",\n\t\t\t\"270b-1f3fd\",\n\t\t\t\"270b-1f3fe\",\n\t\t\t\"270b-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"spock-hand\",\n\t\t\t\"raised hand with part between middle and ring fingers\"\n\t\t],\n\t\tu: \"1f596\",\n\t\tv: [\n\t\t\t\"1f596-1f3fb\",\n\t\t\t\"1f596-1f3fc\",\n\t\t\t\"1f596-1f3fd\",\n\t\t\t\"1f596-1f3fe\",\n\t\t\t\"1f596-1f3ff\"\n\t\t],\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rightwards hand\"\n\t\t],\n\t\tu: \"1faf1\",\n\t\tv: [\n\t\t\t\"1faf1-1f3fb\",\n\t\t\t\"1faf1-1f3fc\",\n\t\t\t\"1faf1-1f3fd\",\n\t\t\t\"1faf1-1f3fe\",\n\t\t\t\"1faf1-1f3ff\"\n\t\t],\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"leftwards hand\"\n\t\t],\n\t\tu: \"1faf2\",\n\t\tv: [\n\t\t\t\"1faf2-1f3fb\",\n\t\t\t\"1faf2-1f3fc\",\n\t\t\t\"1faf2-1f3fd\",\n\t\t\t\"1faf2-1f3fe\",\n\t\t\t\"1faf2-1f3ff\"\n\t\t],\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"palm down hand\"\n\t\t],\n\t\tu: \"1faf3\",\n\t\tv: [\n\t\t\t\"1faf3-1f3fb\",\n\t\t\t\"1faf3-1f3fc\",\n\t\t\t\"1faf3-1f3fd\",\n\t\t\t\"1faf3-1f3fe\",\n\t\t\t\"1faf3-1f3ff\"\n\t\t],\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"palm up hand\"\n\t\t],\n\t\tu: \"1faf4\",\n\t\tv: [\n\t\t\t\"1faf4-1f3fb\",\n\t\t\t\"1faf4-1f3fc\",\n\t\t\t\"1faf4-1f3fd\",\n\t\t\t\"1faf4-1f3fe\",\n\t\t\t\"1faf4-1f3ff\"\n\t\t],\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ok hand\",\n\t\t\t\"ok hand sign\"\n\t\t],\n\t\tu: \"1f44c\",\n\t\tv: [\n\t\t\t\"1f44c-1f3fb\",\n\t\t\t\"1f44c-1f3fc\",\n\t\t\t\"1f44c-1f3fd\",\n\t\t\t\"1f44c-1f3fe\",\n\t\t\t\"1f44c-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pinched fingers\"\n\t\t],\n\t\tu: \"1f90c\",\n\t\tv: [\n\t\t\t\"1f90c-1f3fb\",\n\t\t\t\"1f90c-1f3fc\",\n\t\t\t\"1f90c-1f3fd\",\n\t\t\t\"1f90c-1f3fe\",\n\t\t\t\"1f90c-1f3ff\"\n\t\t],\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pinching hand\"\n\t\t],\n\t\tu: \"1f90f\",\n\t\tv: [\n\t\t\t\"1f90f-1f3fb\",\n\t\t\t\"1f90f-1f3fc\",\n\t\t\t\"1f90f-1f3fd\",\n\t\t\t\"1f90f-1f3fe\",\n\t\t\t\"1f90f-1f3ff\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"v\",\n\t\t\t\"victory hand\"\n\t\t],\n\t\tu: \"270c-fe0f\",\n\t\tv: [\n\t\t\t\"270c-1f3fb\",\n\t\t\t\"270c-1f3fc\",\n\t\t\t\"270c-1f3fd\",\n\t\t\t\"270c-1f3fe\",\n\t\t\t\"270c-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"crossed fingers\",\n\t\t\t\"hand with index and middle fingers crossed\"\n\t\t],\n\t\tu: \"1f91e\",\n\t\tv: [\n\t\t\t\"1f91e-1f3fb\",\n\t\t\t\"1f91e-1f3fc\",\n\t\t\t\"1f91e-1f3fd\",\n\t\t\t\"1f91e-1f3fe\",\n\t\t\t\"1f91e-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hand with index finger and thumb crossed\"\n\t\t],\n\t\tu: \"1faf0\",\n\t\tv: [\n\t\t\t\"1faf0-1f3fb\",\n\t\t\t\"1faf0-1f3fc\",\n\t\t\t\"1faf0-1f3fd\",\n\t\t\t\"1faf0-1f3fe\",\n\t\t\t\"1faf0-1f3ff\"\n\t\t],\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"i love you hand sign\"\n\t\t],\n\t\tu: \"1f91f\",\n\t\tv: [\n\t\t\t\"1f91f-1f3fb\",\n\t\t\t\"1f91f-1f3fc\",\n\t\t\t\"1f91f-1f3fd\",\n\t\t\t\"1f91f-1f3fe\",\n\t\t\t\"1f91f-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"the horns\",\n\t\t\t\"sign of the horns\"\n\t\t],\n\t\tu: \"1f918\",\n\t\tv: [\n\t\t\t\"1f918-1f3fb\",\n\t\t\t\"1f918-1f3fc\",\n\t\t\t\"1f918-1f3fd\",\n\t\t\t\"1f918-1f3fe\",\n\t\t\t\"1f918-1f3ff\"\n\t\t],\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"call me hand\"\n\t\t],\n\t\tu: \"1f919\",\n\t\tv: [\n\t\t\t\"1f919-1f3fb\",\n\t\t\t\"1f919-1f3fc\",\n\t\t\t\"1f919-1f3fd\",\n\t\t\t\"1f919-1f3fe\",\n\t\t\t\"1f919-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"point left\",\n\t\t\t\"white left pointing backhand index\"\n\t\t],\n\t\tu: \"1f448\",\n\t\tv: [\n\t\t\t\"1f448-1f3fb\",\n\t\t\t\"1f448-1f3fc\",\n\t\t\t\"1f448-1f3fd\",\n\t\t\t\"1f448-1f3fe\",\n\t\t\t\"1f448-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"point right\",\n\t\t\t\"white right pointing backhand index\"\n\t\t],\n\t\tu: \"1f449\",\n\t\tv: [\n\t\t\t\"1f449-1f3fb\",\n\t\t\t\"1f449-1f3fc\",\n\t\t\t\"1f449-1f3fd\",\n\t\t\t\"1f449-1f3fe\",\n\t\t\t\"1f449-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"point up 2\",\n\t\t\t\"white up pointing backhand index\"\n\t\t],\n\t\tu: \"1f446\",\n\t\tv: [\n\t\t\t\"1f446-1f3fb\",\n\t\t\t\"1f446-1f3fc\",\n\t\t\t\"1f446-1f3fd\",\n\t\t\t\"1f446-1f3fe\",\n\t\t\t\"1f446-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"middle finger\",\n\t\t\t\"reversed hand with middle finger extended\"\n\t\t],\n\t\tu: \"1f595\",\n\t\tv: [\n\t\t\t\"1f595-1f3fb\",\n\t\t\t\"1f595-1f3fc\",\n\t\t\t\"1f595-1f3fd\",\n\t\t\t\"1f595-1f3fe\",\n\t\t\t\"1f595-1f3ff\"\n\t\t],\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"point down\",\n\t\t\t\"white down pointing backhand index\"\n\t\t],\n\t\tu: \"1f447\",\n\t\tv: [\n\t\t\t\"1f447-1f3fb\",\n\t\t\t\"1f447-1f3fc\",\n\t\t\t\"1f447-1f3fd\",\n\t\t\t\"1f447-1f3fe\",\n\t\t\t\"1f447-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"point up\",\n\t\t\t\"white up pointing index\"\n\t\t],\n\t\tu: \"261d-fe0f\",\n\t\tv: [\n\t\t\t\"261d-1f3fb\",\n\t\t\t\"261d-1f3fc\",\n\t\t\t\"261d-1f3fd\",\n\t\t\t\"261d-1f3fe\",\n\t\t\t\"261d-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"index pointing at the viewer\"\n\t\t],\n\t\tu: \"1faf5\",\n\t\tv: [\n\t\t\t\"1faf5-1f3fb\",\n\t\t\t\"1faf5-1f3fc\",\n\t\t\t\"1faf5-1f3fd\",\n\t\t\t\"1faf5-1f3fe\",\n\t\t\t\"1faf5-1f3ff\"\n\t\t],\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"+1\",\n\t\t\t\"thumbsup\",\n\t\t\t\"thumbs up sign\"\n\t\t],\n\t\tu: \"1f44d\",\n\t\tv: [\n\t\t\t\"1f44d-1f3fb\",\n\t\t\t\"1f44d-1f3fc\",\n\t\t\t\"1f44d-1f3fd\",\n\t\t\t\"1f44d-1f3fe\",\n\t\t\t\"1f44d-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"-1\",\n\t\t\t\"thumbsdown\",\n\t\t\t\"thumbs down sign\"\n\t\t],\n\t\tu: \"1f44e\",\n\t\tv: [\n\t\t\t\"1f44e-1f3fb\",\n\t\t\t\"1f44e-1f3fc\",\n\t\t\t\"1f44e-1f3fd\",\n\t\t\t\"1f44e-1f3fe\",\n\t\t\t\"1f44e-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fist\",\n\t\t\t\"raised fist\"\n\t\t],\n\t\tu: \"270a\",\n\t\tv: [\n\t\t\t\"270a-1f3fb\",\n\t\t\t\"270a-1f3fc\",\n\t\t\t\"270a-1f3fd\",\n\t\t\t\"270a-1f3fe\",\n\t\t\t\"270a-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"punch\",\n\t\t\t\"facepunch\",\n\t\t\t\"fisted hand sign\"\n\t\t],\n\t\tu: \"1f44a\",\n\t\tv: [\n\t\t\t\"1f44a-1f3fb\",\n\t\t\t\"1f44a-1f3fc\",\n\t\t\t\"1f44a-1f3fd\",\n\t\t\t\"1f44a-1f3fe\",\n\t\t\t\"1f44a-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"left-facing fist\"\n\t\t],\n\t\tu: \"1f91b\",\n\t\tv: [\n\t\t\t\"1f91b-1f3fb\",\n\t\t\t\"1f91b-1f3fc\",\n\t\t\t\"1f91b-1f3fd\",\n\t\t\t\"1f91b-1f3fe\",\n\t\t\t\"1f91b-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"right-facing fist\"\n\t\t],\n\t\tu: \"1f91c\",\n\t\tv: [\n\t\t\t\"1f91c-1f3fb\",\n\t\t\t\"1f91c-1f3fc\",\n\t\t\t\"1f91c-1f3fd\",\n\t\t\t\"1f91c-1f3fe\",\n\t\t\t\"1f91c-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clap\",\n\t\t\t\"clapping hands sign\"\n\t\t],\n\t\tu: \"1f44f\",\n\t\tv: [\n\t\t\t\"1f44f-1f3fb\",\n\t\t\t\"1f44f-1f3fc\",\n\t\t\t\"1f44f-1f3fd\",\n\t\t\t\"1f44f-1f3fe\",\n\t\t\t\"1f44f-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"raised hands\",\n\t\t\t\"person raising both hands in celebration\"\n\t\t],\n\t\tu: \"1f64c\",\n\t\tv: [\n\t\t\t\"1f64c-1f3fb\",\n\t\t\t\"1f64c-1f3fc\",\n\t\t\t\"1f64c-1f3fd\",\n\t\t\t\"1f64c-1f3fe\",\n\t\t\t\"1f64c-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heart hands\"\n\t\t],\n\t\tu: \"1faf6\",\n\t\tv: [\n\t\t\t\"1faf6-1f3fb\",\n\t\t\t\"1faf6-1f3fc\",\n\t\t\t\"1faf6-1f3fd\",\n\t\t\t\"1faf6-1f3fe\",\n\t\t\t\"1faf6-1f3ff\"\n\t\t],\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"open hands\",\n\t\t\t\"open hands sign\"\n\t\t],\n\t\tu: \"1f450\",\n\t\tv: [\n\t\t\t\"1f450-1f3fb\",\n\t\t\t\"1f450-1f3fc\",\n\t\t\t\"1f450-1f3fd\",\n\t\t\t\"1f450-1f3fe\",\n\t\t\t\"1f450-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"palms up together\"\n\t\t],\n\t\tu: \"1f932\",\n\t\tv: [\n\t\t\t\"1f932-1f3fb\",\n\t\t\t\"1f932-1f3fc\",\n\t\t\t\"1f932-1f3fd\",\n\t\t\t\"1f932-1f3fe\",\n\t\t\t\"1f932-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"handshake\"\n\t\t],\n\t\tu: \"1f91d\",\n\t\tv: [\n\t\t\t\"1f91d-1f3fb\",\n\t\t\t\"1f91d-1f3fc\",\n\t\t\t\"1f91d-1f3fd\",\n\t\t\t\"1f91d-1f3fe\",\n\t\t\t\"1f91d-1f3ff\",\n\t\t\t\"1faf1-1f3fb-200d-1faf2-1f3fc\",\n\t\t\t\"1faf1-1f3fb-200d-1faf2-1f3fd\",\n\t\t\t\"1faf1-1f3fb-200d-1faf2-1f3fe\",\n\t\t\t\"1faf1-1f3fb-200d-1faf2-1f3ff\",\n\t\t\t\"1faf1-1f3fc-200d-1faf2-1f3fb\",\n\t\t\t\"1faf1-1f3fc-200d-1faf2-1f3fd\",\n\t\t\t\"1faf1-1f3fc-200d-1faf2-1f3fe\",\n\t\t\t\"1faf1-1f3fc-200d-1faf2-1f3ff\",\n\t\t\t\"1faf1-1f3fd-200d-1faf2-1f3fb\",\n\t\t\t\"1faf1-1f3fd-200d-1faf2-1f3fc\",\n\t\t\t\"1faf1-1f3fd-200d-1faf2-1f3fe\",\n\t\t\t\"1faf1-1f3fd-200d-1faf2-1f3ff\",\n\t\t\t\"1faf1-1f3fe-200d-1faf2-1f3fb\",\n\t\t\t\"1faf1-1f3fe-200d-1faf2-1f3fc\",\n\t\t\t\"1faf1-1f3fe-200d-1faf2-1f3fd\",\n\t\t\t\"1faf1-1f3fe-200d-1faf2-1f3ff\",\n\t\t\t\"1faf1-1f3ff-200d-1faf2-1f3fb\",\n\t\t\t\"1faf1-1f3ff-200d-1faf2-1f3fc\",\n\t\t\t\"1faf1-1f3ff-200d-1faf2-1f3fd\",\n\t\t\t\"1faf1-1f3ff-200d-1faf2-1f3fe\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pray\",\n\t\t\t\"person with folded hands\"\n\t\t],\n\t\tu: \"1f64f\",\n\t\tv: [\n\t\t\t\"1f64f-1f3fb\",\n\t\t\t\"1f64f-1f3fc\",\n\t\t\t\"1f64f-1f3fd\",\n\t\t\t\"1f64f-1f3fe\",\n\t\t\t\"1f64f-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"writing hand\"\n\t\t],\n\t\tu: \"270d-fe0f\",\n\t\tv: [\n\t\t\t\"270d-1f3fb\",\n\t\t\t\"270d-1f3fc\",\n\t\t\t\"270d-1f3fd\",\n\t\t\t\"270d-1f3fe\",\n\t\t\t\"270d-1f3ff\"\n\t\t],\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"nail care\",\n\t\t\t\"nail polish\"\n\t\t],\n\t\tu: \"1f485\",\n\t\tv: [\n\t\t\t\"1f485-1f3fb\",\n\t\t\t\"1f485-1f3fc\",\n\t\t\t\"1f485-1f3fd\",\n\t\t\t\"1f485-1f3fe\",\n\t\t\t\"1f485-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"selfie\"\n\t\t],\n\t\tu: \"1f933\",\n\t\tv: [\n\t\t\t\"1f933-1f3fb\",\n\t\t\t\"1f933-1f3fc\",\n\t\t\t\"1f933-1f3fd\",\n\t\t\t\"1f933-1f3fe\",\n\t\t\t\"1f933-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"muscle\",\n\t\t\t\"flexed biceps\"\n\t\t],\n\t\tu: \"1f4aa\",\n\t\tv: [\n\t\t\t\"1f4aa-1f3fb\",\n\t\t\t\"1f4aa-1f3fc\",\n\t\t\t\"1f4aa-1f3fd\",\n\t\t\t\"1f4aa-1f3fe\",\n\t\t\t\"1f4aa-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mechanical arm\"\n\t\t],\n\t\tu: \"1f9be\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mechanical leg\"\n\t\t],\n\t\tu: \"1f9bf\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"leg\"\n\t\t],\n\t\tu: \"1f9b5\",\n\t\tv: [\n\t\t\t\"1f9b5-1f3fb\",\n\t\t\t\"1f9b5-1f3fc\",\n\t\t\t\"1f9b5-1f3fd\",\n\t\t\t\"1f9b5-1f3fe\",\n\t\t\t\"1f9b5-1f3ff\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"foot\"\n\t\t],\n\t\tu: \"1f9b6\",\n\t\tv: [\n\t\t\t\"1f9b6-1f3fb\",\n\t\t\t\"1f9b6-1f3fc\",\n\t\t\t\"1f9b6-1f3fd\",\n\t\t\t\"1f9b6-1f3fe\",\n\t\t\t\"1f9b6-1f3ff\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ear\"\n\t\t],\n\t\tu: \"1f442\",\n\t\tv: [\n\t\t\t\"1f442-1f3fb\",\n\t\t\t\"1f442-1f3fc\",\n\t\t\t\"1f442-1f3fd\",\n\t\t\t\"1f442-1f3fe\",\n\t\t\t\"1f442-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ear with hearing aid\"\n\t\t],\n\t\tu: \"1f9bb\",\n\t\tv: [\n\t\t\t\"1f9bb-1f3fb\",\n\t\t\t\"1f9bb-1f3fc\",\n\t\t\t\"1f9bb-1f3fd\",\n\t\t\t\"1f9bb-1f3fe\",\n\t\t\t\"1f9bb-1f3ff\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"nose\"\n\t\t],\n\t\tu: \"1f443\",\n\t\tv: [\n\t\t\t\"1f443-1f3fb\",\n\t\t\t\"1f443-1f3fc\",\n\t\t\t\"1f443-1f3fd\",\n\t\t\t\"1f443-1f3fe\",\n\t\t\t\"1f443-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"brain\"\n\t\t],\n\t\tu: \"1f9e0\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"anatomical heart\"\n\t\t],\n\t\tu: \"1fac0\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lungs\"\n\t\t],\n\t\tu: \"1fac1\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tooth\"\n\t\t],\n\t\tu: \"1f9b7\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bone\"\n\t\t],\n\t\tu: \"1f9b4\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"eyes\"\n\t\t],\n\t\tu: \"1f440\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"eye\"\n\t\t],\n\t\tu: \"1f441-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tongue\"\n\t\t],\n\t\tu: \"1f445\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lips\",\n\t\t\t\"mouth\"\n\t\t],\n\t\tu: \"1f444\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"biting lip\"\n\t\t],\n\t\tu: \"1fae6\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"baby\"\n\t\t],\n\t\tu: \"1f476\",\n\t\tv: [\n\t\t\t\"1f476-1f3fb\",\n\t\t\t\"1f476-1f3fc\",\n\t\t\t\"1f476-1f3fd\",\n\t\t\t\"1f476-1f3fe\",\n\t\t\t\"1f476-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"child\"\n\t\t],\n\t\tu: \"1f9d2\",\n\t\tv: [\n\t\t\t\"1f9d2-1f3fb\",\n\t\t\t\"1f9d2-1f3fc\",\n\t\t\t\"1f9d2-1f3fd\",\n\t\t\t\"1f9d2-1f3fe\",\n\t\t\t\"1f9d2-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"boy\"\n\t\t],\n\t\tu: \"1f466\",\n\t\tv: [\n\t\t\t\"1f466-1f3fb\",\n\t\t\t\"1f466-1f3fc\",\n\t\t\t\"1f466-1f3fd\",\n\t\t\t\"1f466-1f3fe\",\n\t\t\t\"1f466-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"girl\"\n\t\t],\n\t\tu: \"1f467\",\n\t\tv: [\n\t\t\t\"1f467-1f3fb\",\n\t\t\t\"1f467-1f3fc\",\n\t\t\t\"1f467-1f3fd\",\n\t\t\t\"1f467-1f3fe\",\n\t\t\t\"1f467-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"adult\"\n\t\t],\n\t\tu: \"1f9d1\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb\",\n\t\t\t\"1f9d1-1f3fc\",\n\t\t\t\"1f9d1-1f3fd\",\n\t\t\t\"1f9d1-1f3fe\",\n\t\t\t\"1f9d1-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person with blond hair\"\n\t\t],\n\t\tu: \"1f471\",\n\t\tv: [\n\t\t\t\"1f471-1f3fb\",\n\t\t\t\"1f471-1f3fc\",\n\t\t\t\"1f471-1f3fd\",\n\t\t\t\"1f471-1f3fe\",\n\t\t\t\"1f471-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man\"\n\t\t],\n\t\tu: \"1f468\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb\",\n\t\t\t\"1f468-1f3fc\",\n\t\t\t\"1f468-1f3fd\",\n\t\t\t\"1f468-1f3fe\",\n\t\t\t\"1f468-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bearded person\"\n\t\t],\n\t\tu: \"1f9d4\",\n\t\tv: [\n\t\t\t\"1f9d4-1f3fb\",\n\t\t\t\"1f9d4-1f3fc\",\n\t\t\t\"1f9d4-1f3fd\",\n\t\t\t\"1f9d4-1f3fe\",\n\t\t\t\"1f9d4-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man: beard\",\n\t\t\t\"man with beard\"\n\t\t],\n\t\tu: \"1f9d4-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f9d4-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f9d4-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f9d4-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f9d4-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f9d4-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"13.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman: beard\",\n\t\t\t\"woman with beard\"\n\t\t],\n\t\tu: \"1f9d4-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f9d4-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f9d4-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f9d4-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f9d4-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f9d4-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"13.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man: red hair\",\n\t\t\t\"red haired man\"\n\t\t],\n\t\tu: \"1f468-200d-1f9b0\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f9b0\",\n\t\t\t\"1f468-1f3fc-200d-1f9b0\",\n\t\t\t\"1f468-1f3fd-200d-1f9b0\",\n\t\t\t\"1f468-1f3fe-200d-1f9b0\",\n\t\t\t\"1f468-1f3ff-200d-1f9b0\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man: curly hair\",\n\t\t\t\"curly haired man\"\n\t\t],\n\t\tu: \"1f468-200d-1f9b1\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f9b1\",\n\t\t\t\"1f468-1f3fc-200d-1f9b1\",\n\t\t\t\"1f468-1f3fd-200d-1f9b1\",\n\t\t\t\"1f468-1f3fe-200d-1f9b1\",\n\t\t\t\"1f468-1f3ff-200d-1f9b1\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man: white hair\",\n\t\t\t\"white haired man\"\n\t\t],\n\t\tu: \"1f468-200d-1f9b3\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f9b3\",\n\t\t\t\"1f468-1f3fc-200d-1f9b3\",\n\t\t\t\"1f468-1f3fd-200d-1f9b3\",\n\t\t\t\"1f468-1f3fe-200d-1f9b3\",\n\t\t\t\"1f468-1f3ff-200d-1f9b3\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bald man\",\n\t\t\t\"man: bald\"\n\t\t],\n\t\tu: \"1f468-200d-1f9b2\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f9b2\",\n\t\t\t\"1f468-1f3fc-200d-1f9b2\",\n\t\t\t\"1f468-1f3fd-200d-1f9b2\",\n\t\t\t\"1f468-1f3fe-200d-1f9b2\",\n\t\t\t\"1f468-1f3ff-200d-1f9b2\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman\"\n\t\t],\n\t\tu: \"1f469\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb\",\n\t\t\t\"1f469-1f3fc\",\n\t\t\t\"1f469-1f3fd\",\n\t\t\t\"1f469-1f3fe\",\n\t\t\t\"1f469-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman: red hair\",\n\t\t\t\"red haired woman\"\n\t\t],\n\t\tu: \"1f469-200d-1f9b0\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f9b0\",\n\t\t\t\"1f469-1f3fc-200d-1f9b0\",\n\t\t\t\"1f469-1f3fd-200d-1f9b0\",\n\t\t\t\"1f469-1f3fe-200d-1f9b0\",\n\t\t\t\"1f469-1f3ff-200d-1f9b0\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person: red hair\",\n\t\t\t\"red haired person\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f9b0\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f9b0\",\n\t\t\t\"1f9d1-1f3fc-200d-1f9b0\",\n\t\t\t\"1f9d1-1f3fd-200d-1f9b0\",\n\t\t\t\"1f9d1-1f3fe-200d-1f9b0\",\n\t\t\t\"1f9d1-1f3ff-200d-1f9b0\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman: curly hair\",\n\t\t\t\"curly haired woman\"\n\t\t],\n\t\tu: \"1f469-200d-1f9b1\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f9b1\",\n\t\t\t\"1f469-1f3fc-200d-1f9b1\",\n\t\t\t\"1f469-1f3fd-200d-1f9b1\",\n\t\t\t\"1f469-1f3fe-200d-1f9b1\",\n\t\t\t\"1f469-1f3ff-200d-1f9b1\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person: curly hair\",\n\t\t\t\"curly haired person\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f9b1\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f9b1\",\n\t\t\t\"1f9d1-1f3fc-200d-1f9b1\",\n\t\t\t\"1f9d1-1f3fd-200d-1f9b1\",\n\t\t\t\"1f9d1-1f3fe-200d-1f9b1\",\n\t\t\t\"1f9d1-1f3ff-200d-1f9b1\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman: white hair\",\n\t\t\t\"white haired woman\"\n\t\t],\n\t\tu: \"1f469-200d-1f9b3\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f9b3\",\n\t\t\t\"1f469-1f3fc-200d-1f9b3\",\n\t\t\t\"1f469-1f3fd-200d-1f9b3\",\n\t\t\t\"1f469-1f3fe-200d-1f9b3\",\n\t\t\t\"1f469-1f3ff-200d-1f9b3\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person: white hair\",\n\t\t\t\"white haired person\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f9b3\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f9b3\",\n\t\t\t\"1f9d1-1f3fc-200d-1f9b3\",\n\t\t\t\"1f9d1-1f3fd-200d-1f9b3\",\n\t\t\t\"1f9d1-1f3fe-200d-1f9b3\",\n\t\t\t\"1f9d1-1f3ff-200d-1f9b3\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bald woman\",\n\t\t\t\"woman: bald\"\n\t\t],\n\t\tu: \"1f469-200d-1f9b2\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f9b2\",\n\t\t\t\"1f469-1f3fc-200d-1f9b2\",\n\t\t\t\"1f469-1f3fd-200d-1f9b2\",\n\t\t\t\"1f469-1f3fe-200d-1f9b2\",\n\t\t\t\"1f469-1f3ff-200d-1f9b2\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bald person\",\n\t\t\t\"person: bald\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f9b2\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f9b2\",\n\t\t\t\"1f9d1-1f3fc-200d-1f9b2\",\n\t\t\t\"1f9d1-1f3fd-200d-1f9b2\",\n\t\t\t\"1f9d1-1f3fe-200d-1f9b2\",\n\t\t\t\"1f9d1-1f3ff-200d-1f9b2\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman: blond hair\",\n\t\t\t\"blond-haired-woman\"\n\t\t],\n\t\tu: \"1f471-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f471-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f471-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f471-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f471-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f471-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man: blond hair\",\n\t\t\t\"blond-haired-man\"\n\t\t],\n\t\tu: \"1f471-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f471-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f471-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f471-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f471-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f471-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"older adult\"\n\t\t],\n\t\tu: \"1f9d3\",\n\t\tv: [\n\t\t\t\"1f9d3-1f3fb\",\n\t\t\t\"1f9d3-1f3fc\",\n\t\t\t\"1f9d3-1f3fd\",\n\t\t\t\"1f9d3-1f3fe\",\n\t\t\t\"1f9d3-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"older man\"\n\t\t],\n\t\tu: \"1f474\",\n\t\tv: [\n\t\t\t\"1f474-1f3fb\",\n\t\t\t\"1f474-1f3fc\",\n\t\t\t\"1f474-1f3fd\",\n\t\t\t\"1f474-1f3fe\",\n\t\t\t\"1f474-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"older woman\"\n\t\t],\n\t\tu: \"1f475\",\n\t\tv: [\n\t\t\t\"1f475-1f3fb\",\n\t\t\t\"1f475-1f3fc\",\n\t\t\t\"1f475-1f3fd\",\n\t\t\t\"1f475-1f3fe\",\n\t\t\t\"1f475-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person frowning\"\n\t\t],\n\t\tu: \"1f64d\",\n\t\tv: [\n\t\t\t\"1f64d-1f3fb\",\n\t\t\t\"1f64d-1f3fc\",\n\t\t\t\"1f64d-1f3fd\",\n\t\t\t\"1f64d-1f3fe\",\n\t\t\t\"1f64d-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man frowning\",\n\t\t\t\"man-frowning\"\n\t\t],\n\t\tu: \"1f64d-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f64d-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f64d-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f64d-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f64d-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f64d-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman frowning\",\n\t\t\t\"woman-frowning\"\n\t\t],\n\t\tu: \"1f64d-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f64d-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f64d-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f64d-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f64d-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f64d-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person with pouting face\"\n\t\t],\n\t\tu: \"1f64e\",\n\t\tv: [\n\t\t\t\"1f64e-1f3fb\",\n\t\t\t\"1f64e-1f3fc\",\n\t\t\t\"1f64e-1f3fd\",\n\t\t\t\"1f64e-1f3fe\",\n\t\t\t\"1f64e-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man pouting\",\n\t\t\t\"man-pouting\"\n\t\t],\n\t\tu: \"1f64e-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f64e-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f64e-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f64e-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f64e-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f64e-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman pouting\",\n\t\t\t\"woman-pouting\"\n\t\t],\n\t\tu: \"1f64e-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f64e-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f64e-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f64e-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f64e-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f64e-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"no good\",\n\t\t\t\"face with no good gesture\"\n\t\t],\n\t\tu: \"1f645\",\n\t\tv: [\n\t\t\t\"1f645-1f3fb\",\n\t\t\t\"1f645-1f3fc\",\n\t\t\t\"1f645-1f3fd\",\n\t\t\t\"1f645-1f3fe\",\n\t\t\t\"1f645-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man gesturing no\",\n\t\t\t\"man-gesturing-no\"\n\t\t],\n\t\tu: \"1f645-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f645-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f645-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f645-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f645-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f645-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman gesturing no\",\n\t\t\t\"woman-gesturing-no\"\n\t\t],\n\t\tu: \"1f645-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f645-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f645-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f645-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f645-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f645-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ok woman\",\n\t\t\t\"face with ok gesture\"\n\t\t],\n\t\tu: \"1f646\",\n\t\tv: [\n\t\t\t\"1f646-1f3fb\",\n\t\t\t\"1f646-1f3fc\",\n\t\t\t\"1f646-1f3fd\",\n\t\t\t\"1f646-1f3fe\",\n\t\t\t\"1f646-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man gesturing ok\",\n\t\t\t\"man-gesturing-ok\"\n\t\t],\n\t\tu: \"1f646-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f646-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f646-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f646-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f646-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f646-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman gesturing ok\",\n\t\t\t\"woman-gesturing-ok\"\n\t\t],\n\t\tu: \"1f646-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f646-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f646-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f646-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f646-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f646-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"information desk person\"\n\t\t],\n\t\tu: \"1f481\",\n\t\tv: [\n\t\t\t\"1f481-1f3fb\",\n\t\t\t\"1f481-1f3fc\",\n\t\t\t\"1f481-1f3fd\",\n\t\t\t\"1f481-1f3fe\",\n\t\t\t\"1f481-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man tipping hand\",\n\t\t\t\"man-tipping-hand\"\n\t\t],\n\t\tu: \"1f481-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f481-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f481-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f481-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f481-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f481-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman tipping hand\",\n\t\t\t\"woman-tipping-hand\"\n\t\t],\n\t\tu: \"1f481-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f481-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f481-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f481-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f481-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f481-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"raising hand\",\n\t\t\t\"happy person raising one hand\"\n\t\t],\n\t\tu: \"1f64b\",\n\t\tv: [\n\t\t\t\"1f64b-1f3fb\",\n\t\t\t\"1f64b-1f3fc\",\n\t\t\t\"1f64b-1f3fd\",\n\t\t\t\"1f64b-1f3fe\",\n\t\t\t\"1f64b-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man raising hand\",\n\t\t\t\"man-raising-hand\"\n\t\t],\n\t\tu: \"1f64b-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f64b-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f64b-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f64b-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f64b-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f64b-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman raising hand\",\n\t\t\t\"woman-raising-hand\"\n\t\t],\n\t\tu: \"1f64b-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f64b-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f64b-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f64b-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f64b-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f64b-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"deaf person\"\n\t\t],\n\t\tu: \"1f9cf\",\n\t\tv: [\n\t\t\t\"1f9cf-1f3fb\",\n\t\t\t\"1f9cf-1f3fc\",\n\t\t\t\"1f9cf-1f3fd\",\n\t\t\t\"1f9cf-1f3fe\",\n\t\t\t\"1f9cf-1f3ff\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"deaf man\"\n\t\t],\n\t\tu: \"1f9cf-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f9cf-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f9cf-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f9cf-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f9cf-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f9cf-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"deaf woman\"\n\t\t],\n\t\tu: \"1f9cf-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f9cf-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f9cf-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f9cf-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f9cf-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f9cf-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bow\",\n\t\t\t\"person bowing deeply\"\n\t\t],\n\t\tu: \"1f647\",\n\t\tv: [\n\t\t\t\"1f647-1f3fb\",\n\t\t\t\"1f647-1f3fc\",\n\t\t\t\"1f647-1f3fd\",\n\t\t\t\"1f647-1f3fe\",\n\t\t\t\"1f647-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man bowing\",\n\t\t\t\"man-bowing\"\n\t\t],\n\t\tu: \"1f647-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f647-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f647-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f647-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f647-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f647-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman bowing\",\n\t\t\t\"woman-bowing\"\n\t\t],\n\t\tu: \"1f647-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f647-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f647-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f647-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f647-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f647-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"face palm\"\n\t\t],\n\t\tu: \"1f926\",\n\t\tv: [\n\t\t\t\"1f926-1f3fb\",\n\t\t\t\"1f926-1f3fc\",\n\t\t\t\"1f926-1f3fd\",\n\t\t\t\"1f926-1f3fe\",\n\t\t\t\"1f926-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man facepalming\",\n\t\t\t\"man-facepalming\"\n\t\t],\n\t\tu: \"1f926-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f926-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f926-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f926-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f926-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f926-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman facepalming\",\n\t\t\t\"woman-facepalming\"\n\t\t],\n\t\tu: \"1f926-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f926-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f926-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f926-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f926-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f926-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shrug\"\n\t\t],\n\t\tu: \"1f937\",\n\t\tv: [\n\t\t\t\"1f937-1f3fb\",\n\t\t\t\"1f937-1f3fc\",\n\t\t\t\"1f937-1f3fd\",\n\t\t\t\"1f937-1f3fe\",\n\t\t\t\"1f937-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man shrugging\",\n\t\t\t\"man-shrugging\"\n\t\t],\n\t\tu: \"1f937-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f937-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f937-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f937-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f937-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f937-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman shrugging\",\n\t\t\t\"woman-shrugging\"\n\t\t],\n\t\tu: \"1f937-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f937-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f937-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f937-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f937-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f937-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"health worker\"\n\t\t],\n\t\tu: \"1f9d1-200d-2695-fe0f\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-2695-fe0f\",\n\t\t\t\"1f9d1-1f3fc-200d-2695-fe0f\",\n\t\t\t\"1f9d1-1f3fd-200d-2695-fe0f\",\n\t\t\t\"1f9d1-1f3fe-200d-2695-fe0f\",\n\t\t\t\"1f9d1-1f3ff-200d-2695-fe0f\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"male-doctor\",\n\t\t\t\"man health worker\"\n\t\t],\n\t\tu: \"1f468-200d-2695-fe0f\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-2695-fe0f\",\n\t\t\t\"1f468-1f3fc-200d-2695-fe0f\",\n\t\t\t\"1f468-1f3fd-200d-2695-fe0f\",\n\t\t\t\"1f468-1f3fe-200d-2695-fe0f\",\n\t\t\t\"1f468-1f3ff-200d-2695-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"female-doctor\",\n\t\t\t\"woman health worker\"\n\t\t],\n\t\tu: \"1f469-200d-2695-fe0f\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-2695-fe0f\",\n\t\t\t\"1f469-1f3fc-200d-2695-fe0f\",\n\t\t\t\"1f469-1f3fd-200d-2695-fe0f\",\n\t\t\t\"1f469-1f3fe-200d-2695-fe0f\",\n\t\t\t\"1f469-1f3ff-200d-2695-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"student\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f393\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f393\",\n\t\t\t\"1f9d1-1f3fc-200d-1f393\",\n\t\t\t\"1f9d1-1f3fd-200d-1f393\",\n\t\t\t\"1f9d1-1f3fe-200d-1f393\",\n\t\t\t\"1f9d1-1f3ff-200d-1f393\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man student\",\n\t\t\t\"male-student\"\n\t\t],\n\t\tu: \"1f468-200d-1f393\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f393\",\n\t\t\t\"1f468-1f3fc-200d-1f393\",\n\t\t\t\"1f468-1f3fd-200d-1f393\",\n\t\t\t\"1f468-1f3fe-200d-1f393\",\n\t\t\t\"1f468-1f3ff-200d-1f393\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman student\",\n\t\t\t\"female-student\"\n\t\t],\n\t\tu: \"1f469-200d-1f393\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f393\",\n\t\t\t\"1f469-1f3fc-200d-1f393\",\n\t\t\t\"1f469-1f3fd-200d-1f393\",\n\t\t\t\"1f469-1f3fe-200d-1f393\",\n\t\t\t\"1f469-1f3ff-200d-1f393\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"teacher\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f3eb\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f3eb\",\n\t\t\t\"1f9d1-1f3fc-200d-1f3eb\",\n\t\t\t\"1f9d1-1f3fd-200d-1f3eb\",\n\t\t\t\"1f9d1-1f3fe-200d-1f3eb\",\n\t\t\t\"1f9d1-1f3ff-200d-1f3eb\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man teacher\",\n\t\t\t\"male-teacher\"\n\t\t],\n\t\tu: \"1f468-200d-1f3eb\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f3eb\",\n\t\t\t\"1f468-1f3fc-200d-1f3eb\",\n\t\t\t\"1f468-1f3fd-200d-1f3eb\",\n\t\t\t\"1f468-1f3fe-200d-1f3eb\",\n\t\t\t\"1f468-1f3ff-200d-1f3eb\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman teacher\",\n\t\t\t\"female-teacher\"\n\t\t],\n\t\tu: \"1f469-200d-1f3eb\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f3eb\",\n\t\t\t\"1f469-1f3fc-200d-1f3eb\",\n\t\t\t\"1f469-1f3fd-200d-1f3eb\",\n\t\t\t\"1f469-1f3fe-200d-1f3eb\",\n\t\t\t\"1f469-1f3ff-200d-1f3eb\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"judge\"\n\t\t],\n\t\tu: \"1f9d1-200d-2696-fe0f\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-2696-fe0f\",\n\t\t\t\"1f9d1-1f3fc-200d-2696-fe0f\",\n\t\t\t\"1f9d1-1f3fd-200d-2696-fe0f\",\n\t\t\t\"1f9d1-1f3fe-200d-2696-fe0f\",\n\t\t\t\"1f9d1-1f3ff-200d-2696-fe0f\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man judge\",\n\t\t\t\"male-judge\"\n\t\t],\n\t\tu: \"1f468-200d-2696-fe0f\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-2696-fe0f\",\n\t\t\t\"1f468-1f3fc-200d-2696-fe0f\",\n\t\t\t\"1f468-1f3fd-200d-2696-fe0f\",\n\t\t\t\"1f468-1f3fe-200d-2696-fe0f\",\n\t\t\t\"1f468-1f3ff-200d-2696-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman judge\",\n\t\t\t\"female-judge\"\n\t\t],\n\t\tu: \"1f469-200d-2696-fe0f\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-2696-fe0f\",\n\t\t\t\"1f469-1f3fc-200d-2696-fe0f\",\n\t\t\t\"1f469-1f3fd-200d-2696-fe0f\",\n\t\t\t\"1f469-1f3fe-200d-2696-fe0f\",\n\t\t\t\"1f469-1f3ff-200d-2696-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"farmer\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f33e\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f33e\",\n\t\t\t\"1f9d1-1f3fc-200d-1f33e\",\n\t\t\t\"1f9d1-1f3fd-200d-1f33e\",\n\t\t\t\"1f9d1-1f3fe-200d-1f33e\",\n\t\t\t\"1f9d1-1f3ff-200d-1f33e\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man farmer\",\n\t\t\t\"male-farmer\"\n\t\t],\n\t\tu: \"1f468-200d-1f33e\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f33e\",\n\t\t\t\"1f468-1f3fc-200d-1f33e\",\n\t\t\t\"1f468-1f3fd-200d-1f33e\",\n\t\t\t\"1f468-1f3fe-200d-1f33e\",\n\t\t\t\"1f468-1f3ff-200d-1f33e\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman farmer\",\n\t\t\t\"female-farmer\"\n\t\t],\n\t\tu: \"1f469-200d-1f33e\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f33e\",\n\t\t\t\"1f469-1f3fc-200d-1f33e\",\n\t\t\t\"1f469-1f3fd-200d-1f33e\",\n\t\t\t\"1f469-1f3fe-200d-1f33e\",\n\t\t\t\"1f469-1f3ff-200d-1f33e\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cook\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f373\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f373\",\n\t\t\t\"1f9d1-1f3fc-200d-1f373\",\n\t\t\t\"1f9d1-1f3fd-200d-1f373\",\n\t\t\t\"1f9d1-1f3fe-200d-1f373\",\n\t\t\t\"1f9d1-1f3ff-200d-1f373\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man cook\",\n\t\t\t\"male-cook\"\n\t\t],\n\t\tu: \"1f468-200d-1f373\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f373\",\n\t\t\t\"1f468-1f3fc-200d-1f373\",\n\t\t\t\"1f468-1f3fd-200d-1f373\",\n\t\t\t\"1f468-1f3fe-200d-1f373\",\n\t\t\t\"1f468-1f3ff-200d-1f373\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman cook\",\n\t\t\t\"female-cook\"\n\t\t],\n\t\tu: \"1f469-200d-1f373\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f373\",\n\t\t\t\"1f469-1f3fc-200d-1f373\",\n\t\t\t\"1f469-1f3fd-200d-1f373\",\n\t\t\t\"1f469-1f3fe-200d-1f373\",\n\t\t\t\"1f469-1f3ff-200d-1f373\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mechanic\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f527\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f527\",\n\t\t\t\"1f9d1-1f3fc-200d-1f527\",\n\t\t\t\"1f9d1-1f3fd-200d-1f527\",\n\t\t\t\"1f9d1-1f3fe-200d-1f527\",\n\t\t\t\"1f9d1-1f3ff-200d-1f527\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man mechanic\",\n\t\t\t\"male-mechanic\"\n\t\t],\n\t\tu: \"1f468-200d-1f527\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f527\",\n\t\t\t\"1f468-1f3fc-200d-1f527\",\n\t\t\t\"1f468-1f3fd-200d-1f527\",\n\t\t\t\"1f468-1f3fe-200d-1f527\",\n\t\t\t\"1f468-1f3ff-200d-1f527\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman mechanic\",\n\t\t\t\"female-mechanic\"\n\t\t],\n\t\tu: \"1f469-200d-1f527\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f527\",\n\t\t\t\"1f469-1f3fc-200d-1f527\",\n\t\t\t\"1f469-1f3fd-200d-1f527\",\n\t\t\t\"1f469-1f3fe-200d-1f527\",\n\t\t\t\"1f469-1f3ff-200d-1f527\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"factory worker\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f3ed\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f3ed\",\n\t\t\t\"1f9d1-1f3fc-200d-1f3ed\",\n\t\t\t\"1f9d1-1f3fd-200d-1f3ed\",\n\t\t\t\"1f9d1-1f3fe-200d-1f3ed\",\n\t\t\t\"1f9d1-1f3ff-200d-1f3ed\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man factory worker\",\n\t\t\t\"male-factory-worker\"\n\t\t],\n\t\tu: \"1f468-200d-1f3ed\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f3ed\",\n\t\t\t\"1f468-1f3fc-200d-1f3ed\",\n\t\t\t\"1f468-1f3fd-200d-1f3ed\",\n\t\t\t\"1f468-1f3fe-200d-1f3ed\",\n\t\t\t\"1f468-1f3ff-200d-1f3ed\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman factory worker\",\n\t\t\t\"female-factory-worker\"\n\t\t],\n\t\tu: \"1f469-200d-1f3ed\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f3ed\",\n\t\t\t\"1f469-1f3fc-200d-1f3ed\",\n\t\t\t\"1f469-1f3fd-200d-1f3ed\",\n\t\t\t\"1f469-1f3fe-200d-1f3ed\",\n\t\t\t\"1f469-1f3ff-200d-1f3ed\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"office worker\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f4bc\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f4bc\",\n\t\t\t\"1f9d1-1f3fc-200d-1f4bc\",\n\t\t\t\"1f9d1-1f3fd-200d-1f4bc\",\n\t\t\t\"1f9d1-1f3fe-200d-1f4bc\",\n\t\t\t\"1f9d1-1f3ff-200d-1f4bc\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man office worker\",\n\t\t\t\"male-office-worker\"\n\t\t],\n\t\tu: \"1f468-200d-1f4bc\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f4bc\",\n\t\t\t\"1f468-1f3fc-200d-1f4bc\",\n\t\t\t\"1f468-1f3fd-200d-1f4bc\",\n\t\t\t\"1f468-1f3fe-200d-1f4bc\",\n\t\t\t\"1f468-1f3ff-200d-1f4bc\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman office worker\",\n\t\t\t\"female-office-worker\"\n\t\t],\n\t\tu: \"1f469-200d-1f4bc\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f4bc\",\n\t\t\t\"1f469-1f3fc-200d-1f4bc\",\n\t\t\t\"1f469-1f3fd-200d-1f4bc\",\n\t\t\t\"1f469-1f3fe-200d-1f4bc\",\n\t\t\t\"1f469-1f3ff-200d-1f4bc\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"scientist\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f52c\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f52c\",\n\t\t\t\"1f9d1-1f3fc-200d-1f52c\",\n\t\t\t\"1f9d1-1f3fd-200d-1f52c\",\n\t\t\t\"1f9d1-1f3fe-200d-1f52c\",\n\t\t\t\"1f9d1-1f3ff-200d-1f52c\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man scientist\",\n\t\t\t\"male-scientist\"\n\t\t],\n\t\tu: \"1f468-200d-1f52c\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f52c\",\n\t\t\t\"1f468-1f3fc-200d-1f52c\",\n\t\t\t\"1f468-1f3fd-200d-1f52c\",\n\t\t\t\"1f468-1f3fe-200d-1f52c\",\n\t\t\t\"1f468-1f3ff-200d-1f52c\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman scientist\",\n\t\t\t\"female-scientist\"\n\t\t],\n\t\tu: \"1f469-200d-1f52c\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f52c\",\n\t\t\t\"1f469-1f3fc-200d-1f52c\",\n\t\t\t\"1f469-1f3fd-200d-1f52c\",\n\t\t\t\"1f469-1f3fe-200d-1f52c\",\n\t\t\t\"1f469-1f3ff-200d-1f52c\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"technologist\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f4bb\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f4bb\",\n\t\t\t\"1f9d1-1f3fc-200d-1f4bb\",\n\t\t\t\"1f9d1-1f3fd-200d-1f4bb\",\n\t\t\t\"1f9d1-1f3fe-200d-1f4bb\",\n\t\t\t\"1f9d1-1f3ff-200d-1f4bb\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man technologist\",\n\t\t\t\"male-technologist\"\n\t\t],\n\t\tu: \"1f468-200d-1f4bb\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f4bb\",\n\t\t\t\"1f468-1f3fc-200d-1f4bb\",\n\t\t\t\"1f468-1f3fd-200d-1f4bb\",\n\t\t\t\"1f468-1f3fe-200d-1f4bb\",\n\t\t\t\"1f468-1f3ff-200d-1f4bb\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman technologist\",\n\t\t\t\"female-technologist\"\n\t\t],\n\t\tu: \"1f469-200d-1f4bb\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f4bb\",\n\t\t\t\"1f469-1f3fc-200d-1f4bb\",\n\t\t\t\"1f469-1f3fd-200d-1f4bb\",\n\t\t\t\"1f469-1f3fe-200d-1f4bb\",\n\t\t\t\"1f469-1f3ff-200d-1f4bb\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"singer\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f3a4\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f3a4\",\n\t\t\t\"1f9d1-1f3fc-200d-1f3a4\",\n\t\t\t\"1f9d1-1f3fd-200d-1f3a4\",\n\t\t\t\"1f9d1-1f3fe-200d-1f3a4\",\n\t\t\t\"1f9d1-1f3ff-200d-1f3a4\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man singer\",\n\t\t\t\"male-singer\"\n\t\t],\n\t\tu: \"1f468-200d-1f3a4\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f3a4\",\n\t\t\t\"1f468-1f3fc-200d-1f3a4\",\n\t\t\t\"1f468-1f3fd-200d-1f3a4\",\n\t\t\t\"1f468-1f3fe-200d-1f3a4\",\n\t\t\t\"1f468-1f3ff-200d-1f3a4\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman singer\",\n\t\t\t\"female-singer\"\n\t\t],\n\t\tu: \"1f469-200d-1f3a4\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f3a4\",\n\t\t\t\"1f469-1f3fc-200d-1f3a4\",\n\t\t\t\"1f469-1f3fd-200d-1f3a4\",\n\t\t\t\"1f469-1f3fe-200d-1f3a4\",\n\t\t\t\"1f469-1f3ff-200d-1f3a4\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"artist\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f3a8\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f3a8\",\n\t\t\t\"1f9d1-1f3fc-200d-1f3a8\",\n\t\t\t\"1f9d1-1f3fd-200d-1f3a8\",\n\t\t\t\"1f9d1-1f3fe-200d-1f3a8\",\n\t\t\t\"1f9d1-1f3ff-200d-1f3a8\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man artist\",\n\t\t\t\"male-artist\"\n\t\t],\n\t\tu: \"1f468-200d-1f3a8\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f3a8\",\n\t\t\t\"1f468-1f3fc-200d-1f3a8\",\n\t\t\t\"1f468-1f3fd-200d-1f3a8\",\n\t\t\t\"1f468-1f3fe-200d-1f3a8\",\n\t\t\t\"1f468-1f3ff-200d-1f3a8\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman artist\",\n\t\t\t\"female-artist\"\n\t\t],\n\t\tu: \"1f469-200d-1f3a8\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f3a8\",\n\t\t\t\"1f469-1f3fc-200d-1f3a8\",\n\t\t\t\"1f469-1f3fd-200d-1f3a8\",\n\t\t\t\"1f469-1f3fe-200d-1f3a8\",\n\t\t\t\"1f469-1f3ff-200d-1f3a8\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pilot\"\n\t\t],\n\t\tu: \"1f9d1-200d-2708-fe0f\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-2708-fe0f\",\n\t\t\t\"1f9d1-1f3fc-200d-2708-fe0f\",\n\t\t\t\"1f9d1-1f3fd-200d-2708-fe0f\",\n\t\t\t\"1f9d1-1f3fe-200d-2708-fe0f\",\n\t\t\t\"1f9d1-1f3ff-200d-2708-fe0f\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man pilot\",\n\t\t\t\"male-pilot\"\n\t\t],\n\t\tu: \"1f468-200d-2708-fe0f\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-2708-fe0f\",\n\t\t\t\"1f468-1f3fc-200d-2708-fe0f\",\n\t\t\t\"1f468-1f3fd-200d-2708-fe0f\",\n\t\t\t\"1f468-1f3fe-200d-2708-fe0f\",\n\t\t\t\"1f468-1f3ff-200d-2708-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman pilot\",\n\t\t\t\"female-pilot\"\n\t\t],\n\t\tu: \"1f469-200d-2708-fe0f\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-2708-fe0f\",\n\t\t\t\"1f469-1f3fc-200d-2708-fe0f\",\n\t\t\t\"1f469-1f3fd-200d-2708-fe0f\",\n\t\t\t\"1f469-1f3fe-200d-2708-fe0f\",\n\t\t\t\"1f469-1f3ff-200d-2708-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"astronaut\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f680\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f680\",\n\t\t\t\"1f9d1-1f3fc-200d-1f680\",\n\t\t\t\"1f9d1-1f3fd-200d-1f680\",\n\t\t\t\"1f9d1-1f3fe-200d-1f680\",\n\t\t\t\"1f9d1-1f3ff-200d-1f680\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man astronaut\",\n\t\t\t\"male-astronaut\"\n\t\t],\n\t\tu: \"1f468-200d-1f680\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f680\",\n\t\t\t\"1f468-1f3fc-200d-1f680\",\n\t\t\t\"1f468-1f3fd-200d-1f680\",\n\t\t\t\"1f468-1f3fe-200d-1f680\",\n\t\t\t\"1f468-1f3ff-200d-1f680\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman astronaut\",\n\t\t\t\"female-astronaut\"\n\t\t],\n\t\tu: \"1f469-200d-1f680\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f680\",\n\t\t\t\"1f469-1f3fc-200d-1f680\",\n\t\t\t\"1f469-1f3fd-200d-1f680\",\n\t\t\t\"1f469-1f3fe-200d-1f680\",\n\t\t\t\"1f469-1f3ff-200d-1f680\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"firefighter\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f692\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f692\",\n\t\t\t\"1f9d1-1f3fc-200d-1f692\",\n\t\t\t\"1f9d1-1f3fd-200d-1f692\",\n\t\t\t\"1f9d1-1f3fe-200d-1f692\",\n\t\t\t\"1f9d1-1f3ff-200d-1f692\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man firefighter\",\n\t\t\t\"male-firefighter\"\n\t\t],\n\t\tu: \"1f468-200d-1f692\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f692\",\n\t\t\t\"1f468-1f3fc-200d-1f692\",\n\t\t\t\"1f468-1f3fd-200d-1f692\",\n\t\t\t\"1f468-1f3fe-200d-1f692\",\n\t\t\t\"1f468-1f3ff-200d-1f692\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman firefighter\",\n\t\t\t\"female-firefighter\"\n\t\t],\n\t\tu: \"1f469-200d-1f692\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f692\",\n\t\t\t\"1f469-1f3fc-200d-1f692\",\n\t\t\t\"1f469-1f3fd-200d-1f692\",\n\t\t\t\"1f469-1f3fe-200d-1f692\",\n\t\t\t\"1f469-1f3ff-200d-1f692\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cop\",\n\t\t\t\"police officer\"\n\t\t],\n\t\tu: \"1f46e\",\n\t\tv: [\n\t\t\t\"1f46e-1f3fb\",\n\t\t\t\"1f46e-1f3fc\",\n\t\t\t\"1f46e-1f3fd\",\n\t\t\t\"1f46e-1f3fe\",\n\t\t\t\"1f46e-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man police officer\",\n\t\t\t\"male-police-officer\"\n\t\t],\n\t\tu: \"1f46e-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f46e-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f46e-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f46e-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f46e-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f46e-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman police officer\",\n\t\t\t\"female-police-officer\"\n\t\t],\n\t\tu: \"1f46e-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f46e-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f46e-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f46e-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f46e-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f46e-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"detective\",\n\t\t\t\"sleuth or spy\"\n\t\t],\n\t\tu: \"1f575-fe0f\",\n\t\tv: [\n\t\t\t\"1f575-1f3fb\",\n\t\t\t\"1f575-1f3fc\",\n\t\t\t\"1f575-1f3fd\",\n\t\t\t\"1f575-1f3fe\",\n\t\t\t\"1f575-1f3ff\"\n\t\t],\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man detective\",\n\t\t\t\"male-detective\"\n\t\t],\n\t\tu: \"1f575-fe0f-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f575-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f575-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f575-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f575-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f575-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman detective\",\n\t\t\t\"female-detective\"\n\t\t],\n\t\tu: \"1f575-fe0f-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f575-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f575-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f575-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f575-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f575-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"guardsman\"\n\t\t],\n\t\tu: \"1f482\",\n\t\tv: [\n\t\t\t\"1f482-1f3fb\",\n\t\t\t\"1f482-1f3fc\",\n\t\t\t\"1f482-1f3fd\",\n\t\t\t\"1f482-1f3fe\",\n\t\t\t\"1f482-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man guard\",\n\t\t\t\"male-guard\"\n\t\t],\n\t\tu: \"1f482-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f482-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f482-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f482-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f482-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f482-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman guard\",\n\t\t\t\"female-guard\"\n\t\t],\n\t\tu: \"1f482-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f482-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f482-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f482-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f482-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f482-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ninja\"\n\t\t],\n\t\tu: \"1f977\",\n\t\tv: [\n\t\t\t\"1f977-1f3fb\",\n\t\t\t\"1f977-1f3fc\",\n\t\t\t\"1f977-1f3fd\",\n\t\t\t\"1f977-1f3fe\",\n\t\t\t\"1f977-1f3ff\"\n\t\t],\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"construction worker\"\n\t\t],\n\t\tu: \"1f477\",\n\t\tv: [\n\t\t\t\"1f477-1f3fb\",\n\t\t\t\"1f477-1f3fc\",\n\t\t\t\"1f477-1f3fd\",\n\t\t\t\"1f477-1f3fe\",\n\t\t\t\"1f477-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man construction worker\",\n\t\t\t\"male-construction-worker\"\n\t\t],\n\t\tu: \"1f477-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f477-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f477-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f477-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f477-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f477-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman construction worker\",\n\t\t\t\"female-construction-worker\"\n\t\t],\n\t\tu: \"1f477-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f477-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f477-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f477-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f477-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f477-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person with crown\"\n\t\t],\n\t\tu: \"1fac5\",\n\t\tv: [\n\t\t\t\"1fac5-1f3fb\",\n\t\t\t\"1fac5-1f3fc\",\n\t\t\t\"1fac5-1f3fd\",\n\t\t\t\"1fac5-1f3fe\",\n\t\t\t\"1fac5-1f3ff\"\n\t\t],\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"prince\"\n\t\t],\n\t\tu: \"1f934\",\n\t\tv: [\n\t\t\t\"1f934-1f3fb\",\n\t\t\t\"1f934-1f3fc\",\n\t\t\t\"1f934-1f3fd\",\n\t\t\t\"1f934-1f3fe\",\n\t\t\t\"1f934-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"princess\"\n\t\t],\n\t\tu: \"1f478\",\n\t\tv: [\n\t\t\t\"1f478-1f3fb\",\n\t\t\t\"1f478-1f3fc\",\n\t\t\t\"1f478-1f3fd\",\n\t\t\t\"1f478-1f3fe\",\n\t\t\t\"1f478-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man with turban\"\n\t\t],\n\t\tu: \"1f473\",\n\t\tv: [\n\t\t\t\"1f473-1f3fb\",\n\t\t\t\"1f473-1f3fc\",\n\t\t\t\"1f473-1f3fd\",\n\t\t\t\"1f473-1f3fe\",\n\t\t\t\"1f473-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man wearing turban\",\n\t\t\t\"man-wearing-turban\"\n\t\t],\n\t\tu: \"1f473-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f473-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f473-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f473-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f473-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f473-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman wearing turban\",\n\t\t\t\"woman-wearing-turban\"\n\t\t],\n\t\tu: \"1f473-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f473-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f473-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f473-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f473-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f473-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man with gua pi mao\"\n\t\t],\n\t\tu: \"1f472\",\n\t\tv: [\n\t\t\t\"1f472-1f3fb\",\n\t\t\t\"1f472-1f3fc\",\n\t\t\t\"1f472-1f3fd\",\n\t\t\t\"1f472-1f3fe\",\n\t\t\t\"1f472-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person with headscarf\"\n\t\t],\n\t\tu: \"1f9d5\",\n\t\tv: [\n\t\t\t\"1f9d5-1f3fb\",\n\t\t\t\"1f9d5-1f3fc\",\n\t\t\t\"1f9d5-1f3fd\",\n\t\t\t\"1f9d5-1f3fe\",\n\t\t\t\"1f9d5-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man in tuxedo\",\n\t\t\t\"person in tuxedo\"\n\t\t],\n\t\tu: \"1f935\",\n\t\tv: [\n\t\t\t\"1f935-1f3fb\",\n\t\t\t\"1f935-1f3fc\",\n\t\t\t\"1f935-1f3fd\",\n\t\t\t\"1f935-1f3fe\",\n\t\t\t\"1f935-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man in tuxedo\"\n\t\t],\n\t\tu: \"1f935-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f935-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f935-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f935-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f935-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f935-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman in tuxedo\"\n\t\t],\n\t\tu: \"1f935-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f935-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f935-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f935-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f935-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f935-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bride with veil\"\n\t\t],\n\t\tu: \"1f470\",\n\t\tv: [\n\t\t\t\"1f470-1f3fb\",\n\t\t\t\"1f470-1f3fc\",\n\t\t\t\"1f470-1f3fd\",\n\t\t\t\"1f470-1f3fe\",\n\t\t\t\"1f470-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man with veil\"\n\t\t],\n\t\tu: \"1f470-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f470-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f470-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f470-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f470-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f470-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman with veil\"\n\t\t],\n\t\tu: \"1f470-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f470-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f470-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f470-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f470-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f470-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pregnant woman\"\n\t\t],\n\t\tu: \"1f930\",\n\t\tv: [\n\t\t\t\"1f930-1f3fb\",\n\t\t\t\"1f930-1f3fc\",\n\t\t\t\"1f930-1f3fd\",\n\t\t\t\"1f930-1f3fe\",\n\t\t\t\"1f930-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pregnant man\"\n\t\t],\n\t\tu: \"1fac3\",\n\t\tv: [\n\t\t\t\"1fac3-1f3fb\",\n\t\t\t\"1fac3-1f3fc\",\n\t\t\t\"1fac3-1f3fd\",\n\t\t\t\"1fac3-1f3fe\",\n\t\t\t\"1fac3-1f3ff\"\n\t\t],\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pregnant person\"\n\t\t],\n\t\tu: \"1fac4\",\n\t\tv: [\n\t\t\t\"1fac4-1f3fb\",\n\t\t\t\"1fac4-1f3fc\",\n\t\t\t\"1fac4-1f3fd\",\n\t\t\t\"1fac4-1f3fe\",\n\t\t\t\"1fac4-1f3ff\"\n\t\t],\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"breast-feeding\"\n\t\t],\n\t\tu: \"1f931\",\n\t\tv: [\n\t\t\t\"1f931-1f3fb\",\n\t\t\t\"1f931-1f3fc\",\n\t\t\t\"1f931-1f3fd\",\n\t\t\t\"1f931-1f3fe\",\n\t\t\t\"1f931-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman feeding baby\"\n\t\t],\n\t\tu: \"1f469-200d-1f37c\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f37c\",\n\t\t\t\"1f469-1f3fc-200d-1f37c\",\n\t\t\t\"1f469-1f3fd-200d-1f37c\",\n\t\t\t\"1f469-1f3fe-200d-1f37c\",\n\t\t\t\"1f469-1f3ff-200d-1f37c\"\n\t\t],\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man feeding baby\"\n\t\t],\n\t\tu: \"1f468-200d-1f37c\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f37c\",\n\t\t\t\"1f468-1f3fc-200d-1f37c\",\n\t\t\t\"1f468-1f3fd-200d-1f37c\",\n\t\t\t\"1f468-1f3fe-200d-1f37c\",\n\t\t\t\"1f468-1f3ff-200d-1f37c\"\n\t\t],\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person feeding baby\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f37c\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f37c\",\n\t\t\t\"1f9d1-1f3fc-200d-1f37c\",\n\t\t\t\"1f9d1-1f3fd-200d-1f37c\",\n\t\t\t\"1f9d1-1f3fe-200d-1f37c\",\n\t\t\t\"1f9d1-1f3ff-200d-1f37c\"\n\t\t],\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"angel\",\n\t\t\t\"baby angel\"\n\t\t],\n\t\tu: \"1f47c\",\n\t\tv: [\n\t\t\t\"1f47c-1f3fb\",\n\t\t\t\"1f47c-1f3fc\",\n\t\t\t\"1f47c-1f3fd\",\n\t\t\t\"1f47c-1f3fe\",\n\t\t\t\"1f47c-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"santa\",\n\t\t\t\"father christmas\"\n\t\t],\n\t\tu: \"1f385\",\n\t\tv: [\n\t\t\t\"1f385-1f3fb\",\n\t\t\t\"1f385-1f3fc\",\n\t\t\t\"1f385-1f3fd\",\n\t\t\t\"1f385-1f3fe\",\n\t\t\t\"1f385-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mrs claus\",\n\t\t\t\"mother christmas\"\n\t\t],\n\t\tu: \"1f936\",\n\t\tv: [\n\t\t\t\"1f936-1f3fb\",\n\t\t\t\"1f936-1f3fc\",\n\t\t\t\"1f936-1f3fd\",\n\t\t\t\"1f936-1f3fe\",\n\t\t\t\"1f936-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mx claus\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f384\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f384\",\n\t\t\t\"1f9d1-1f3fc-200d-1f384\",\n\t\t\t\"1f9d1-1f3fd-200d-1f384\",\n\t\t\t\"1f9d1-1f3fe-200d-1f384\",\n\t\t\t\"1f9d1-1f3ff-200d-1f384\"\n\t\t],\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"superhero\"\n\t\t],\n\t\tu: \"1f9b8\",\n\t\tv: [\n\t\t\t\"1f9b8-1f3fb\",\n\t\t\t\"1f9b8-1f3fc\",\n\t\t\t\"1f9b8-1f3fd\",\n\t\t\t\"1f9b8-1f3fe\",\n\t\t\t\"1f9b8-1f3ff\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man superhero\",\n\t\t\t\"male superhero\"\n\t\t],\n\t\tu: \"1f9b8-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f9b8-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f9b8-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f9b8-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f9b8-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f9b8-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman superhero\",\n\t\t\t\"female superhero\"\n\t\t],\n\t\tu: \"1f9b8-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f9b8-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f9b8-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f9b8-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f9b8-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f9b8-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"supervillain\"\n\t\t],\n\t\tu: \"1f9b9\",\n\t\tv: [\n\t\t\t\"1f9b9-1f3fb\",\n\t\t\t\"1f9b9-1f3fc\",\n\t\t\t\"1f9b9-1f3fd\",\n\t\t\t\"1f9b9-1f3fe\",\n\t\t\t\"1f9b9-1f3ff\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man supervillain\",\n\t\t\t\"male supervillain\"\n\t\t],\n\t\tu: \"1f9b9-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f9b9-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f9b9-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f9b9-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f9b9-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f9b9-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman supervillain\",\n\t\t\t\"female supervillain\"\n\t\t],\n\t\tu: \"1f9b9-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f9b9-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f9b9-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f9b9-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f9b9-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f9b9-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mage\"\n\t\t],\n\t\tu: \"1f9d9\",\n\t\tv: [\n\t\t\t\"1f9d9-1f3fb\",\n\t\t\t\"1f9d9-1f3fc\",\n\t\t\t\"1f9d9-1f3fd\",\n\t\t\t\"1f9d9-1f3fe\",\n\t\t\t\"1f9d9-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man mage\",\n\t\t\t\"male mage\"\n\t\t],\n\t\tu: \"1f9d9-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f9d9-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f9d9-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f9d9-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f9d9-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f9d9-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman mage\",\n\t\t\t\"female mage\"\n\t\t],\n\t\tu: \"1f9d9-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f9d9-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f9d9-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f9d9-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f9d9-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f9d9-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fairy\"\n\t\t],\n\t\tu: \"1f9da\",\n\t\tv: [\n\t\t\t\"1f9da-1f3fb\",\n\t\t\t\"1f9da-1f3fc\",\n\t\t\t\"1f9da-1f3fd\",\n\t\t\t\"1f9da-1f3fe\",\n\t\t\t\"1f9da-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man fairy\",\n\t\t\t\"male fairy\"\n\t\t],\n\t\tu: \"1f9da-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f9da-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f9da-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f9da-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f9da-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f9da-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman fairy\",\n\t\t\t\"female fairy\"\n\t\t],\n\t\tu: \"1f9da-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f9da-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f9da-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f9da-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f9da-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f9da-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"vampire\"\n\t\t],\n\t\tu: \"1f9db\",\n\t\tv: [\n\t\t\t\"1f9db-1f3fb\",\n\t\t\t\"1f9db-1f3fc\",\n\t\t\t\"1f9db-1f3fd\",\n\t\t\t\"1f9db-1f3fe\",\n\t\t\t\"1f9db-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man vampire\",\n\t\t\t\"male vampire\"\n\t\t],\n\t\tu: \"1f9db-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f9db-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f9db-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f9db-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f9db-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f9db-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman vampire\",\n\t\t\t\"female vampire\"\n\t\t],\n\t\tu: \"1f9db-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f9db-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f9db-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f9db-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f9db-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f9db-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"merperson\"\n\t\t],\n\t\tu: \"1f9dc\",\n\t\tv: [\n\t\t\t\"1f9dc-1f3fb\",\n\t\t\t\"1f9dc-1f3fc\",\n\t\t\t\"1f9dc-1f3fd\",\n\t\t\t\"1f9dc-1f3fe\",\n\t\t\t\"1f9dc-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"merman\"\n\t\t],\n\t\tu: \"1f9dc-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f9dc-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f9dc-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f9dc-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f9dc-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f9dc-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mermaid\"\n\t\t],\n\t\tu: \"1f9dc-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f9dc-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f9dc-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f9dc-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f9dc-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f9dc-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"elf\"\n\t\t],\n\t\tu: \"1f9dd\",\n\t\tv: [\n\t\t\t\"1f9dd-1f3fb\",\n\t\t\t\"1f9dd-1f3fc\",\n\t\t\t\"1f9dd-1f3fd\",\n\t\t\t\"1f9dd-1f3fe\",\n\t\t\t\"1f9dd-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man elf\",\n\t\t\t\"male elf\"\n\t\t],\n\t\tu: \"1f9dd-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f9dd-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f9dd-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f9dd-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f9dd-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f9dd-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman elf\",\n\t\t\t\"female elf\"\n\t\t],\n\t\tu: \"1f9dd-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f9dd-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f9dd-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f9dd-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f9dd-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f9dd-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"genie\"\n\t\t],\n\t\tu: \"1f9de\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man genie\",\n\t\t\t\"male genie\"\n\t\t],\n\t\tu: \"1f9de-200d-2642-fe0f\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman genie\",\n\t\t\t\"female genie\"\n\t\t],\n\t\tu: \"1f9de-200d-2640-fe0f\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"zombie\"\n\t\t],\n\t\tu: \"1f9df\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man zombie\",\n\t\t\t\"male zombie\"\n\t\t],\n\t\tu: \"1f9df-200d-2642-fe0f\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman zombie\",\n\t\t\t\"female zombie\"\n\t\t],\n\t\tu: \"1f9df-200d-2640-fe0f\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"troll\"\n\t\t],\n\t\tu: \"1f9cc\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"massage\",\n\t\t\t\"face massage\"\n\t\t],\n\t\tu: \"1f486\",\n\t\tv: [\n\t\t\t\"1f486-1f3fb\",\n\t\t\t\"1f486-1f3fc\",\n\t\t\t\"1f486-1f3fd\",\n\t\t\t\"1f486-1f3fe\",\n\t\t\t\"1f486-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man getting massage\",\n\t\t\t\"man-getting-massage\"\n\t\t],\n\t\tu: \"1f486-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f486-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f486-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f486-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f486-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f486-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman getting massage\",\n\t\t\t\"woman-getting-massage\"\n\t\t],\n\t\tu: \"1f486-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f486-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f486-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f486-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f486-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f486-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"haircut\"\n\t\t],\n\t\tu: \"1f487\",\n\t\tv: [\n\t\t\t\"1f487-1f3fb\",\n\t\t\t\"1f487-1f3fc\",\n\t\t\t\"1f487-1f3fd\",\n\t\t\t\"1f487-1f3fe\",\n\t\t\t\"1f487-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man getting haircut\",\n\t\t\t\"man-getting-haircut\"\n\t\t],\n\t\tu: \"1f487-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f487-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f487-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f487-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f487-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f487-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman getting haircut\",\n\t\t\t\"woman-getting-haircut\"\n\t\t],\n\t\tu: \"1f487-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f487-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f487-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f487-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f487-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f487-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"walking\",\n\t\t\t\"pedestrian\"\n\t\t],\n\t\tu: \"1f6b6\",\n\t\tv: [\n\t\t\t\"1f6b6-1f3fb\",\n\t\t\t\"1f6b6-1f3fc\",\n\t\t\t\"1f6b6-1f3fd\",\n\t\t\t\"1f6b6-1f3fe\",\n\t\t\t\"1f6b6-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man walking\",\n\t\t\t\"man-walking\"\n\t\t],\n\t\tu: \"1f6b6-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f6b6-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f6b6-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f6b6-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f6b6-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f6b6-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman walking\",\n\t\t\t\"woman-walking\"\n\t\t],\n\t\tu: \"1f6b6-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f6b6-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f6b6-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f6b6-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f6b6-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f6b6-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"standing person\"\n\t\t],\n\t\tu: \"1f9cd\",\n\t\tv: [\n\t\t\t\"1f9cd-1f3fb\",\n\t\t\t\"1f9cd-1f3fc\",\n\t\t\t\"1f9cd-1f3fd\",\n\t\t\t\"1f9cd-1f3fe\",\n\t\t\t\"1f9cd-1f3ff\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man standing\"\n\t\t],\n\t\tu: \"1f9cd-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f9cd-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f9cd-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f9cd-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f9cd-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f9cd-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman standing\"\n\t\t],\n\t\tu: \"1f9cd-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f9cd-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f9cd-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f9cd-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f9cd-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f9cd-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"kneeling person\"\n\t\t],\n\t\tu: \"1f9ce\",\n\t\tv: [\n\t\t\t\"1f9ce-1f3fb\",\n\t\t\t\"1f9ce-1f3fc\",\n\t\t\t\"1f9ce-1f3fd\",\n\t\t\t\"1f9ce-1f3fe\",\n\t\t\t\"1f9ce-1f3ff\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man kneeling\"\n\t\t],\n\t\tu: \"1f9ce-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f9ce-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f9ce-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f9ce-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f9ce-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f9ce-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman kneeling\"\n\t\t],\n\t\tu: \"1f9ce-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f9ce-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f9ce-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f9ce-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f9ce-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f9ce-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person with white cane\",\n\t\t\t\"person with probing cane\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f9af\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f9af\",\n\t\t\t\"1f9d1-1f3fc-200d-1f9af\",\n\t\t\t\"1f9d1-1f3fd-200d-1f9af\",\n\t\t\t\"1f9d1-1f3fe-200d-1f9af\",\n\t\t\t\"1f9d1-1f3ff-200d-1f9af\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man with white cane\",\n\t\t\t\"man with probing cane\"\n\t\t],\n\t\tu: \"1f468-200d-1f9af\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f9af\",\n\t\t\t\"1f468-1f3fc-200d-1f9af\",\n\t\t\t\"1f468-1f3fd-200d-1f9af\",\n\t\t\t\"1f468-1f3fe-200d-1f9af\",\n\t\t\t\"1f468-1f3ff-200d-1f9af\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman with white cane\",\n\t\t\t\"woman with probing cane\"\n\t\t],\n\t\tu: \"1f469-200d-1f9af\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f9af\",\n\t\t\t\"1f469-1f3fc-200d-1f9af\",\n\t\t\t\"1f469-1f3fd-200d-1f9af\",\n\t\t\t\"1f469-1f3fe-200d-1f9af\",\n\t\t\t\"1f469-1f3ff-200d-1f9af\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person in motorized wheelchair\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f9bc\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f9bc\",\n\t\t\t\"1f9d1-1f3fc-200d-1f9bc\",\n\t\t\t\"1f9d1-1f3fd-200d-1f9bc\",\n\t\t\t\"1f9d1-1f3fe-200d-1f9bc\",\n\t\t\t\"1f9d1-1f3ff-200d-1f9bc\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man in motorized wheelchair\"\n\t\t],\n\t\tu: \"1f468-200d-1f9bc\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f9bc\",\n\t\t\t\"1f468-1f3fc-200d-1f9bc\",\n\t\t\t\"1f468-1f3fd-200d-1f9bc\",\n\t\t\t\"1f468-1f3fe-200d-1f9bc\",\n\t\t\t\"1f468-1f3ff-200d-1f9bc\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman in motorized wheelchair\"\n\t\t],\n\t\tu: \"1f469-200d-1f9bc\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f9bc\",\n\t\t\t\"1f469-1f3fc-200d-1f9bc\",\n\t\t\t\"1f469-1f3fd-200d-1f9bc\",\n\t\t\t\"1f469-1f3fe-200d-1f9bc\",\n\t\t\t\"1f469-1f3ff-200d-1f9bc\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person in manual wheelchair\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f9bd\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f9bd\",\n\t\t\t\"1f9d1-1f3fc-200d-1f9bd\",\n\t\t\t\"1f9d1-1f3fd-200d-1f9bd\",\n\t\t\t\"1f9d1-1f3fe-200d-1f9bd\",\n\t\t\t\"1f9d1-1f3ff-200d-1f9bd\"\n\t\t],\n\t\ta: \"12.1\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man in manual wheelchair\"\n\t\t],\n\t\tu: \"1f468-200d-1f9bd\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-1f9bd\",\n\t\t\t\"1f468-1f3fc-200d-1f9bd\",\n\t\t\t\"1f468-1f3fd-200d-1f9bd\",\n\t\t\t\"1f468-1f3fe-200d-1f9bd\",\n\t\t\t\"1f468-1f3ff-200d-1f9bd\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman in manual wheelchair\"\n\t\t],\n\t\tu: \"1f469-200d-1f9bd\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-1f9bd\",\n\t\t\t\"1f469-1f3fc-200d-1f9bd\",\n\t\t\t\"1f469-1f3fd-200d-1f9bd\",\n\t\t\t\"1f469-1f3fe-200d-1f9bd\",\n\t\t\t\"1f469-1f3ff-200d-1f9bd\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"runner\",\n\t\t\t\"running\"\n\t\t],\n\t\tu: \"1f3c3\",\n\t\tv: [\n\t\t\t\"1f3c3-1f3fb\",\n\t\t\t\"1f3c3-1f3fc\",\n\t\t\t\"1f3c3-1f3fd\",\n\t\t\t\"1f3c3-1f3fe\",\n\t\t\t\"1f3c3-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man running\",\n\t\t\t\"man-running\"\n\t\t],\n\t\tu: \"1f3c3-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f3c3-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f3c3-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f3c3-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f3c3-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f3c3-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman running\",\n\t\t\t\"woman-running\"\n\t\t],\n\t\tu: \"1f3c3-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f3c3-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f3c3-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f3c3-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f3c3-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f3c3-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dancer\"\n\t\t],\n\t\tu: \"1f483\",\n\t\tv: [\n\t\t\t\"1f483-1f3fb\",\n\t\t\t\"1f483-1f3fc\",\n\t\t\t\"1f483-1f3fd\",\n\t\t\t\"1f483-1f3fe\",\n\t\t\t\"1f483-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man dancing\"\n\t\t],\n\t\tu: \"1f57a\",\n\t\tv: [\n\t\t\t\"1f57a-1f3fb\",\n\t\t\t\"1f57a-1f3fc\",\n\t\t\t\"1f57a-1f3fd\",\n\t\t\t\"1f57a-1f3fe\",\n\t\t\t\"1f57a-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person in suit levitating\",\n\t\t\t\"man in business suit levitating\"\n\t\t],\n\t\tu: \"1f574-fe0f\",\n\t\tv: [\n\t\t\t\"1f574-1f3fb\",\n\t\t\t\"1f574-1f3fc\",\n\t\t\t\"1f574-1f3fd\",\n\t\t\t\"1f574-1f3fe\",\n\t\t\t\"1f574-1f3ff\"\n\t\t],\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dancers\",\n\t\t\t\"woman with bunny ears\"\n\t\t],\n\t\tu: \"1f46f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"men with bunny ears\",\n\t\t\t\"men-with-bunny-ears-partying\",\n\t\t\t\"man-with-bunny-ears-partying\"\n\t\t],\n\t\tu: \"1f46f-200d-2642-fe0f\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"women with bunny ears\",\n\t\t\t\"women-with-bunny-ears-partying\",\n\t\t\t\"woman-with-bunny-ears-partying\"\n\t\t],\n\t\tu: \"1f46f-200d-2640-fe0f\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person in steamy room\"\n\t\t],\n\t\tu: \"1f9d6\",\n\t\tv: [\n\t\t\t\"1f9d6-1f3fb\",\n\t\t\t\"1f9d6-1f3fc\",\n\t\t\t\"1f9d6-1f3fd\",\n\t\t\t\"1f9d6-1f3fe\",\n\t\t\t\"1f9d6-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man in steamy room\"\n\t\t],\n\t\tu: \"1f9d6-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f9d6-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f9d6-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f9d6-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f9d6-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f9d6-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman in steamy room\"\n\t\t],\n\t\tu: \"1f9d6-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f9d6-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f9d6-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f9d6-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f9d6-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f9d6-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person climbing\"\n\t\t],\n\t\tu: \"1f9d7\",\n\t\tv: [\n\t\t\t\"1f9d7-1f3fb\",\n\t\t\t\"1f9d7-1f3fc\",\n\t\t\t\"1f9d7-1f3fd\",\n\t\t\t\"1f9d7-1f3fe\",\n\t\t\t\"1f9d7-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man climbing\"\n\t\t],\n\t\tu: \"1f9d7-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f9d7-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f9d7-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f9d7-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f9d7-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f9d7-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman climbing\"\n\t\t],\n\t\tu: \"1f9d7-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f9d7-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f9d7-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f9d7-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f9d7-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f9d7-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fencer\"\n\t\t],\n\t\tu: \"1f93a\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"horse racing\"\n\t\t],\n\t\tu: \"1f3c7\",\n\t\tv: [\n\t\t\t\"1f3c7-1f3fb\",\n\t\t\t\"1f3c7-1f3fc\",\n\t\t\t\"1f3c7-1f3fd\",\n\t\t\t\"1f3c7-1f3fe\",\n\t\t\t\"1f3c7-1f3ff\"\n\t\t],\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"skier\"\n\t\t],\n\t\tu: \"26f7-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"snowboarder\"\n\t\t],\n\t\tu: \"1f3c2\",\n\t\tv: [\n\t\t\t\"1f3c2-1f3fb\",\n\t\t\t\"1f3c2-1f3fc\",\n\t\t\t\"1f3c2-1f3fd\",\n\t\t\t\"1f3c2-1f3fe\",\n\t\t\t\"1f3c2-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"golfer\",\n\t\t\t\"person golfing\"\n\t\t],\n\t\tu: \"1f3cc-fe0f\",\n\t\tv: [\n\t\t\t\"1f3cc-1f3fb\",\n\t\t\t\"1f3cc-1f3fc\",\n\t\t\t\"1f3cc-1f3fd\",\n\t\t\t\"1f3cc-1f3fe\",\n\t\t\t\"1f3cc-1f3ff\"\n\t\t],\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man golfing\",\n\t\t\t\"man-golfing\"\n\t\t],\n\t\tu: \"1f3cc-fe0f-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f3cc-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f3cc-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f3cc-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f3cc-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f3cc-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman golfing\",\n\t\t\t\"woman-golfing\"\n\t\t],\n\t\tu: \"1f3cc-fe0f-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f3cc-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f3cc-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f3cc-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f3cc-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f3cc-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"surfer\"\n\t\t],\n\t\tu: \"1f3c4\",\n\t\tv: [\n\t\t\t\"1f3c4-1f3fb\",\n\t\t\t\"1f3c4-1f3fc\",\n\t\t\t\"1f3c4-1f3fd\",\n\t\t\t\"1f3c4-1f3fe\",\n\t\t\t\"1f3c4-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man surfing\",\n\t\t\t\"man-surfing\"\n\t\t],\n\t\tu: \"1f3c4-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f3c4-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f3c4-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f3c4-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f3c4-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f3c4-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman surfing\",\n\t\t\t\"woman-surfing\"\n\t\t],\n\t\tu: \"1f3c4-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f3c4-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f3c4-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f3c4-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f3c4-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f3c4-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rowboat\"\n\t\t],\n\t\tu: \"1f6a3\",\n\t\tv: [\n\t\t\t\"1f6a3-1f3fb\",\n\t\t\t\"1f6a3-1f3fc\",\n\t\t\t\"1f6a3-1f3fd\",\n\t\t\t\"1f6a3-1f3fe\",\n\t\t\t\"1f6a3-1f3ff\"\n\t\t],\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man rowing boat\",\n\t\t\t\"man-rowing-boat\"\n\t\t],\n\t\tu: \"1f6a3-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f6a3-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f6a3-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f6a3-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f6a3-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f6a3-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman rowing boat\",\n\t\t\t\"woman-rowing-boat\"\n\t\t],\n\t\tu: \"1f6a3-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f6a3-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f6a3-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f6a3-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f6a3-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f6a3-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"swimmer\"\n\t\t],\n\t\tu: \"1f3ca\",\n\t\tv: [\n\t\t\t\"1f3ca-1f3fb\",\n\t\t\t\"1f3ca-1f3fc\",\n\t\t\t\"1f3ca-1f3fd\",\n\t\t\t\"1f3ca-1f3fe\",\n\t\t\t\"1f3ca-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man swimming\",\n\t\t\t\"man-swimming\"\n\t\t],\n\t\tu: \"1f3ca-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f3ca-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f3ca-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f3ca-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f3ca-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f3ca-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman swimming\",\n\t\t\t\"woman-swimming\"\n\t\t],\n\t\tu: \"1f3ca-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f3ca-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f3ca-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f3ca-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f3ca-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f3ca-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person with ball\",\n\t\t\t\"person bouncing ball\"\n\t\t],\n\t\tu: \"26f9-fe0f\",\n\t\tv: [\n\t\t\t\"26f9-1f3fb\",\n\t\t\t\"26f9-1f3fc\",\n\t\t\t\"26f9-1f3fd\",\n\t\t\t\"26f9-1f3fe\",\n\t\t\t\"26f9-1f3ff\"\n\t\t],\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man bouncing ball\",\n\t\t\t\"man-bouncing-ball\"\n\t\t],\n\t\tu: \"26f9-fe0f-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"26f9-1f3fb-200d-2642-fe0f\",\n\t\t\t\"26f9-1f3fc-200d-2642-fe0f\",\n\t\t\t\"26f9-1f3fd-200d-2642-fe0f\",\n\t\t\t\"26f9-1f3fe-200d-2642-fe0f\",\n\t\t\t\"26f9-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman bouncing ball\",\n\t\t\t\"woman-bouncing-ball\"\n\t\t],\n\t\tu: \"26f9-fe0f-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"26f9-1f3fb-200d-2640-fe0f\",\n\t\t\t\"26f9-1f3fc-200d-2640-fe0f\",\n\t\t\t\"26f9-1f3fd-200d-2640-fe0f\",\n\t\t\t\"26f9-1f3fe-200d-2640-fe0f\",\n\t\t\t\"26f9-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"weight lifter\",\n\t\t\t\"person lifting weights\"\n\t\t],\n\t\tu: \"1f3cb-fe0f\",\n\t\tv: [\n\t\t\t\"1f3cb-1f3fb\",\n\t\t\t\"1f3cb-1f3fc\",\n\t\t\t\"1f3cb-1f3fd\",\n\t\t\t\"1f3cb-1f3fe\",\n\t\t\t\"1f3cb-1f3ff\"\n\t\t],\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man lifting weights\",\n\t\t\t\"man-lifting-weights\"\n\t\t],\n\t\tu: \"1f3cb-fe0f-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f3cb-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f3cb-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f3cb-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f3cb-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f3cb-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman lifting weights\",\n\t\t\t\"woman-lifting-weights\"\n\t\t],\n\t\tu: \"1f3cb-fe0f-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f3cb-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f3cb-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f3cb-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f3cb-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f3cb-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bicyclist\"\n\t\t],\n\t\tu: \"1f6b4\",\n\t\tv: [\n\t\t\t\"1f6b4-1f3fb\",\n\t\t\t\"1f6b4-1f3fc\",\n\t\t\t\"1f6b4-1f3fd\",\n\t\t\t\"1f6b4-1f3fe\",\n\t\t\t\"1f6b4-1f3ff\"\n\t\t],\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man biking\",\n\t\t\t\"man-biking\"\n\t\t],\n\t\tu: \"1f6b4-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f6b4-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f6b4-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f6b4-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f6b4-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f6b4-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman biking\",\n\t\t\t\"woman-biking\"\n\t\t],\n\t\tu: \"1f6b4-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f6b4-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f6b4-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f6b4-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f6b4-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f6b4-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mountain bicyclist\"\n\t\t],\n\t\tu: \"1f6b5\",\n\t\tv: [\n\t\t\t\"1f6b5-1f3fb\",\n\t\t\t\"1f6b5-1f3fc\",\n\t\t\t\"1f6b5-1f3fd\",\n\t\t\t\"1f6b5-1f3fe\",\n\t\t\t\"1f6b5-1f3ff\"\n\t\t],\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man mountain biking\",\n\t\t\t\"man-mountain-biking\"\n\t\t],\n\t\tu: \"1f6b5-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f6b5-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f6b5-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f6b5-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f6b5-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f6b5-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman mountain biking\",\n\t\t\t\"woman-mountain-biking\"\n\t\t],\n\t\tu: \"1f6b5-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f6b5-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f6b5-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f6b5-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f6b5-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f6b5-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person doing cartwheel\"\n\t\t],\n\t\tu: \"1f938\",\n\t\tv: [\n\t\t\t\"1f938-1f3fb\",\n\t\t\t\"1f938-1f3fc\",\n\t\t\t\"1f938-1f3fd\",\n\t\t\t\"1f938-1f3fe\",\n\t\t\t\"1f938-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man cartwheeling\",\n\t\t\t\"man-cartwheeling\"\n\t\t],\n\t\tu: \"1f938-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f938-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f938-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f938-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f938-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f938-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman cartwheeling\",\n\t\t\t\"woman-cartwheeling\"\n\t\t],\n\t\tu: \"1f938-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f938-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f938-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f938-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f938-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f938-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wrestlers\"\n\t\t],\n\t\tu: \"1f93c\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"men wrestling\",\n\t\t\t\"man-wrestling\"\n\t\t],\n\t\tu: \"1f93c-200d-2642-fe0f\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"women wrestling\",\n\t\t\t\"woman-wrestling\"\n\t\t],\n\t\tu: \"1f93c-200d-2640-fe0f\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"water polo\"\n\t\t],\n\t\tu: \"1f93d\",\n\t\tv: [\n\t\t\t\"1f93d-1f3fb\",\n\t\t\t\"1f93d-1f3fc\",\n\t\t\t\"1f93d-1f3fd\",\n\t\t\t\"1f93d-1f3fe\",\n\t\t\t\"1f93d-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man playing water polo\",\n\t\t\t\"man-playing-water-polo\"\n\t\t],\n\t\tu: \"1f93d-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f93d-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f93d-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f93d-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f93d-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f93d-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman playing water polo\",\n\t\t\t\"woman-playing-water-polo\"\n\t\t],\n\t\tu: \"1f93d-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f93d-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f93d-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f93d-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f93d-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f93d-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"handball\"\n\t\t],\n\t\tu: \"1f93e\",\n\t\tv: [\n\t\t\t\"1f93e-1f3fb\",\n\t\t\t\"1f93e-1f3fc\",\n\t\t\t\"1f93e-1f3fd\",\n\t\t\t\"1f93e-1f3fe\",\n\t\t\t\"1f93e-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man playing handball\",\n\t\t\t\"man-playing-handball\"\n\t\t],\n\t\tu: \"1f93e-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f93e-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f93e-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f93e-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f93e-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f93e-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman playing handball\",\n\t\t\t\"woman-playing-handball\"\n\t\t],\n\t\tu: \"1f93e-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f93e-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f93e-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f93e-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f93e-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f93e-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"juggling\"\n\t\t],\n\t\tu: \"1f939\",\n\t\tv: [\n\t\t\t\"1f939-1f3fb\",\n\t\t\t\"1f939-1f3fc\",\n\t\t\t\"1f939-1f3fd\",\n\t\t\t\"1f939-1f3fe\",\n\t\t\t\"1f939-1f3ff\"\n\t\t],\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man juggling\",\n\t\t\t\"man-juggling\"\n\t\t],\n\t\tu: \"1f939-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f939-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f939-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f939-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f939-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f939-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman juggling\",\n\t\t\t\"woman-juggling\"\n\t\t],\n\t\tu: \"1f939-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f939-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f939-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f939-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f939-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f939-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"person in lotus position\"\n\t\t],\n\t\tu: \"1f9d8\",\n\t\tv: [\n\t\t\t\"1f9d8-1f3fb\",\n\t\t\t\"1f9d8-1f3fc\",\n\t\t\t\"1f9d8-1f3fd\",\n\t\t\t\"1f9d8-1f3fe\",\n\t\t\t\"1f9d8-1f3ff\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man in lotus position\"\n\t\t],\n\t\tu: \"1f9d8-200d-2642-fe0f\",\n\t\tv: [\n\t\t\t\"1f9d8-1f3fb-200d-2642-fe0f\",\n\t\t\t\"1f9d8-1f3fc-200d-2642-fe0f\",\n\t\t\t\"1f9d8-1f3fd-200d-2642-fe0f\",\n\t\t\t\"1f9d8-1f3fe-200d-2642-fe0f\",\n\t\t\t\"1f9d8-1f3ff-200d-2642-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman in lotus position\"\n\t\t],\n\t\tu: \"1f9d8-200d-2640-fe0f\",\n\t\tv: [\n\t\t\t\"1f9d8-1f3fb-200d-2640-fe0f\",\n\t\t\t\"1f9d8-1f3fc-200d-2640-fe0f\",\n\t\t\t\"1f9d8-1f3fd-200d-2640-fe0f\",\n\t\t\t\"1f9d8-1f3fe-200d-2640-fe0f\",\n\t\t\t\"1f9d8-1f3ff-200d-2640-fe0f\"\n\t\t],\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bath\"\n\t\t],\n\t\tu: \"1f6c0\",\n\t\tv: [\n\t\t\t\"1f6c0-1f3fb\",\n\t\t\t\"1f6c0-1f3fc\",\n\t\t\t\"1f6c0-1f3fd\",\n\t\t\t\"1f6c0-1f3fe\",\n\t\t\t\"1f6c0-1f3ff\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sleeping accommodation\"\n\t\t],\n\t\tu: \"1f6cc\",\n\t\tv: [\n\t\t\t\"1f6cc-1f3fb\",\n\t\t\t\"1f6cc-1f3fc\",\n\t\t\t\"1f6cc-1f3fd\",\n\t\t\t\"1f6cc-1f3fe\",\n\t\t\t\"1f6cc-1f3ff\"\n\t\t],\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"people holding hands\"\n\t\t],\n\t\tu: \"1f9d1-200d-1f91d-200d-1f9d1\",\n\t\tv: [\n\t\t\t\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb\",\n\t\t\t\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fc\",\n\t\t\t\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fd\",\n\t\t\t\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fe\",\n\t\t\t\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3ff\",\n\t\t\t\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb\",\n\t\t\t\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc\",\n\t\t\t\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fd\",\n\t\t\t\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fe\",\n\t\t\t\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3ff\",\n\t\t\t\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb\",\n\t\t\t\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc\",\n\t\t\t\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd\",\n\t\t\t\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fe\",\n\t\t\t\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3ff\",\n\t\t\t\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb\",\n\t\t\t\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc\",\n\t\t\t\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd\",\n\t\t\t\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe\",\n\t\t\t\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3ff\",\n\t\t\t\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb\",\n\t\t\t\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc\",\n\t\t\t\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd\",\n\t\t\t\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe\",\n\t\t\t\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff\"\n\t\t],\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"women holding hands\",\n\t\t\t\"two women holding hands\"\n\t\t],\n\t\tu: \"1f46d\",\n\t\tv: [\n\t\t\t\"1f46d-1f3fb\",\n\t\t\t\"1f46d-1f3fc\",\n\t\t\t\"1f46d-1f3fd\",\n\t\t\t\"1f46d-1f3fe\",\n\t\t\t\"1f46d-1f3ff\",\n\t\t\t\"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fc\",\n\t\t\t\"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fd\",\n\t\t\t\"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fe\",\n\t\t\t\"1f469-1f3fb-200d-1f91d-200d-1f469-1f3ff\",\n\t\t\t\"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb\",\n\t\t\t\"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fd\",\n\t\t\t\"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fe\",\n\t\t\t\"1f469-1f3fc-200d-1f91d-200d-1f469-1f3ff\",\n\t\t\t\"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb\",\n\t\t\t\"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc\",\n\t\t\t\"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fe\",\n\t\t\t\"1f469-1f3fd-200d-1f91d-200d-1f469-1f3ff\",\n\t\t\t\"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb\",\n\t\t\t\"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc\",\n\t\t\t\"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd\",\n\t\t\t\"1f469-1f3fe-200d-1f91d-200d-1f469-1f3ff\",\n\t\t\t\"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb\",\n\t\t\t\"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc\",\n\t\t\t\"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd\",\n\t\t\t\"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe\"\n\t\t],\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"couple\",\n\t\t\t\"man and woman holding hands\",\n\t\t\t\"woman and man holding hands\"\n\t\t],\n\t\tu: \"1f46b\",\n\t\tv: [\n\t\t\t\"1f46b-1f3fb\",\n\t\t\t\"1f46b-1f3fc\",\n\t\t\t\"1f46b-1f3fd\",\n\t\t\t\"1f46b-1f3fe\",\n\t\t\t\"1f46b-1f3ff\",\n\t\t\t\"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc\",\n\t\t\t\"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd\",\n\t\t\t\"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe\",\n\t\t\t\"1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff\",\n\t\t\t\"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb\",\n\t\t\t\"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd\",\n\t\t\t\"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe\",\n\t\t\t\"1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff\",\n\t\t\t\"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb\",\n\t\t\t\"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc\",\n\t\t\t\"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe\",\n\t\t\t\"1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff\",\n\t\t\t\"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb\",\n\t\t\t\"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc\",\n\t\t\t\"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd\",\n\t\t\t\"1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff\",\n\t\t\t\"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb\",\n\t\t\t\"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc\",\n\t\t\t\"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd\",\n\t\t\t\"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"men holding hands\",\n\t\t\t\"two men holding hands\"\n\t\t],\n\t\tu: \"1f46c\",\n\t\tv: [\n\t\t\t\"1f46c-1f3fb\",\n\t\t\t\"1f46c-1f3fc\",\n\t\t\t\"1f46c-1f3fd\",\n\t\t\t\"1f46c-1f3fe\",\n\t\t\t\"1f46c-1f3ff\",\n\t\t\t\"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fc\",\n\t\t\t\"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fd\",\n\t\t\t\"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fe\",\n\t\t\t\"1f468-1f3fb-200d-1f91d-200d-1f468-1f3ff\",\n\t\t\t\"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb\",\n\t\t\t\"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fd\",\n\t\t\t\"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fe\",\n\t\t\t\"1f468-1f3fc-200d-1f91d-200d-1f468-1f3ff\",\n\t\t\t\"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb\",\n\t\t\t\"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc\",\n\t\t\t\"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fe\",\n\t\t\t\"1f468-1f3fd-200d-1f91d-200d-1f468-1f3ff\",\n\t\t\t\"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb\",\n\t\t\t\"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc\",\n\t\t\t\"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd\",\n\t\t\t\"1f468-1f3fe-200d-1f91d-200d-1f468-1f3ff\",\n\t\t\t\"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb\",\n\t\t\t\"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc\",\n\t\t\t\"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd\",\n\t\t\t\"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe\"\n\t\t],\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"kiss\",\n\t\t\t\"couplekiss\"\n\t\t],\n\t\tu: \"1f48f\",\n\t\tv: [\n\t\t\t\"1f48f-1f3fb\",\n\t\t\t\"1f48f-1f3fc\",\n\t\t\t\"1f48f-1f3fd\",\n\t\t\t\"1f48f-1f3fe\",\n\t\t\t\"1f48f-1f3ff\",\n\t\t\t\"1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc\",\n\t\t\t\"1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd\",\n\t\t\t\"1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe\",\n\t\t\t\"1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff\",\n\t\t\t\"1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb\",\n\t\t\t\"1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd\",\n\t\t\t\"1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe\",\n\t\t\t\"1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff\",\n\t\t\t\"1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb\",\n\t\t\t\"1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc\",\n\t\t\t\"1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe\",\n\t\t\t\"1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff\",\n\t\t\t\"1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb\",\n\t\t\t\"1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc\",\n\t\t\t\"1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd\",\n\t\t\t\"1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff\",\n\t\t\t\"1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb\",\n\t\t\t\"1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc\",\n\t\t\t\"1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd\",\n\t\t\t\"1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman-kiss-man\",\n\t\t\t\"kiss: woman, man\"\n\t\t],\n\t\tu: \"1f469-200d-2764-fe0f-200d-1f48b-200d-1f468\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff\"\n\t\t],\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-kiss-man\",\n\t\t\t\"kiss: man, man\"\n\t\t],\n\t\tu: \"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb\",\n\t\t\t\"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc\",\n\t\t\t\"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd\",\n\t\t\t\"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe\",\n\t\t\t\"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff\",\n\t\t\t\"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb\",\n\t\t\t\"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc\",\n\t\t\t\"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd\",\n\t\t\t\"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe\",\n\t\t\t\"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff\",\n\t\t\t\"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb\",\n\t\t\t\"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc\",\n\t\t\t\"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd\",\n\t\t\t\"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe\",\n\t\t\t\"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff\",\n\t\t\t\"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb\",\n\t\t\t\"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc\",\n\t\t\t\"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd\",\n\t\t\t\"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe\",\n\t\t\t\"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff\",\n\t\t\t\"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb\",\n\t\t\t\"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc\",\n\t\t\t\"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd\",\n\t\t\t\"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe\",\n\t\t\t\"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff\"\n\t\t],\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman-kiss-woman\",\n\t\t\t\"kiss: woman, woman\"\n\t\t],\n\t\tu: \"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff\"\n\t\t],\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"couple with heart\"\n\t\t],\n\t\tu: \"1f491\",\n\t\tv: [\n\t\t\t\"1f491-1f3fb\",\n\t\t\t\"1f491-1f3fc\",\n\t\t\t\"1f491-1f3fd\",\n\t\t\t\"1f491-1f3fe\",\n\t\t\t\"1f491-1f3ff\",\n\t\t\t\"1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3fc\",\n\t\t\t\"1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3fd\",\n\t\t\t\"1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3fe\",\n\t\t\t\"1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3ff\",\n\t\t\t\"1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3fb\",\n\t\t\t\"1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3fd\",\n\t\t\t\"1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3fe\",\n\t\t\t\"1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3ff\",\n\t\t\t\"1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3fb\",\n\t\t\t\"1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3fc\",\n\t\t\t\"1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3fe\",\n\t\t\t\"1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3ff\",\n\t\t\t\"1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3fb\",\n\t\t\t\"1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3fc\",\n\t\t\t\"1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3fd\",\n\t\t\t\"1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3ff\",\n\t\t\t\"1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fb\",\n\t\t\t\"1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fc\",\n\t\t\t\"1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fd\",\n\t\t\t\"1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fe\"\n\t\t],\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman-heart-man\",\n\t\t\t\"couple with heart: woman, man\"\n\t\t],\n\t\tu: \"1f469-200d-2764-fe0f-200d-1f468\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fb\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fc\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fd\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fe\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3ff\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fb\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fc\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fd\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fe\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3ff\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fb\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fc\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fd\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fe\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3ff\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fb\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fc\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fd\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fe\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3ff\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fb\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fc\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fd\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fe\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3ff\"\n\t\t],\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-heart-man\",\n\t\t\t\"couple with heart: man, man\"\n\t\t],\n\t\tu: \"1f468-200d-2764-fe0f-200d-1f468\",\n\t\tv: [\n\t\t\t\"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fb\",\n\t\t\t\"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fc\",\n\t\t\t\"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fd\",\n\t\t\t\"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fe\",\n\t\t\t\"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3ff\",\n\t\t\t\"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fb\",\n\t\t\t\"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fc\",\n\t\t\t\"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fd\",\n\t\t\t\"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fe\",\n\t\t\t\"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3ff\",\n\t\t\t\"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fb\",\n\t\t\t\"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fc\",\n\t\t\t\"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fd\",\n\t\t\t\"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fe\",\n\t\t\t\"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3ff\",\n\t\t\t\"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fb\",\n\t\t\t\"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fc\",\n\t\t\t\"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fd\",\n\t\t\t\"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fe\",\n\t\t\t\"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3ff\",\n\t\t\t\"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fb\",\n\t\t\t\"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fc\",\n\t\t\t\"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fd\",\n\t\t\t\"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fe\",\n\t\t\t\"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3ff\"\n\t\t],\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman-heart-woman\",\n\t\t\t\"couple with heart: woman, woman\"\n\t\t],\n\t\tu: \"1f469-200d-2764-fe0f-200d-1f469\",\n\t\tv: [\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fb\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fc\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fd\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fe\",\n\t\t\t\"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3ff\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fb\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fc\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fd\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fe\",\n\t\t\t\"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3ff\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fb\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fc\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fd\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fe\",\n\t\t\t\"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3ff\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fb\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fc\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fd\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fe\",\n\t\t\t\"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3ff\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fb\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fc\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fd\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fe\",\n\t\t\t\"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3ff\"\n\t\t],\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"family\"\n\t\t],\n\t\tu: \"1f46a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-woman-boy\",\n\t\t\t\"family: man, woman, boy\"\n\t\t],\n\t\tu: \"1f468-200d-1f469-200d-1f466\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-woman-girl\",\n\t\t\t\"family: man, woman, girl\"\n\t\t],\n\t\tu: \"1f468-200d-1f469-200d-1f467\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-woman-girl-boy\",\n\t\t\t\"family: man, woman, girl, boy\"\n\t\t],\n\t\tu: \"1f468-200d-1f469-200d-1f467-200d-1f466\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-woman-boy-boy\",\n\t\t\t\"family: man, woman, boy, boy\"\n\t\t],\n\t\tu: \"1f468-200d-1f469-200d-1f466-200d-1f466\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-woman-girl-girl\",\n\t\t\t\"family: man, woman, girl, girl\"\n\t\t],\n\t\tu: \"1f468-200d-1f469-200d-1f467-200d-1f467\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-man-boy\",\n\t\t\t\"family: man, man, boy\"\n\t\t],\n\t\tu: \"1f468-200d-1f468-200d-1f466\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-man-girl\",\n\t\t\t\"family: man, man, girl\"\n\t\t],\n\t\tu: \"1f468-200d-1f468-200d-1f467\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-man-girl-boy\",\n\t\t\t\"family: man, man, girl, boy\"\n\t\t],\n\t\tu: \"1f468-200d-1f468-200d-1f467-200d-1f466\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-man-boy-boy\",\n\t\t\t\"family: man, man, boy, boy\"\n\t\t],\n\t\tu: \"1f468-200d-1f468-200d-1f466-200d-1f466\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-man-girl-girl\",\n\t\t\t\"family: man, man, girl, girl\"\n\t\t],\n\t\tu: \"1f468-200d-1f468-200d-1f467-200d-1f467\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman-woman-boy\",\n\t\t\t\"family: woman, woman, boy\"\n\t\t],\n\t\tu: \"1f469-200d-1f469-200d-1f466\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman-woman-girl\",\n\t\t\t\"family: woman, woman, girl\"\n\t\t],\n\t\tu: \"1f469-200d-1f469-200d-1f467\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman-woman-girl-boy\",\n\t\t\t\"family: woman, woman, girl, boy\"\n\t\t],\n\t\tu: \"1f469-200d-1f469-200d-1f467-200d-1f466\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman-woman-boy-boy\",\n\t\t\t\"family: woman, woman, boy, boy\"\n\t\t],\n\t\tu: \"1f469-200d-1f469-200d-1f466-200d-1f466\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman-woman-girl-girl\",\n\t\t\t\"family: woman, woman, girl, girl\"\n\t\t],\n\t\tu: \"1f469-200d-1f469-200d-1f467-200d-1f467\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-boy\",\n\t\t\t\"family: man, boy\"\n\t\t],\n\t\tu: \"1f468-200d-1f466\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-boy-boy\",\n\t\t\t\"family: man, boy, boy\"\n\t\t],\n\t\tu: \"1f468-200d-1f466-200d-1f466\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-girl\",\n\t\t\t\"family: man, girl\"\n\t\t],\n\t\tu: \"1f468-200d-1f467\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-girl-boy\",\n\t\t\t\"family: man, girl, boy\"\n\t\t],\n\t\tu: \"1f468-200d-1f467-200d-1f466\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"man-girl-girl\",\n\t\t\t\"family: man, girl, girl\"\n\t\t],\n\t\tu: \"1f468-200d-1f467-200d-1f467\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman-boy\",\n\t\t\t\"family: woman, boy\"\n\t\t],\n\t\tu: \"1f469-200d-1f466\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman-boy-boy\",\n\t\t\t\"family: woman, boy, boy\"\n\t\t],\n\t\tu: \"1f469-200d-1f466-200d-1f466\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman-girl\",\n\t\t\t\"family: woman, girl\"\n\t\t],\n\t\tu: \"1f469-200d-1f467\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman-girl-boy\",\n\t\t\t\"family: woman, girl, boy\"\n\t\t],\n\t\tu: \"1f469-200d-1f467-200d-1f466\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"woman-girl-girl\",\n\t\t\t\"family: woman, girl, girl\"\n\t\t],\n\t\tu: \"1f469-200d-1f467-200d-1f467\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"speaking head\",\n\t\t\t\"speaking head in silhouette\"\n\t\t],\n\t\tu: \"1f5e3-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bust in silhouette\"\n\t\t],\n\t\tu: \"1f464\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"busts in silhouette\"\n\t\t],\n\t\tu: \"1f465\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"people hugging\"\n\t\t],\n\t\tu: \"1fac2\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"footprints\"\n\t\t],\n\t\tu: \"1f463\",\n\t\ta: \"0.6\"\n\t}\n];\nvar animals_nature = [\n\t{\n\t\tn: [\n\t\t\t\"monkey face\"\n\t\t],\n\t\tu: \"1f435\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"monkey\"\n\t\t],\n\t\tu: \"1f412\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"gorilla\"\n\t\t],\n\t\tu: \"1f98d\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"orangutan\"\n\t\t],\n\t\tu: \"1f9a7\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dog\",\n\t\t\t\"dog face\"\n\t\t],\n\t\tu: \"1f436\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dog\",\n\t\t\t\"dog2\"\n\t\t],\n\t\tu: \"1f415\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"guide dog\"\n\t\t],\n\t\tu: \"1f9ae\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"service dog\"\n\t\t],\n\t\tu: \"1f415-200d-1f9ba\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"poodle\"\n\t\t],\n\t\tu: \"1f429\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wolf\",\n\t\t\t\"wolf face\"\n\t\t],\n\t\tu: \"1f43a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fox face\"\n\t\t],\n\t\tu: \"1f98a\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"raccoon\"\n\t\t],\n\t\tu: \"1f99d\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cat\",\n\t\t\t\"cat face\"\n\t\t],\n\t\tu: \"1f431\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cat\",\n\t\t\t\"cat2\"\n\t\t],\n\t\tu: \"1f408\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"black cat\"\n\t\t],\n\t\tu: \"1f408-200d-2b1b\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lion face\"\n\t\t],\n\t\tu: \"1f981\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tiger\",\n\t\t\t\"tiger face\"\n\t\t],\n\t\tu: \"1f42f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tiger\",\n\t\t\t\"tiger2\"\n\t\t],\n\t\tu: \"1f405\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"leopard\"\n\t\t],\n\t\tu: \"1f406\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"horse\",\n\t\t\t\"horse face\"\n\t\t],\n\t\tu: \"1f434\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"horse\",\n\t\t\t\"racehorse\"\n\t\t],\n\t\tu: \"1f40e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"unicorn face\"\n\t\t],\n\t\tu: \"1f984\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"zebra face\"\n\t\t],\n\t\tu: \"1f993\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"deer\"\n\t\t],\n\t\tu: \"1f98c\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bison\"\n\t\t],\n\t\tu: \"1f9ac\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cow\",\n\t\t\t\"cow face\"\n\t\t],\n\t\tu: \"1f42e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ox\"\n\t\t],\n\t\tu: \"1f402\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"water buffalo\"\n\t\t],\n\t\tu: \"1f403\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cow\",\n\t\t\t\"cow2\"\n\t\t],\n\t\tu: \"1f404\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pig\",\n\t\t\t\"pig face\"\n\t\t],\n\t\tu: \"1f437\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pig\",\n\t\t\t\"pig2\"\n\t\t],\n\t\tu: \"1f416\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"boar\"\n\t\t],\n\t\tu: \"1f417\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pig nose\"\n\t\t],\n\t\tu: \"1f43d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ram\"\n\t\t],\n\t\tu: \"1f40f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sheep\"\n\t\t],\n\t\tu: \"1f411\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"goat\"\n\t\t],\n\t\tu: \"1f410\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dromedary camel\"\n\t\t],\n\t\tu: \"1f42a\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"camel\",\n\t\t\t\"bactrian camel\"\n\t\t],\n\t\tu: \"1f42b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"llama\"\n\t\t],\n\t\tu: \"1f999\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"giraffe face\"\n\t\t],\n\t\tu: \"1f992\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"elephant\"\n\t\t],\n\t\tu: \"1f418\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mammoth\"\n\t\t],\n\t\tu: \"1f9a3\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rhinoceros\"\n\t\t],\n\t\tu: \"1f98f\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hippopotamus\"\n\t\t],\n\t\tu: \"1f99b\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mouse\",\n\t\t\t\"mouse face\"\n\t\t],\n\t\tu: \"1f42d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mouse\",\n\t\t\t\"mouse2\"\n\t\t],\n\t\tu: \"1f401\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rat\"\n\t\t],\n\t\tu: \"1f400\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hamster\",\n\t\t\t\"hamster face\"\n\t\t],\n\t\tu: \"1f439\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rabbit\",\n\t\t\t\"rabbit face\"\n\t\t],\n\t\tu: \"1f430\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rabbit\",\n\t\t\t\"rabbit2\"\n\t\t],\n\t\tu: \"1f407\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"chipmunk\"\n\t\t],\n\t\tu: \"1f43f-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"beaver\"\n\t\t],\n\t\tu: \"1f9ab\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hedgehog\"\n\t\t],\n\t\tu: \"1f994\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bat\"\n\t\t],\n\t\tu: \"1f987\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bear\",\n\t\t\t\"bear face\"\n\t\t],\n\t\tu: \"1f43b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"polar bear\"\n\t\t],\n\t\tu: \"1f43b-200d-2744-fe0f\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"koala\"\n\t\t],\n\t\tu: \"1f428\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"panda face\"\n\t\t],\n\t\tu: \"1f43c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sloth\"\n\t\t],\n\t\tu: \"1f9a5\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"otter\"\n\t\t],\n\t\tu: \"1f9a6\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"skunk\"\n\t\t],\n\t\tu: \"1f9a8\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"kangaroo\"\n\t\t],\n\t\tu: \"1f998\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"badger\"\n\t\t],\n\t\tu: \"1f9a1\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"feet\",\n\t\t\t\"paw prints\"\n\t\t],\n\t\tu: \"1f43e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"turkey\"\n\t\t],\n\t\tu: \"1f983\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"chicken\"\n\t\t],\n\t\tu: \"1f414\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rooster\"\n\t\t],\n\t\tu: \"1f413\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hatching chick\"\n\t\t],\n\t\tu: \"1f423\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"baby chick\"\n\t\t],\n\t\tu: \"1f424\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hatched chick\",\n\t\t\t\"front-facing baby chick\"\n\t\t],\n\t\tu: \"1f425\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bird\"\n\t\t],\n\t\tu: \"1f426\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"penguin\"\n\t\t],\n\t\tu: \"1f427\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dove\",\n\t\t\t\"dove of peace\"\n\t\t],\n\t\tu: \"1f54a-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"eagle\"\n\t\t],\n\t\tu: \"1f985\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"duck\"\n\t\t],\n\t\tu: \"1f986\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"swan\"\n\t\t],\n\t\tu: \"1f9a2\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"owl\"\n\t\t],\n\t\tu: \"1f989\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dodo\"\n\t\t],\n\t\tu: \"1f9a4\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"feather\"\n\t\t],\n\t\tu: \"1fab6\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flamingo\"\n\t\t],\n\t\tu: \"1f9a9\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"peacock\"\n\t\t],\n\t\tu: \"1f99a\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"parrot\"\n\t\t],\n\t\tu: \"1f99c\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"frog\",\n\t\t\t\"frog face\"\n\t\t],\n\t\tu: \"1f438\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"crocodile\"\n\t\t],\n\t\tu: \"1f40a\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"turtle\"\n\t\t],\n\t\tu: \"1f422\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lizard\"\n\t\t],\n\t\tu: \"1f98e\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"snake\"\n\t\t],\n\t\tu: \"1f40d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dragon face\"\n\t\t],\n\t\tu: \"1f432\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dragon\"\n\t\t],\n\t\tu: \"1f409\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sauropod\"\n\t\t],\n\t\tu: \"1f995\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"t-rex\"\n\t\t],\n\t\tu: \"1f996\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"whale\",\n\t\t\t\"spouting whale\"\n\t\t],\n\t\tu: \"1f433\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"whale\",\n\t\t\t\"whale2\"\n\t\t],\n\t\tu: \"1f40b\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dolphin\",\n\t\t\t\"flipper\"\n\t\t],\n\t\tu: \"1f42c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"seal\"\n\t\t],\n\t\tu: \"1f9ad\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fish\"\n\t\t],\n\t\tu: \"1f41f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tropical fish\"\n\t\t],\n\t\tu: \"1f420\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"blowfish\"\n\t\t],\n\t\tu: \"1f421\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shark\"\n\t\t],\n\t\tu: \"1f988\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"octopus\"\n\t\t],\n\t\tu: \"1f419\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shell\",\n\t\t\t\"spiral shell\"\n\t\t],\n\t\tu: \"1f41a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"coral\"\n\t\t],\n\t\tu: \"1fab8\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"snail\"\n\t\t],\n\t\tu: \"1f40c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"butterfly\"\n\t\t],\n\t\tu: \"1f98b\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bug\"\n\t\t],\n\t\tu: \"1f41b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ant\"\n\t\t],\n\t\tu: \"1f41c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bee\",\n\t\t\t\"honeybee\"\n\t\t],\n\t\tu: \"1f41d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"beetle\"\n\t\t],\n\t\tu: \"1fab2\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ladybug\",\n\t\t\t\"lady beetle\"\n\t\t],\n\t\tu: \"1f41e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cricket\"\n\t\t],\n\t\tu: \"1f997\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cockroach\"\n\t\t],\n\t\tu: \"1fab3\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"spider\"\n\t\t],\n\t\tu: \"1f577-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"spider web\"\n\t\t],\n\t\tu: \"1f578-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"scorpion\"\n\t\t],\n\t\tu: \"1f982\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mosquito\"\n\t\t],\n\t\tu: \"1f99f\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fly\"\n\t\t],\n\t\tu: \"1fab0\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"worm\"\n\t\t],\n\t\tu: \"1fab1\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"microbe\"\n\t\t],\n\t\tu: \"1f9a0\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bouquet\"\n\t\t],\n\t\tu: \"1f490\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cherry blossom\"\n\t\t],\n\t\tu: \"1f338\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"white flower\"\n\t\t],\n\t\tu: \"1f4ae\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lotus\"\n\t\t],\n\t\tu: \"1fab7\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rosette\"\n\t\t],\n\t\tu: \"1f3f5-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rose\"\n\t\t],\n\t\tu: \"1f339\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wilted flower\"\n\t\t],\n\t\tu: \"1f940\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hibiscus\"\n\t\t],\n\t\tu: \"1f33a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sunflower\"\n\t\t],\n\t\tu: \"1f33b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"blossom\"\n\t\t],\n\t\tu: \"1f33c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tulip\"\n\t\t],\n\t\tu: \"1f337\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"seedling\"\n\t\t],\n\t\tu: \"1f331\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"potted plant\"\n\t\t],\n\t\tu: \"1fab4\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"evergreen tree\"\n\t\t],\n\t\tu: \"1f332\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"deciduous tree\"\n\t\t],\n\t\tu: \"1f333\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"palm tree\"\n\t\t],\n\t\tu: \"1f334\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cactus\"\n\t\t],\n\t\tu: \"1f335\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ear of rice\"\n\t\t],\n\t\tu: \"1f33e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"herb\"\n\t\t],\n\t\tu: \"1f33f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shamrock\"\n\t\t],\n\t\tu: \"2618-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"four leaf clover\"\n\t\t],\n\t\tu: \"1f340\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"maple leaf\"\n\t\t],\n\t\tu: \"1f341\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fallen leaf\"\n\t\t],\n\t\tu: \"1f342\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"leaves\",\n\t\t\t\"leaf fluttering in wind\"\n\t\t],\n\t\tu: \"1f343\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"empty nest\"\n\t\t],\n\t\tu: \"1fab9\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"nest with eggs\"\n\t\t],\n\t\tu: \"1faba\",\n\t\ta: \"14.0\"\n\t}\n];\nvar food_drink = [\n\t{\n\t\tn: [\n\t\t\t\"grapes\"\n\t\t],\n\t\tu: \"1f347\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"melon\"\n\t\t],\n\t\tu: \"1f348\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"watermelon\"\n\t\t],\n\t\tu: \"1f349\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tangerine\"\n\t\t],\n\t\tu: \"1f34a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lemon\"\n\t\t],\n\t\tu: \"1f34b\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"banana\"\n\t\t],\n\t\tu: \"1f34c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pineapple\"\n\t\t],\n\t\tu: \"1f34d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mango\"\n\t\t],\n\t\tu: \"1f96d\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"apple\",\n\t\t\t\"red apple\"\n\t\t],\n\t\tu: \"1f34e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"green apple\"\n\t\t],\n\t\tu: \"1f34f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pear\"\n\t\t],\n\t\tu: \"1f350\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"peach\"\n\t\t],\n\t\tu: \"1f351\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cherries\"\n\t\t],\n\t\tu: \"1f352\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"strawberry\"\n\t\t],\n\t\tu: \"1f353\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"blueberries\"\n\t\t],\n\t\tu: \"1fad0\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"kiwifruit\"\n\t\t],\n\t\tu: \"1f95d\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tomato\"\n\t\t],\n\t\tu: \"1f345\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"olive\"\n\t\t],\n\t\tu: \"1fad2\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"coconut\"\n\t\t],\n\t\tu: \"1f965\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"avocado\"\n\t\t],\n\t\tu: \"1f951\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"eggplant\",\n\t\t\t\"aubergine\"\n\t\t],\n\t\tu: \"1f346\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"potato\"\n\t\t],\n\t\tu: \"1f954\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"carrot\"\n\t\t],\n\t\tu: \"1f955\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"corn\",\n\t\t\t\"ear of maize\"\n\t\t],\n\t\tu: \"1f33d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hot pepper\"\n\t\t],\n\t\tu: \"1f336-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bell pepper\"\n\t\t],\n\t\tu: \"1fad1\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cucumber\"\n\t\t],\n\t\tu: \"1f952\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"leafy green\"\n\t\t],\n\t\tu: \"1f96c\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"broccoli\"\n\t\t],\n\t\tu: \"1f966\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"garlic\"\n\t\t],\n\t\tu: \"1f9c4\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"onion\"\n\t\t],\n\t\tu: \"1f9c5\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mushroom\"\n\t\t],\n\t\tu: \"1f344\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"peanuts\"\n\t\t],\n\t\tu: \"1f95c\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"beans\"\n\t\t],\n\t\tu: \"1fad8\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"chestnut\"\n\t\t],\n\t\tu: \"1f330\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bread\"\n\t\t],\n\t\tu: \"1f35e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"croissant\"\n\t\t],\n\t\tu: \"1f950\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"baguette bread\"\n\t\t],\n\t\tu: \"1f956\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flatbread\"\n\t\t],\n\t\tu: \"1fad3\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pretzel\"\n\t\t],\n\t\tu: \"1f968\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bagel\"\n\t\t],\n\t\tu: \"1f96f\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pancakes\"\n\t\t],\n\t\tu: \"1f95e\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"waffle\"\n\t\t],\n\t\tu: \"1f9c7\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cheese wedge\"\n\t\t],\n\t\tu: \"1f9c0\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"meat on bone\"\n\t\t],\n\t\tu: \"1f356\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"poultry leg\"\n\t\t],\n\t\tu: \"1f357\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cut of meat\"\n\t\t],\n\t\tu: \"1f969\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bacon\"\n\t\t],\n\t\tu: \"1f953\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hamburger\"\n\t\t],\n\t\tu: \"1f354\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fries\",\n\t\t\t\"french fries\"\n\t\t],\n\t\tu: \"1f35f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pizza\",\n\t\t\t\"slice of pizza\"\n\t\t],\n\t\tu: \"1f355\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hotdog\",\n\t\t\t\"hot dog\"\n\t\t],\n\t\tu: \"1f32d\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sandwich\"\n\t\t],\n\t\tu: \"1f96a\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"taco\"\n\t\t],\n\t\tu: \"1f32e\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"burrito\"\n\t\t],\n\t\tu: \"1f32f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tamale\"\n\t\t],\n\t\tu: \"1fad4\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"stuffed flatbread\"\n\t\t],\n\t\tu: \"1f959\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"falafel\"\n\t\t],\n\t\tu: \"1f9c6\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"egg\"\n\t\t],\n\t\tu: \"1f95a\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cooking\",\n\t\t\t\"fried egg\"\n\t\t],\n\t\tu: \"1f373\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shallow pan of food\"\n\t\t],\n\t\tu: \"1f958\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"stew\",\n\t\t\t\"pot of food\"\n\t\t],\n\t\tu: \"1f372\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fondue\"\n\t\t],\n\t\tu: \"1fad5\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bowl with spoon\"\n\t\t],\n\t\tu: \"1f963\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"green salad\"\n\t\t],\n\t\tu: \"1f957\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"popcorn\"\n\t\t],\n\t\tu: \"1f37f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"butter\"\n\t\t],\n\t\tu: \"1f9c8\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"salt\",\n\t\t\t\"salt shaker\"\n\t\t],\n\t\tu: \"1f9c2\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"canned food\"\n\t\t],\n\t\tu: \"1f96b\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bento\",\n\t\t\t\"bento box\"\n\t\t],\n\t\tu: \"1f371\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rice cracker\"\n\t\t],\n\t\tu: \"1f358\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rice ball\"\n\t\t],\n\t\tu: \"1f359\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rice\",\n\t\t\t\"cooked rice\"\n\t\t],\n\t\tu: \"1f35a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"curry\",\n\t\t\t\"curry and rice\"\n\t\t],\n\t\tu: \"1f35b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ramen\",\n\t\t\t\"steaming bowl\"\n\t\t],\n\t\tu: \"1f35c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"spaghetti\"\n\t\t],\n\t\tu: \"1f35d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sweet potato\",\n\t\t\t\"roasted sweet potato\"\n\t\t],\n\t\tu: \"1f360\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"oden\"\n\t\t],\n\t\tu: \"1f362\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sushi\"\n\t\t],\n\t\tu: \"1f363\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fried shrimp\"\n\t\t],\n\t\tu: \"1f364\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fish cake\",\n\t\t\t\"fish cake with swirl design\"\n\t\t],\n\t\tu: \"1f365\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"moon cake\"\n\t\t],\n\t\tu: \"1f96e\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dango\"\n\t\t],\n\t\tu: \"1f361\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dumpling\"\n\t\t],\n\t\tu: \"1f95f\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fortune cookie\"\n\t\t],\n\t\tu: \"1f960\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"takeout box\"\n\t\t],\n\t\tu: \"1f961\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"crab\"\n\t\t],\n\t\tu: \"1f980\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lobster\"\n\t\t],\n\t\tu: \"1f99e\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shrimp\"\n\t\t],\n\t\tu: \"1f990\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"squid\"\n\t\t],\n\t\tu: \"1f991\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"oyster\"\n\t\t],\n\t\tu: \"1f9aa\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"icecream\",\n\t\t\t\"soft ice cream\"\n\t\t],\n\t\tu: \"1f366\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shaved ice\"\n\t\t],\n\t\tu: \"1f367\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ice cream\"\n\t\t],\n\t\tu: \"1f368\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"doughnut\"\n\t\t],\n\t\tu: \"1f369\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cookie\"\n\t\t],\n\t\tu: \"1f36a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"birthday\",\n\t\t\t\"birthday cake\"\n\t\t],\n\t\tu: \"1f382\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cake\",\n\t\t\t\"shortcake\"\n\t\t],\n\t\tu: \"1f370\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cupcake\"\n\t\t],\n\t\tu: \"1f9c1\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pie\"\n\t\t],\n\t\tu: \"1f967\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"chocolate bar\"\n\t\t],\n\t\tu: \"1f36b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"candy\"\n\t\t],\n\t\tu: \"1f36c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lollipop\"\n\t\t],\n\t\tu: \"1f36d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"custard\"\n\t\t],\n\t\tu: \"1f36e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"honey pot\"\n\t\t],\n\t\tu: \"1f36f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"baby bottle\"\n\t\t],\n\t\tu: \"1f37c\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"glass of milk\"\n\t\t],\n\t\tu: \"1f95b\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"coffee\",\n\t\t\t\"hot beverage\"\n\t\t],\n\t\tu: \"2615\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"teapot\"\n\t\t],\n\t\tu: \"1fad6\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tea\",\n\t\t\t\"teacup without handle\"\n\t\t],\n\t\tu: \"1f375\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sake\",\n\t\t\t\"sake bottle and cup\"\n\t\t],\n\t\tu: \"1f376\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"champagne\",\n\t\t\t\"bottle with popping cork\"\n\t\t],\n\t\tu: \"1f37e\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wine glass\"\n\t\t],\n\t\tu: \"1f377\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cocktail\",\n\t\t\t\"cocktail glass\"\n\t\t],\n\t\tu: \"1f378\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tropical drink\"\n\t\t],\n\t\tu: \"1f379\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"beer\",\n\t\t\t\"beer mug\"\n\t\t],\n\t\tu: \"1f37a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"beers\",\n\t\t\t\"clinking beer mugs\"\n\t\t],\n\t\tu: \"1f37b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clinking glasses\"\n\t\t],\n\t\tu: \"1f942\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tumbler glass\"\n\t\t],\n\t\tu: \"1f943\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pouring liquid\"\n\t\t],\n\t\tu: \"1fad7\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cup with straw\"\n\t\t],\n\t\tu: \"1f964\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bubble tea\"\n\t\t],\n\t\tu: \"1f9cb\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"beverage box\"\n\t\t],\n\t\tu: \"1f9c3\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mate drink\"\n\t\t],\n\t\tu: \"1f9c9\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ice cube\"\n\t\t],\n\t\tu: \"1f9ca\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"chopsticks\"\n\t\t],\n\t\tu: \"1f962\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"knife fork plate\",\n\t\t\t\"fork and knife with plate\"\n\t\t],\n\t\tu: \"1f37d-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fork and knife\"\n\t\t],\n\t\tu: \"1f374\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"spoon\"\n\t\t],\n\t\tu: \"1f944\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hocho\",\n\t\t\t\"knife\"\n\t\t],\n\t\tu: \"1f52a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"jar\"\n\t\t],\n\t\tu: \"1fad9\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"amphora\"\n\t\t],\n\t\tu: \"1f3fa\",\n\t\ta: \"1.0\"\n\t}\n];\nvar travel_places = [\n\t{\n\t\tn: [\n\t\t\t\"earth africa\",\n\t\t\t\"earth globe europe-africa\"\n\t\t],\n\t\tu: \"1f30d\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"earth americas\",\n\t\t\t\"earth globe americas\"\n\t\t],\n\t\tu: \"1f30e\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"earth asia\",\n\t\t\t\"earth globe asia-australia\"\n\t\t],\n\t\tu: \"1f30f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"globe with meridians\"\n\t\t],\n\t\tu: \"1f310\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"world map\"\n\t\t],\n\t\tu: \"1f5fa-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"japan\",\n\t\t\t\"silhouette of japan\"\n\t\t],\n\t\tu: \"1f5fe\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"compass\"\n\t\t],\n\t\tu: \"1f9ed\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"snow-capped mountain\",\n\t\t\t\"snow capped mountain\"\n\t\t],\n\t\tu: \"1f3d4-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mountain\"\n\t\t],\n\t\tu: \"26f0-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"volcano\"\n\t\t],\n\t\tu: \"1f30b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mount fuji\"\n\t\t],\n\t\tu: \"1f5fb\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"camping\"\n\t\t],\n\t\tu: \"1f3d5-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"beach with umbrella\"\n\t\t],\n\t\tu: \"1f3d6-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"desert\"\n\t\t],\n\t\tu: \"1f3dc-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"desert island\"\n\t\t],\n\t\tu: \"1f3dd-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"national park\"\n\t\t],\n\t\tu: \"1f3de-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"stadium\"\n\t\t],\n\t\tu: \"1f3df-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"classical building\"\n\t\t],\n\t\tu: \"1f3db-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"building construction\"\n\t\t],\n\t\tu: \"1f3d7-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"brick\",\n\t\t\t\"bricks\"\n\t\t],\n\t\tu: \"1f9f1\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rock\"\n\t\t],\n\t\tu: \"1faa8\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wood\"\n\t\t],\n\t\tu: \"1fab5\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hut\"\n\t\t],\n\t\tu: \"1f6d6\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"houses\",\n\t\t\t\"house buildings\"\n\t\t],\n\t\tu: \"1f3d8-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"derelict house\",\n\t\t\t\"derelict house building\"\n\t\t],\n\t\tu: \"1f3da-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"house\",\n\t\t\t\"house building\"\n\t\t],\n\t\tu: \"1f3e0\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"house with garden\"\n\t\t],\n\t\tu: \"1f3e1\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"office\",\n\t\t\t\"office building\"\n\t\t],\n\t\tu: \"1f3e2\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"post office\",\n\t\t\t\"japanese post office\"\n\t\t],\n\t\tu: \"1f3e3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"european post office\"\n\t\t],\n\t\tu: \"1f3e4\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hospital\"\n\t\t],\n\t\tu: \"1f3e5\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bank\"\n\t\t],\n\t\tu: \"1f3e6\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hotel\"\n\t\t],\n\t\tu: \"1f3e8\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"love hotel\"\n\t\t],\n\t\tu: \"1f3e9\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"convenience store\"\n\t\t],\n\t\tu: \"1f3ea\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"school\"\n\t\t],\n\t\tu: \"1f3eb\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"department store\"\n\t\t],\n\t\tu: \"1f3ec\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"factory\"\n\t\t],\n\t\tu: \"1f3ed\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"japanese castle\"\n\t\t],\n\t\tu: \"1f3ef\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"european castle\"\n\t\t],\n\t\tu: \"1f3f0\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wedding\"\n\t\t],\n\t\tu: \"1f492\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tokyo tower\"\n\t\t],\n\t\tu: \"1f5fc\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"statue of liberty\"\n\t\t],\n\t\tu: \"1f5fd\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"church\"\n\t\t],\n\t\tu: \"26ea\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mosque\"\n\t\t],\n\t\tu: \"1f54c\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hindu temple\"\n\t\t],\n\t\tu: \"1f6d5\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"synagogue\"\n\t\t],\n\t\tu: \"1f54d\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shinto shrine\"\n\t\t],\n\t\tu: \"26e9-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"kaaba\"\n\t\t],\n\t\tu: \"1f54b\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fountain\"\n\t\t],\n\t\tu: \"26f2\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tent\"\n\t\t],\n\t\tu: \"26fa\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"foggy\"\n\t\t],\n\t\tu: \"1f301\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"night with stars\"\n\t\t],\n\t\tu: \"1f303\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cityscape\"\n\t\t],\n\t\tu: \"1f3d9-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sunrise over mountains\"\n\t\t],\n\t\tu: \"1f304\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sunrise\"\n\t\t],\n\t\tu: \"1f305\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"city sunset\",\n\t\t\t\"cityscape at dusk\"\n\t\t],\n\t\tu: \"1f306\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"city sunrise\",\n\t\t\t\"sunset over buildings\"\n\t\t],\n\t\tu: \"1f307\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bridge at night\"\n\t\t],\n\t\tu: \"1f309\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hotsprings\",\n\t\t\t\"hot springs\"\n\t\t],\n\t\tu: \"2668-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"carousel horse\"\n\t\t],\n\t\tu: \"1f3a0\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"playground slide\"\n\t\t],\n\t\tu: \"1f6dd\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ferris wheel\"\n\t\t],\n\t\tu: \"1f3a1\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"roller coaster\"\n\t\t],\n\t\tu: \"1f3a2\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"barber\",\n\t\t\t\"barber pole\"\n\t\t],\n\t\tu: \"1f488\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"circus tent\"\n\t\t],\n\t\tu: \"1f3aa\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"steam locomotive\"\n\t\t],\n\t\tu: \"1f682\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"railway car\"\n\t\t],\n\t\tu: \"1f683\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"high-speed train\",\n\t\t\t\"bullettrain side\"\n\t\t],\n\t\tu: \"1f684\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bullettrain front\",\n\t\t\t\"high-speed train with bullet nose\"\n\t\t],\n\t\tu: \"1f685\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"train\",\n\t\t\t\"train2\"\n\t\t],\n\t\tu: \"1f686\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"metro\"\n\t\t],\n\t\tu: \"1f687\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"light rail\"\n\t\t],\n\t\tu: \"1f688\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"station\"\n\t\t],\n\t\tu: \"1f689\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tram\"\n\t\t],\n\t\tu: \"1f68a\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"monorail\"\n\t\t],\n\t\tu: \"1f69d\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mountain railway\"\n\t\t],\n\t\tu: \"1f69e\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"train\",\n\t\t\t\"tram car\"\n\t\t],\n\t\tu: \"1f68b\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bus\"\n\t\t],\n\t\tu: \"1f68c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"oncoming bus\"\n\t\t],\n\t\tu: \"1f68d\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"trolleybus\"\n\t\t],\n\t\tu: \"1f68e\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"minibus\"\n\t\t],\n\t\tu: \"1f690\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ambulance\"\n\t\t],\n\t\tu: \"1f691\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fire engine\"\n\t\t],\n\t\tu: \"1f692\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"police car\"\n\t\t],\n\t\tu: \"1f693\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"oncoming police car\"\n\t\t],\n\t\tu: \"1f694\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"taxi\"\n\t\t],\n\t\tu: \"1f695\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"oncoming taxi\"\n\t\t],\n\t\tu: \"1f696\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"car\",\n\t\t\t\"red car\",\n\t\t\t\"automobile\"\n\t\t],\n\t\tu: \"1f697\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"oncoming automobile\"\n\t\t],\n\t\tu: \"1f698\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"blue car\",\n\t\t\t\"recreational vehicle\"\n\t\t],\n\t\tu: \"1f699\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pickup truck\"\n\t\t],\n\t\tu: \"1f6fb\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"truck\",\n\t\t\t\"delivery truck\"\n\t\t],\n\t\tu: \"1f69a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"articulated lorry\"\n\t\t],\n\t\tu: \"1f69b\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tractor\"\n\t\t],\n\t\tu: \"1f69c\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"racing car\"\n\t\t],\n\t\tu: \"1f3ce-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"motorcycle\",\n\t\t\t\"racing motorcycle\"\n\t\t],\n\t\tu: \"1f3cd-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"motor scooter\"\n\t\t],\n\t\tu: \"1f6f5\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"manual wheelchair\"\n\t\t],\n\t\tu: \"1f9bd\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"motorized wheelchair\"\n\t\t],\n\t\tu: \"1f9bc\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"auto rickshaw\"\n\t\t],\n\t\tu: \"1f6fa\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bike\",\n\t\t\t\"bicycle\"\n\t\t],\n\t\tu: \"1f6b2\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"scooter\"\n\t\t],\n\t\tu: \"1f6f4\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"skateboard\"\n\t\t],\n\t\tu: \"1f6f9\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"roller skate\"\n\t\t],\n\t\tu: \"1f6fc\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"busstop\",\n\t\t\t\"bus stop\"\n\t\t],\n\t\tu: \"1f68f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"motorway\"\n\t\t],\n\t\tu: \"1f6e3-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"railway track\"\n\t\t],\n\t\tu: \"1f6e4-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"oil drum\"\n\t\t],\n\t\tu: \"1f6e2-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fuelpump\",\n\t\t\t\"fuel pump\"\n\t\t],\n\t\tu: \"26fd\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wheel\"\n\t\t],\n\t\tu: \"1f6de\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rotating light\",\n\t\t\t\"police cars revolving light\"\n\t\t],\n\t\tu: \"1f6a8\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"traffic light\",\n\t\t\t\"horizontal traffic light\"\n\t\t],\n\t\tu: \"1f6a5\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"vertical traffic light\"\n\t\t],\n\t\tu: \"1f6a6\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"octagonal sign\"\n\t\t],\n\t\tu: \"1f6d1\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"construction\",\n\t\t\t\"construction sign\"\n\t\t],\n\t\tu: \"1f6a7\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"anchor\"\n\t\t],\n\t\tu: \"2693\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ring buoy\"\n\t\t],\n\t\tu: \"1f6df\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"boat\",\n\t\t\t\"sailboat\"\n\t\t],\n\t\tu: \"26f5\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"canoe\"\n\t\t],\n\t\tu: \"1f6f6\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"speedboat\"\n\t\t],\n\t\tu: \"1f6a4\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"passenger ship\"\n\t\t],\n\t\tu: \"1f6f3-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ferry\"\n\t\t],\n\t\tu: \"26f4-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"motor boat\"\n\t\t],\n\t\tu: \"1f6e5-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ship\"\n\t\t],\n\t\tu: \"1f6a2\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"airplane\"\n\t\t],\n\t\tu: \"2708-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"small airplane\"\n\t\t],\n\t\tu: \"1f6e9-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"airplane departure\"\n\t\t],\n\t\tu: \"1f6eb\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"airplane arriving\"\n\t\t],\n\t\tu: \"1f6ec\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"parachute\"\n\t\t],\n\t\tu: \"1fa82\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"seat\"\n\t\t],\n\t\tu: \"1f4ba\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"helicopter\"\n\t\t],\n\t\tu: \"1f681\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"suspension railway\"\n\t\t],\n\t\tu: \"1f69f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mountain cableway\"\n\t\t],\n\t\tu: \"1f6a0\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"aerial tramway\"\n\t\t],\n\t\tu: \"1f6a1\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"satellite\"\n\t\t],\n\t\tu: \"1f6f0-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rocket\"\n\t\t],\n\t\tu: \"1f680\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flying saucer\"\n\t\t],\n\t\tu: \"1f6f8\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bellhop bell\"\n\t\t],\n\t\tu: \"1f6ce-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"luggage\"\n\t\t],\n\t\tu: \"1f9f3\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hourglass\"\n\t\t],\n\t\tu: \"231b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hourglass flowing sand\",\n\t\t\t\"hourglass with flowing sand\"\n\t\t],\n\t\tu: \"23f3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"watch\"\n\t\t],\n\t\tu: \"231a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"alarm clock\"\n\t\t],\n\t\tu: \"23f0\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"stopwatch\"\n\t\t],\n\t\tu: \"23f1-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"timer clock\"\n\t\t],\n\t\tu: \"23f2-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mantelpiece clock\"\n\t\t],\n\t\tu: \"1f570-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock12\",\n\t\t\t\"clock face twelve oclock\"\n\t\t],\n\t\tu: \"1f55b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock1230\",\n\t\t\t\"clock face twelve-thirty\"\n\t\t],\n\t\tu: \"1f567\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock1\",\n\t\t\t\"clock face one oclock\"\n\t\t],\n\t\tu: \"1f550\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock130\",\n\t\t\t\"clock face one-thirty\"\n\t\t],\n\t\tu: \"1f55c\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock2\",\n\t\t\t\"clock face two oclock\"\n\t\t],\n\t\tu: \"1f551\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock230\",\n\t\t\t\"clock face two-thirty\"\n\t\t],\n\t\tu: \"1f55d\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock3\",\n\t\t\t\"clock face three oclock\"\n\t\t],\n\t\tu: \"1f552\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock330\",\n\t\t\t\"clock face three-thirty\"\n\t\t],\n\t\tu: \"1f55e\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock4\",\n\t\t\t\"clock face four oclock\"\n\t\t],\n\t\tu: \"1f553\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock430\",\n\t\t\t\"clock face four-thirty\"\n\t\t],\n\t\tu: \"1f55f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock5\",\n\t\t\t\"clock face five oclock\"\n\t\t],\n\t\tu: \"1f554\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock530\",\n\t\t\t\"clock face five-thirty\"\n\t\t],\n\t\tu: \"1f560\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock6\",\n\t\t\t\"clock face six oclock\"\n\t\t],\n\t\tu: \"1f555\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock630\",\n\t\t\t\"clock face six-thirty\"\n\t\t],\n\t\tu: \"1f561\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock7\",\n\t\t\t\"clock face seven oclock\"\n\t\t],\n\t\tu: \"1f556\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock730\",\n\t\t\t\"clock face seven-thirty\"\n\t\t],\n\t\tu: \"1f562\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock8\",\n\t\t\t\"clock face eight oclock\"\n\t\t],\n\t\tu: \"1f557\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock830\",\n\t\t\t\"clock face eight-thirty\"\n\t\t],\n\t\tu: \"1f563\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock9\",\n\t\t\t\"clock face nine oclock\"\n\t\t],\n\t\tu: \"1f558\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock930\",\n\t\t\t\"clock face nine-thirty\"\n\t\t],\n\t\tu: \"1f564\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock10\",\n\t\t\t\"clock face ten oclock\"\n\t\t],\n\t\tu: \"1f559\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock1030\",\n\t\t\t\"clock face ten-thirty\"\n\t\t],\n\t\tu: \"1f565\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock11\",\n\t\t\t\"clock face eleven oclock\"\n\t\t],\n\t\tu: \"1f55a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clock1130\",\n\t\t\t\"clock face eleven-thirty\"\n\t\t],\n\t\tu: \"1f566\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"new moon\",\n\t\t\t\"new moon symbol\"\n\t\t],\n\t\tu: \"1f311\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"waxing crescent moon\",\n\t\t\t\"waxing crescent moon symbol\"\n\t\t],\n\t\tu: \"1f312\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"first quarter moon\",\n\t\t\t\"first quarter moon symbol\"\n\t\t],\n\t\tu: \"1f313\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"moon\",\n\t\t\t\"waxing gibbous moon\",\n\t\t\t\"waxing gibbous moon symbol\"\n\t\t],\n\t\tu: \"1f314\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"full moon\",\n\t\t\t\"full moon symbol\"\n\t\t],\n\t\tu: \"1f315\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"waning gibbous moon\",\n\t\t\t\"waning gibbous moon symbol\"\n\t\t],\n\t\tu: \"1f316\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"last quarter moon\",\n\t\t\t\"last quarter moon symbol\"\n\t\t],\n\t\tu: \"1f317\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"waning crescent moon\",\n\t\t\t\"waning crescent moon symbol\"\n\t\t],\n\t\tu: \"1f318\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"crescent moon\"\n\t\t],\n\t\tu: \"1f319\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"new moon with face\"\n\t\t],\n\t\tu: \"1f31a\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"first quarter moon with face\"\n\t\t],\n\t\tu: \"1f31b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"last quarter moon with face\"\n\t\t],\n\t\tu: \"1f31c\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"thermometer\"\n\t\t],\n\t\tu: \"1f321-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sunny\",\n\t\t\t\"black sun with rays\"\n\t\t],\n\t\tu: \"2600-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"full moon with face\"\n\t\t],\n\t\tu: \"1f31d\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sun with face\"\n\t\t],\n\t\tu: \"1f31e\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ringed planet\"\n\t\t],\n\t\tu: \"1fa90\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"star\",\n\t\t\t\"white medium star\"\n\t\t],\n\t\tu: \"2b50\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"star2\",\n\t\t\t\"glowing star\"\n\t\t],\n\t\tu: \"1f31f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"stars\",\n\t\t\t\"shooting star\"\n\t\t],\n\t\tu: \"1f320\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"milky way\"\n\t\t],\n\t\tu: \"1f30c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cloud\"\n\t\t],\n\t\tu: \"2601-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"partly sunny\",\n\t\t\t\"sun behind cloud\"\n\t\t],\n\t\tu: \"26c5\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"thunder cloud and rain\",\n\t\t\t\"cloud with lightning and rain\"\n\t\t],\n\t\tu: \"26c8-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mostly sunny\",\n\t\t\t\"sun small cloud\",\n\t\t\t\"sun behind small cloud\"\n\t\t],\n\t\tu: \"1f324-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"barely sunny\",\n\t\t\t\"sun behind cloud\",\n\t\t\t\"sun behind large cloud\"\n\t\t],\n\t\tu: \"1f325-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"partly sunny rain\",\n\t\t\t\"sun behind rain cloud\"\n\t\t],\n\t\tu: \"1f326-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rain cloud\",\n\t\t\t\"cloud with rain\"\n\t\t],\n\t\tu: \"1f327-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"snow cloud\",\n\t\t\t\"cloud with snow\"\n\t\t],\n\t\tu: \"1f328-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lightning\",\n\t\t\t\"lightning cloud\",\n\t\t\t\"cloud with lightning\"\n\t\t],\n\t\tu: \"1f329-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tornado\",\n\t\t\t\"tornado cloud\"\n\t\t],\n\t\tu: \"1f32a-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fog\"\n\t\t],\n\t\tu: \"1f32b-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wind face\",\n\t\t\t\"wind blowing face\"\n\t\t],\n\t\tu: \"1f32c-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cyclone\"\n\t\t],\n\t\tu: \"1f300\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rainbow\"\n\t\t],\n\t\tu: \"1f308\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"closed umbrella\"\n\t\t],\n\t\tu: \"1f302\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"umbrella\"\n\t\t],\n\t\tu: \"2602-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"umbrella with rain drops\"\n\t\t],\n\t\tu: \"2614\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"umbrella on ground\"\n\t\t],\n\t\tu: \"26f1-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"zap\",\n\t\t\t\"high voltage sign\"\n\t\t],\n\t\tu: \"26a1\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"snowflake\"\n\t\t],\n\t\tu: \"2744-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"snowman\"\n\t\t],\n\t\tu: \"2603-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"snowman without snow\"\n\t\t],\n\t\tu: \"26c4\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"comet\"\n\t\t],\n\t\tu: \"2604-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fire\"\n\t\t],\n\t\tu: \"1f525\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"droplet\"\n\t\t],\n\t\tu: \"1f4a7\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ocean\",\n\t\t\t\"water wave\"\n\t\t],\n\t\tu: \"1f30a\",\n\t\ta: \"0.6\"\n\t}\n];\nvar activities = [\n\t{\n\t\tn: [\n\t\t\t\"jack-o-lantern\",\n\t\t\t\"jack o lantern\"\n\t\t],\n\t\tu: \"1f383\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"christmas tree\"\n\t\t],\n\t\tu: \"1f384\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fireworks\"\n\t\t],\n\t\tu: \"1f386\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sparkler\",\n\t\t\t\"firework sparkler\"\n\t\t],\n\t\tu: \"1f387\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"firecracker\"\n\t\t],\n\t\tu: \"1f9e8\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sparkles\"\n\t\t],\n\t\tu: \"2728\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"balloon\"\n\t\t],\n\t\tu: \"1f388\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tada\",\n\t\t\t\"party popper\"\n\t\t],\n\t\tu: \"1f389\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"confetti ball\"\n\t\t],\n\t\tu: \"1f38a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tanabata tree\"\n\t\t],\n\t\tu: \"1f38b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bamboo\",\n\t\t\t\"pine decoration\"\n\t\t],\n\t\tu: \"1f38d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dolls\",\n\t\t\t\"japanese dolls\"\n\t\t],\n\t\tu: \"1f38e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flags\",\n\t\t\t\"carp streamer\"\n\t\t],\n\t\tu: \"1f38f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wind chime\"\n\t\t],\n\t\tu: \"1f390\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rice scene\",\n\t\t\t\"moon viewing ceremony\"\n\t\t],\n\t\tu: \"1f391\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"red envelope\",\n\t\t\t\"red gift envelope\"\n\t\t],\n\t\tu: \"1f9e7\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ribbon\"\n\t\t],\n\t\tu: \"1f380\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"gift\",\n\t\t\t\"wrapped present\"\n\t\t],\n\t\tu: \"1f381\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"reminder ribbon\"\n\t\t],\n\t\tu: \"1f397-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"admission tickets\"\n\t\t],\n\t\tu: \"1f39f-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ticket\"\n\t\t],\n\t\tu: \"1f3ab\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"medal\",\n\t\t\t\"military medal\"\n\t\t],\n\t\tu: \"1f396-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"trophy\"\n\t\t],\n\t\tu: \"1f3c6\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sports medal\"\n\t\t],\n\t\tu: \"1f3c5\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"first place medal\"\n\t\t],\n\t\tu: \"1f947\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"second place medal\"\n\t\t],\n\t\tu: \"1f948\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"third place medal\"\n\t\t],\n\t\tu: \"1f949\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"soccer\",\n\t\t\t\"soccer ball\"\n\t\t],\n\t\tu: \"26bd\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"baseball\"\n\t\t],\n\t\tu: \"26be\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"softball\"\n\t\t],\n\t\tu: \"1f94e\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"basketball\",\n\t\t\t\"basketball and hoop\"\n\t\t],\n\t\tu: \"1f3c0\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"volleyball\"\n\t\t],\n\t\tu: \"1f3d0\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"football\",\n\t\t\t\"american football\"\n\t\t],\n\t\tu: \"1f3c8\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rugby football\"\n\t\t],\n\t\tu: \"1f3c9\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tennis\",\n\t\t\t\"tennis racquet and ball\"\n\t\t],\n\t\tu: \"1f3be\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flying disc\"\n\t\t],\n\t\tu: \"1f94f\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bowling\"\n\t\t],\n\t\tu: \"1f3b3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cricket bat and ball\"\n\t\t],\n\t\tu: \"1f3cf\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"field hockey stick and ball\"\n\t\t],\n\t\tu: \"1f3d1\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ice hockey stick and puck\"\n\t\t],\n\t\tu: \"1f3d2\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lacrosse\",\n\t\t\t\"lacrosse stick and ball\"\n\t\t],\n\t\tu: \"1f94d\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"table tennis paddle and ball\"\n\t\t],\n\t\tu: \"1f3d3\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"badminton racquet and shuttlecock\"\n\t\t],\n\t\tu: \"1f3f8\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"boxing glove\"\n\t\t],\n\t\tu: \"1f94a\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"martial arts uniform\"\n\t\t],\n\t\tu: \"1f94b\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"goal net\"\n\t\t],\n\t\tu: \"1f945\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"golf\",\n\t\t\t\"flag in hole\"\n\t\t],\n\t\tu: \"26f3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ice skate\"\n\t\t],\n\t\tu: \"26f8-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fishing pole and fish\"\n\t\t],\n\t\tu: \"1f3a3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"diving mask\"\n\t\t],\n\t\tu: \"1f93f\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"running shirt with sash\"\n\t\t],\n\t\tu: \"1f3bd\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ski\",\n\t\t\t\"ski and ski boot\"\n\t\t],\n\t\tu: \"1f3bf\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sled\"\n\t\t],\n\t\tu: \"1f6f7\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"curling stone\"\n\t\t],\n\t\tu: \"1f94c\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dart\",\n\t\t\t\"direct hit\"\n\t\t],\n\t\tu: \"1f3af\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"yo-yo\"\n\t\t],\n\t\tu: \"1fa80\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"kite\"\n\t\t],\n\t\tu: \"1fa81\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"8ball\",\n\t\t\t\"billiards\"\n\t\t],\n\t\tu: \"1f3b1\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"crystal ball\"\n\t\t],\n\t\tu: \"1f52e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"magic wand\"\n\t\t],\n\t\tu: \"1fa84\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"nazar amulet\"\n\t\t],\n\t\tu: \"1f9ff\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hamsa\"\n\t\t],\n\t\tu: \"1faac\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"video game\"\n\t\t],\n\t\tu: \"1f3ae\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"joystick\"\n\t\t],\n\t\tu: \"1f579-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"slot machine\"\n\t\t],\n\t\tu: \"1f3b0\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"game die\"\n\t\t],\n\t\tu: \"1f3b2\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"jigsaw\",\n\t\t\t\"jigsaw puzzle piece\"\n\t\t],\n\t\tu: \"1f9e9\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"teddy bear\"\n\t\t],\n\t\tu: \"1f9f8\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pinata\"\n\t\t],\n\t\tu: \"1fa85\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mirror ball\"\n\t\t],\n\t\tu: \"1faa9\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"nesting dolls\"\n\t\t],\n\t\tu: \"1fa86\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"spades\",\n\t\t\t\"black spade suit\"\n\t\t],\n\t\tu: \"2660-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hearts\",\n\t\t\t\"black heart suit\"\n\t\t],\n\t\tu: \"2665-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"diamonds\",\n\t\t\t\"black diamond suit\"\n\t\t],\n\t\tu: \"2666-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clubs\",\n\t\t\t\"black club suit\"\n\t\t],\n\t\tu: \"2663-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"chess pawn\"\n\t\t],\n\t\tu: \"265f-fe0f\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"black joker\",\n\t\t\t\"playing card black joker\"\n\t\t],\n\t\tu: \"1f0cf\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mahjong\",\n\t\t\t\"mahjong tile red dragon\"\n\t\t],\n\t\tu: \"1f004\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flower playing cards\"\n\t\t],\n\t\tu: \"1f3b4\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"performing arts\"\n\t\t],\n\t\tu: \"1f3ad\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"framed picture\",\n\t\t\t\"frame with picture\"\n\t\t],\n\t\tu: \"1f5bc-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"art\",\n\t\t\t\"artist palette\"\n\t\t],\n\t\tu: \"1f3a8\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"thread\",\n\t\t\t\"spool of thread\"\n\t\t],\n\t\tu: \"1f9f5\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sewing needle\"\n\t\t],\n\t\tu: \"1faa1\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"yarn\",\n\t\t\t\"ball of yarn\"\n\t\t],\n\t\tu: \"1f9f6\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"knot\"\n\t\t],\n\t\tu: \"1faa2\",\n\t\ta: \"13.0\"\n\t}\n];\nvar objects = [\n\t{\n\t\tn: [\n\t\t\t\"eyeglasses\"\n\t\t],\n\t\tu: \"1f453\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sunglasses\",\n\t\t\t\"dark sunglasses\"\n\t\t],\n\t\tu: \"1f576-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"goggles\"\n\t\t],\n\t\tu: \"1f97d\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lab coat\"\n\t\t],\n\t\tu: \"1f97c\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"safety vest\"\n\t\t],\n\t\tu: \"1f9ba\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"necktie\"\n\t\t],\n\t\tu: \"1f454\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shirt\",\n\t\t\t\"tshirt\",\n\t\t\t\"t-shirt\"\n\t\t],\n\t\tu: \"1f455\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"jeans\"\n\t\t],\n\t\tu: \"1f456\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"scarf\"\n\t\t],\n\t\tu: \"1f9e3\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"gloves\"\n\t\t],\n\t\tu: \"1f9e4\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"coat\"\n\t\t],\n\t\tu: \"1f9e5\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"socks\"\n\t\t],\n\t\tu: \"1f9e6\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dress\"\n\t\t],\n\t\tu: \"1f457\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"kimono\"\n\t\t],\n\t\tu: \"1f458\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sari\"\n\t\t],\n\t\tu: \"1f97b\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"one-piece swimsuit\"\n\t\t],\n\t\tu: \"1fa71\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"briefs\"\n\t\t],\n\t\tu: \"1fa72\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shorts\"\n\t\t],\n\t\tu: \"1fa73\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bikini\"\n\t\t],\n\t\tu: \"1f459\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"womans clothes\"\n\t\t],\n\t\tu: \"1f45a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"purse\"\n\t\t],\n\t\tu: \"1f45b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"handbag\"\n\t\t],\n\t\tu: \"1f45c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pouch\"\n\t\t],\n\t\tu: \"1f45d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shopping bags\"\n\t\t],\n\t\tu: \"1f6cd-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"school satchel\"\n\t\t],\n\t\tu: \"1f392\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"thong sandal\"\n\t\t],\n\t\tu: \"1fa74\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shoe\",\n\t\t\t\"mans shoe\"\n\t\t],\n\t\tu: \"1f45e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"athletic shoe\"\n\t\t],\n\t\tu: \"1f45f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hiking boot\"\n\t\t],\n\t\tu: \"1f97e\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flat shoe\",\n\t\t\t\"womans flat shoe\"\n\t\t],\n\t\tu: \"1f97f\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"high heel\",\n\t\t\t\"high-heeled shoe\"\n\t\t],\n\t\tu: \"1f460\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sandal\",\n\t\t\t\"womans sandal\"\n\t\t],\n\t\tu: \"1f461\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ballet shoes\"\n\t\t],\n\t\tu: \"1fa70\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"boot\",\n\t\t\t\"womans boots\"\n\t\t],\n\t\tu: \"1f462\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"crown\"\n\t\t],\n\t\tu: \"1f451\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"womans hat\"\n\t\t],\n\t\tu: \"1f452\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tophat\",\n\t\t\t\"top hat\"\n\t\t],\n\t\tu: \"1f3a9\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mortar board\",\n\t\t\t\"graduation cap\"\n\t\t],\n\t\tu: \"1f393\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"billed cap\"\n\t\t],\n\t\tu: \"1f9e2\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"military helmet\"\n\t\t],\n\t\tu: \"1fa96\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rescue worker’s helmet\",\n\t\t\t\"helmet with white cross\"\n\t\t],\n\t\tu: \"26d1-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"prayer beads\"\n\t\t],\n\t\tu: \"1f4ff\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lipstick\"\n\t\t],\n\t\tu: \"1f484\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ring\"\n\t\t],\n\t\tu: \"1f48d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"gem\",\n\t\t\t\"gem stone\"\n\t\t],\n\t\tu: \"1f48e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mute\",\n\t\t\t\"speaker with cancellation stroke\"\n\t\t],\n\t\tu: \"1f507\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"speaker\"\n\t\t],\n\t\tu: \"1f508\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sound\",\n\t\t\t\"speaker with one sound wave\"\n\t\t],\n\t\tu: \"1f509\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"loud sound\",\n\t\t\t\"speaker with three sound waves\"\n\t\t],\n\t\tu: \"1f50a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"loudspeaker\",\n\t\t\t\"public address loudspeaker\"\n\t\t],\n\t\tu: \"1f4e2\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mega\",\n\t\t\t\"cheering megaphone\"\n\t\t],\n\t\tu: \"1f4e3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"postal horn\"\n\t\t],\n\t\tu: \"1f4ef\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bell\"\n\t\t],\n\t\tu: \"1f514\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"no bell\",\n\t\t\t\"bell with cancellation stroke\"\n\t\t],\n\t\tu: \"1f515\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"musical score\"\n\t\t],\n\t\tu: \"1f3bc\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"musical note\"\n\t\t],\n\t\tu: \"1f3b5\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"notes\",\n\t\t\t\"multiple musical notes\"\n\t\t],\n\t\tu: \"1f3b6\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"studio microphone\"\n\t\t],\n\t\tu: \"1f399-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"level slider\"\n\t\t],\n\t\tu: \"1f39a-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"control knobs\"\n\t\t],\n\t\tu: \"1f39b-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"microphone\"\n\t\t],\n\t\tu: \"1f3a4\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"headphone\",\n\t\t\t\"headphones\"\n\t\t],\n\t\tu: \"1f3a7\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"radio\"\n\t\t],\n\t\tu: \"1f4fb\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"saxophone\"\n\t\t],\n\t\tu: \"1f3b7\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"accordion\"\n\t\t],\n\t\tu: \"1fa97\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"guitar\"\n\t\t],\n\t\tu: \"1f3b8\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"musical keyboard\"\n\t\t],\n\t\tu: \"1f3b9\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"trumpet\"\n\t\t],\n\t\tu: \"1f3ba\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"violin\"\n\t\t],\n\t\tu: \"1f3bb\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"banjo\"\n\t\t],\n\t\tu: \"1fa95\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"drum with drumsticks\"\n\t\t],\n\t\tu: \"1f941\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"long drum\"\n\t\t],\n\t\tu: \"1fa98\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"iphone\",\n\t\t\t\"mobile phone\"\n\t\t],\n\t\tu: \"1f4f1\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"calling\",\n\t\t\t\"mobile phone with rightwards arrow at left\"\n\t\t],\n\t\tu: \"1f4f2\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"phone\",\n\t\t\t\"telephone\",\n\t\t\t\"black telephone\"\n\t\t],\n\t\tu: \"260e-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"telephone receiver\"\n\t\t],\n\t\tu: \"1f4de\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pager\"\n\t\t],\n\t\tu: \"1f4df\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fax\",\n\t\t\t\"fax machine\"\n\t\t],\n\t\tu: \"1f4e0\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"battery\"\n\t\t],\n\t\tu: \"1f50b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"low battery\"\n\t\t],\n\t\tu: \"1faab\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"electric plug\"\n\t\t],\n\t\tu: \"1f50c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"computer\",\n\t\t\t\"personal computer\"\n\t\t],\n\t\tu: \"1f4bb\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"desktop computer\"\n\t\t],\n\t\tu: \"1f5a5-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"printer\"\n\t\t],\n\t\tu: \"1f5a8-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"keyboard\"\n\t\t],\n\t\tu: \"2328-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"computer mouse\",\n\t\t\t\"three button mouse\"\n\t\t],\n\t\tu: \"1f5b1-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"trackball\"\n\t\t],\n\t\tu: \"1f5b2-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"minidisc\"\n\t\t],\n\t\tu: \"1f4bd\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"floppy disk\"\n\t\t],\n\t\tu: \"1f4be\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cd\",\n\t\t\t\"optical disc\"\n\t\t],\n\t\tu: \"1f4bf\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dvd\"\n\t\t],\n\t\tu: \"1f4c0\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"abacus\"\n\t\t],\n\t\tu: \"1f9ee\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"movie camera\"\n\t\t],\n\t\tu: \"1f3a5\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"film frames\"\n\t\t],\n\t\tu: \"1f39e-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"film projector\"\n\t\t],\n\t\tu: \"1f4fd-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clapper\",\n\t\t\t\"clapper board\"\n\t\t],\n\t\tu: \"1f3ac\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tv\",\n\t\t\t\"television\"\n\t\t],\n\t\tu: \"1f4fa\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"camera\"\n\t\t],\n\t\tu: \"1f4f7\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"camera with flash\"\n\t\t],\n\t\tu: \"1f4f8\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"video camera\"\n\t\t],\n\t\tu: \"1f4f9\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"vhs\",\n\t\t\t\"videocassette\"\n\t\t],\n\t\tu: \"1f4fc\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mag\",\n\t\t\t\"left-pointing magnifying glass\"\n\t\t],\n\t\tu: \"1f50d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mag right\",\n\t\t\t\"right-pointing magnifying glass\"\n\t\t],\n\t\tu: \"1f50e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"candle\"\n\t\t],\n\t\tu: \"1f56f-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bulb\",\n\t\t\t\"electric light bulb\"\n\t\t],\n\t\tu: \"1f4a1\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flashlight\",\n\t\t\t\"electric torch\"\n\t\t],\n\t\tu: \"1f526\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lantern\",\n\t\t\t\"izakaya lantern\"\n\t\t],\n\t\tu: \"1f3ee\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"diya lamp\"\n\t\t],\n\t\tu: \"1fa94\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"notebook with decorative cover\"\n\t\t],\n\t\tu: \"1f4d4\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"closed book\"\n\t\t],\n\t\tu: \"1f4d5\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"book\",\n\t\t\t\"open book\"\n\t\t],\n\t\tu: \"1f4d6\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"green book\"\n\t\t],\n\t\tu: \"1f4d7\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"blue book\"\n\t\t],\n\t\tu: \"1f4d8\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"orange book\"\n\t\t],\n\t\tu: \"1f4d9\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"books\"\n\t\t],\n\t\tu: \"1f4da\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"notebook\"\n\t\t],\n\t\tu: \"1f4d3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ledger\"\n\t\t],\n\t\tu: \"1f4d2\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"page with curl\"\n\t\t],\n\t\tu: \"1f4c3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"scroll\"\n\t\t],\n\t\tu: \"1f4dc\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"page facing up\"\n\t\t],\n\t\tu: \"1f4c4\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"newspaper\"\n\t\t],\n\t\tu: \"1f4f0\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rolled-up newspaper\",\n\t\t\t\"rolled up newspaper\"\n\t\t],\n\t\tu: \"1f5de-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bookmark tabs\"\n\t\t],\n\t\tu: \"1f4d1\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bookmark\"\n\t\t],\n\t\tu: \"1f516\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"label\"\n\t\t],\n\t\tu: \"1f3f7-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"moneybag\",\n\t\t\t\"money bag\"\n\t\t],\n\t\tu: \"1f4b0\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"coin\"\n\t\t],\n\t\tu: \"1fa99\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"yen\",\n\t\t\t\"banknote with yen sign\"\n\t\t],\n\t\tu: \"1f4b4\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dollar\",\n\t\t\t\"banknote with dollar sign\"\n\t\t],\n\t\tu: \"1f4b5\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"euro\",\n\t\t\t\"banknote with euro sign\"\n\t\t],\n\t\tu: \"1f4b6\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pound\",\n\t\t\t\"banknote with pound sign\"\n\t\t],\n\t\tu: \"1f4b7\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"money with wings\"\n\t\t],\n\t\tu: \"1f4b8\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"credit card\"\n\t\t],\n\t\tu: \"1f4b3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"receipt\"\n\t\t],\n\t\tu: \"1f9fe\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"chart\",\n\t\t\t\"chart with upwards trend and yen sign\"\n\t\t],\n\t\tu: \"1f4b9\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"email\",\n\t\t\t\"envelope\"\n\t\t],\n\t\tu: \"2709-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"e-mail\",\n\t\t\t\"e-mail symbol\"\n\t\t],\n\t\tu: \"1f4e7\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"incoming envelope\"\n\t\t],\n\t\tu: \"1f4e8\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"envelope with arrow\",\n\t\t\t\"envelope with downwards arrow above\"\n\t\t],\n\t\tu: \"1f4e9\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"outbox tray\"\n\t\t],\n\t\tu: \"1f4e4\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"inbox tray\"\n\t\t],\n\t\tu: \"1f4e5\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"package\"\n\t\t],\n\t\tu: \"1f4e6\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mailbox\",\n\t\t\t\"closed mailbox with raised flag\"\n\t\t],\n\t\tu: \"1f4eb\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mailbox closed\",\n\t\t\t\"closed mailbox with lowered flag\"\n\t\t],\n\t\tu: \"1f4ea\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mailbox with mail\",\n\t\t\t\"open mailbox with raised flag\"\n\t\t],\n\t\tu: \"1f4ec\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mailbox with no mail\",\n\t\t\t\"open mailbox with lowered flag\"\n\t\t],\n\t\tu: \"1f4ed\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"postbox\"\n\t\t],\n\t\tu: \"1f4ee\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ballot box with ballot\"\n\t\t],\n\t\tu: \"1f5f3-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pencil\",\n\t\t\t\"pencil2\"\n\t\t],\n\t\tu: \"270f-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"black nib\"\n\t\t],\n\t\tu: \"2712-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fountain pen\",\n\t\t\t\"lower left fountain pen\"\n\t\t],\n\t\tu: \"1f58b-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pen\",\n\t\t\t\"lower left ballpoint pen\"\n\t\t],\n\t\tu: \"1f58a-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"paintbrush\",\n\t\t\t\"lower left paintbrush\"\n\t\t],\n\t\tu: \"1f58c-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"crayon\",\n\t\t\t\"lower left crayon\"\n\t\t],\n\t\tu: \"1f58d-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"memo\",\n\t\t\t\"pencil\"\n\t\t],\n\t\tu: \"1f4dd\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"briefcase\"\n\t\t],\n\t\tu: \"1f4bc\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"file folder\"\n\t\t],\n\t\tu: \"1f4c1\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"open file folder\"\n\t\t],\n\t\tu: \"1f4c2\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"card index dividers\"\n\t\t],\n\t\tu: \"1f5c2-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"date\",\n\t\t\t\"calendar\"\n\t\t],\n\t\tu: \"1f4c5\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"calendar\",\n\t\t\t\"tear-off calendar\"\n\t\t],\n\t\tu: \"1f4c6\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"spiral notepad\",\n\t\t\t\"spiral note pad\"\n\t\t],\n\t\tu: \"1f5d2-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"spiral calendar\",\n\t\t\t\"spiral calendar pad\"\n\t\t],\n\t\tu: \"1f5d3-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"card index\"\n\t\t],\n\t\tu: \"1f4c7\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"chart with upwards trend\"\n\t\t],\n\t\tu: \"1f4c8\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"chart with downwards trend\"\n\t\t],\n\t\tu: \"1f4c9\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bar chart\"\n\t\t],\n\t\tu: \"1f4ca\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clipboard\"\n\t\t],\n\t\tu: \"1f4cb\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pushpin\"\n\t\t],\n\t\tu: \"1f4cc\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"round pushpin\"\n\t\t],\n\t\tu: \"1f4cd\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"paperclip\"\n\t\t],\n\t\tu: \"1f4ce\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"linked paperclips\"\n\t\t],\n\t\tu: \"1f587-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"straight ruler\"\n\t\t],\n\t\tu: \"1f4cf\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"triangular ruler\"\n\t\t],\n\t\tu: \"1f4d0\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"scissors\",\n\t\t\t\"black scissors\"\n\t\t],\n\t\tu: \"2702-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"card file box\"\n\t\t],\n\t\tu: \"1f5c3-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"file cabinet\"\n\t\t],\n\t\tu: \"1f5c4-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wastebasket\"\n\t\t],\n\t\tu: \"1f5d1-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lock\"\n\t\t],\n\t\tu: \"1f512\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"unlock\",\n\t\t\t\"open lock\"\n\t\t],\n\t\tu: \"1f513\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lock with ink pen\"\n\t\t],\n\t\tu: \"1f50f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"closed lock with key\"\n\t\t],\n\t\tu: \"1f510\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"key\"\n\t\t],\n\t\tu: \"1f511\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"old key\"\n\t\t],\n\t\tu: \"1f5dd-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hammer\"\n\t\t],\n\t\tu: \"1f528\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"axe\"\n\t\t],\n\t\tu: \"1fa93\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pick\"\n\t\t],\n\t\tu: \"26cf-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hammer and pick\"\n\t\t],\n\t\tu: \"2692-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hammer and wrench\"\n\t\t],\n\t\tu: \"1f6e0-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dagger\",\n\t\t\t\"dagger knife\"\n\t\t],\n\t\tu: \"1f5e1-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"crossed swords\"\n\t\t],\n\t\tu: \"2694-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"gun\",\n\t\t\t\"pistol\"\n\t\t],\n\t\tu: \"1f52b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"boomerang\"\n\t\t],\n\t\tu: \"1fa83\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bow and arrow\"\n\t\t],\n\t\tu: \"1f3f9\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shield\"\n\t\t],\n\t\tu: \"1f6e1-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"carpentry saw\"\n\t\t],\n\t\tu: \"1fa9a\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wrench\"\n\t\t],\n\t\tu: \"1f527\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"screwdriver\"\n\t\t],\n\t\tu: \"1fa9b\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"nut and bolt\"\n\t\t],\n\t\tu: \"1f529\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"gear\"\n\t\t],\n\t\tu: \"2699-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"clamp\",\n\t\t\t\"compression\"\n\t\t],\n\t\tu: \"1f5dc-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"scales\",\n\t\t\t\"balance scale\"\n\t\t],\n\t\tu: \"2696-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"probing cane\"\n\t\t],\n\t\tu: \"1f9af\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"link\",\n\t\t\t\"link symbol\"\n\t\t],\n\t\tu: \"1f517\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"chains\"\n\t\t],\n\t\tu: \"26d3-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hook\"\n\t\t],\n\t\tu: \"1fa9d\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"toolbox\"\n\t\t],\n\t\tu: \"1f9f0\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"magnet\"\n\t\t],\n\t\tu: \"1f9f2\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ladder\"\n\t\t],\n\t\tu: \"1fa9c\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"alembic\"\n\t\t],\n\t\tu: \"2697-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"test tube\"\n\t\t],\n\t\tu: \"1f9ea\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"petri dish\"\n\t\t],\n\t\tu: \"1f9eb\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"dna\",\n\t\t\t\"dna double helix\"\n\t\t],\n\t\tu: \"1f9ec\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"microscope\"\n\t\t],\n\t\tu: \"1f52c\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"telescope\"\n\t\t],\n\t\tu: \"1f52d\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"satellite antenna\"\n\t\t],\n\t\tu: \"1f4e1\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"syringe\"\n\t\t],\n\t\tu: \"1f489\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"drop of blood\"\n\t\t],\n\t\tu: \"1fa78\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pill\"\n\t\t],\n\t\tu: \"1f48a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"adhesive bandage\"\n\t\t],\n\t\tu: \"1fa79\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"crutch\"\n\t\t],\n\t\tu: \"1fa7c\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"stethoscope\"\n\t\t],\n\t\tu: \"1fa7a\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"x-ray\"\n\t\t],\n\t\tu: \"1fa7b\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"door\"\n\t\t],\n\t\tu: \"1f6aa\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"elevator\"\n\t\t],\n\t\tu: \"1f6d7\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mirror\"\n\t\t],\n\t\tu: \"1fa9e\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"window\"\n\t\t],\n\t\tu: \"1fa9f\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bed\"\n\t\t],\n\t\tu: \"1f6cf-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"couch and lamp\"\n\t\t],\n\t\tu: \"1f6cb-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"chair\"\n\t\t],\n\t\tu: \"1fa91\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"toilet\"\n\t\t],\n\t\tu: \"1f6bd\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"plunger\"\n\t\t],\n\t\tu: \"1faa0\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shower\"\n\t\t],\n\t\tu: \"1f6bf\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bathtub\"\n\t\t],\n\t\tu: \"1f6c1\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mouse trap\"\n\t\t],\n\t\tu: \"1faa4\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"razor\"\n\t\t],\n\t\tu: \"1fa92\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"lotion bottle\"\n\t\t],\n\t\tu: \"1f9f4\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"safety pin\"\n\t\t],\n\t\tu: \"1f9f7\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"broom\"\n\t\t],\n\t\tu: \"1f9f9\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"basket\"\n\t\t],\n\t\tu: \"1f9fa\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"roll of paper\"\n\t\t],\n\t\tu: \"1f9fb\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bucket\"\n\t\t],\n\t\tu: \"1faa3\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"soap\",\n\t\t\t\"bar of soap\"\n\t\t],\n\t\tu: \"1f9fc\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bubbles\"\n\t\t],\n\t\tu: \"1fae7\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"toothbrush\"\n\t\t],\n\t\tu: \"1faa5\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sponge\"\n\t\t],\n\t\tu: \"1f9fd\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fire extinguisher\"\n\t\t],\n\t\tu: \"1f9ef\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"shopping trolley\"\n\t\t],\n\t\tu: \"1f6d2\",\n\t\ta: \"3.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"smoking\",\n\t\t\t\"smoking symbol\"\n\t\t],\n\t\tu: \"1f6ac\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"coffin\"\n\t\t],\n\t\tu: \"26b0-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"headstone\"\n\t\t],\n\t\tu: \"1faa6\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"funeral urn\"\n\t\t],\n\t\tu: \"26b1-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"moyai\"\n\t\t],\n\t\tu: \"1f5ff\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"placard\"\n\t\t],\n\t\tu: \"1faa7\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"identification card\"\n\t\t],\n\t\tu: \"1faaa\",\n\t\ta: \"14.0\"\n\t}\n];\nvar symbols = [\n\t{\n\t\tn: [\n\t\t\t\"atm\",\n\t\t\t\"automated teller machine\"\n\t\t],\n\t\tu: \"1f3e7\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"put litter in its place\",\n\t\t\t\"put litter in its place symbol\"\n\t\t],\n\t\tu: \"1f6ae\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"potable water\",\n\t\t\t\"potable water symbol\"\n\t\t],\n\t\tu: \"1f6b0\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wheelchair\",\n\t\t\t\"wheelchair symbol\"\n\t\t],\n\t\tu: \"267f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mens\",\n\t\t\t\"mens symbol\"\n\t\t],\n\t\tu: \"1f6b9\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"womens\",\n\t\t\t\"womens symbol\"\n\t\t],\n\t\tu: \"1f6ba\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"restroom\"\n\t\t],\n\t\tu: \"1f6bb\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"baby symbol\"\n\t\t],\n\t\tu: \"1f6bc\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wc\",\n\t\t\t\"water closet\"\n\t\t],\n\t\tu: \"1f6be\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"passport control\"\n\t\t],\n\t\tu: \"1f6c2\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"customs\"\n\t\t],\n\t\tu: \"1f6c3\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"baggage claim\"\n\t\t],\n\t\tu: \"1f6c4\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"left luggage\"\n\t\t],\n\t\tu: \"1f6c5\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"warning\",\n\t\t\t\"warning sign\"\n\t\t],\n\t\tu: \"26a0-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"children crossing\"\n\t\t],\n\t\tu: \"1f6b8\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"no entry\"\n\t\t],\n\t\tu: \"26d4\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"no entry sign\"\n\t\t],\n\t\tu: \"1f6ab\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"no bicycles\"\n\t\t],\n\t\tu: \"1f6b3\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"no smoking\",\n\t\t\t\"no smoking symbol\"\n\t\t],\n\t\tu: \"1f6ad\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"do not litter\",\n\t\t\t\"do not litter symbol\"\n\t\t],\n\t\tu: \"1f6af\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"non-potable water\",\n\t\t\t\"non-potable water symbol\"\n\t\t],\n\t\tu: \"1f6b1\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"no pedestrians\"\n\t\t],\n\t\tu: \"1f6b7\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"no mobile phones\"\n\t\t],\n\t\tu: \"1f4f5\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"underage\",\n\t\t\t\"no one under eighteen symbol\"\n\t\t],\n\t\tu: \"1f51e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"radioactive\",\n\t\t\t\"radioactive sign\"\n\t\t],\n\t\tu: \"2622-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"biohazard\",\n\t\t\t\"biohazard sign\"\n\t\t],\n\t\tu: \"2623-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrow up\",\n\t\t\t\"upwards black arrow\"\n\t\t],\n\t\tu: \"2b06-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"north east arrow\",\n\t\t\t\"arrow upper right\"\n\t\t],\n\t\tu: \"2197-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrow right\",\n\t\t\t\"black rightwards arrow\"\n\t\t],\n\t\tu: \"27a1-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"south east arrow\",\n\t\t\t\"arrow lower right\"\n\t\t],\n\t\tu: \"2198-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrow down\",\n\t\t\t\"downwards black arrow\"\n\t\t],\n\t\tu: \"2b07-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"south west arrow\",\n\t\t\t\"arrow lower left\"\n\t\t],\n\t\tu: \"2199-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrow left\",\n\t\t\t\"leftwards black arrow\"\n\t\t],\n\t\tu: \"2b05-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"north west arrow\",\n\t\t\t\"arrow upper left\"\n\t\t],\n\t\tu: \"2196-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"up down arrow\",\n\t\t\t\"arrow up down\"\n\t\t],\n\t\tu: \"2195-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"left right arrow\"\n\t\t],\n\t\tu: \"2194-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"leftwards arrow with hook\"\n\t\t],\n\t\tu: \"21a9-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrow right hook\",\n\t\t\t\"rightwards arrow with hook\"\n\t\t],\n\t\tu: \"21aa-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrow heading up\",\n\t\t\t\"arrow pointing rightwards then curving upwards\"\n\t\t],\n\t\tu: \"2934-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrow heading down\",\n\t\t\t\"arrow pointing rightwards then curving downwards\"\n\t\t],\n\t\tu: \"2935-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrows clockwise\",\n\t\t\t\"clockwise downwards and upwards open circle arrows\"\n\t\t],\n\t\tu: \"1f503\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrows counterclockwise\",\n\t\t\t\"anticlockwise downwards and upwards open circle arrows\"\n\t\t],\n\t\tu: \"1f504\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"back\",\n\t\t\t\"back with leftwards arrow above\"\n\t\t],\n\t\tu: \"1f519\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"end\",\n\t\t\t\"end with leftwards arrow above\"\n\t\t],\n\t\tu: \"1f51a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"on\",\n\t\t\t\"on with exclamation mark with left right arrow above\"\n\t\t],\n\t\tu: \"1f51b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"soon\",\n\t\t\t\"soon with rightwards arrow above\"\n\t\t],\n\t\tu: \"1f51c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"top\",\n\t\t\t\"top with upwards arrow above\"\n\t\t],\n\t\tu: \"1f51d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"place of worship\"\n\t\t],\n\t\tu: \"1f6d0\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"atom symbol\"\n\t\t],\n\t\tu: \"269b-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"om\",\n\t\t\t\"om symbol\"\n\t\t],\n\t\tu: \"1f549-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"star of david\"\n\t\t],\n\t\tu: \"2721-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wheel of dharma\"\n\t\t],\n\t\tu: \"2638-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"yin yang\"\n\t\t],\n\t\tu: \"262f-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"latin cross\"\n\t\t],\n\t\tu: \"271d-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"orthodox cross\"\n\t\t],\n\t\tu: \"2626-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"star and crescent\"\n\t\t],\n\t\tu: \"262a-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"peace symbol\"\n\t\t],\n\t\tu: \"262e-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"menorah with nine branches\"\n\t\t],\n\t\tu: \"1f54e\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"six pointed star\",\n\t\t\t\"six pointed star with middle dot\"\n\t\t],\n\t\tu: \"1f52f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"aries\"\n\t\t],\n\t\tu: \"2648\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"taurus\"\n\t\t],\n\t\tu: \"2649\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"gemini\"\n\t\t],\n\t\tu: \"264a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cancer\"\n\t\t],\n\t\tu: \"264b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"leo\"\n\t\t],\n\t\tu: \"264c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"virgo\"\n\t\t],\n\t\tu: \"264d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"libra\"\n\t\t],\n\t\tu: \"264e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"scorpius\"\n\t\t],\n\t\tu: \"264f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sagittarius\"\n\t\t],\n\t\tu: \"2650\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"capricorn\"\n\t\t],\n\t\tu: \"2651\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"aquarius\"\n\t\t],\n\t\tu: \"2652\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pisces\"\n\t\t],\n\t\tu: \"2653\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ophiuchus\"\n\t\t],\n\t\tu: \"26ce\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"twisted rightwards arrows\"\n\t\t],\n\t\tu: \"1f500\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"repeat\",\n\t\t\t\"clockwise rightwards and leftwards open circle arrows\"\n\t\t],\n\t\tu: \"1f501\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"repeat one\",\n\t\t\t\"clockwise rightwards and leftwards open circle arrows with circled one overlay\"\n\t\t],\n\t\tu: \"1f502\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrow forward\",\n\t\t\t\"black right-pointing triangle\"\n\t\t],\n\t\tu: \"25b6-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fast forward\",\n\t\t\t\"black right-pointing double triangle\"\n\t\t],\n\t\tu: \"23e9\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"next track button\",\n\t\t\t\"black right pointing double triangle with vertical bar\"\n\t\t],\n\t\tu: \"23ed-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"play or pause button\",\n\t\t\t\"black right pointing triangle with double vertical bar\"\n\t\t],\n\t\tu: \"23ef-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrow backward\",\n\t\t\t\"black left-pointing triangle\"\n\t\t],\n\t\tu: \"25c0-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rewind\",\n\t\t\t\"black left-pointing double triangle\"\n\t\t],\n\t\tu: \"23ea\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"last track button\",\n\t\t\t\"black left pointing double triangle with vertical bar\"\n\t\t],\n\t\tu: \"23ee-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrow up small\",\n\t\t\t\"up-pointing small red triangle\"\n\t\t],\n\t\tu: \"1f53c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrow double up\",\n\t\t\t\"black up-pointing double triangle\"\n\t\t],\n\t\tu: \"23eb\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrow down small\",\n\t\t\t\"down-pointing small red triangle\"\n\t\t],\n\t\tu: \"1f53d\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"arrow double down\",\n\t\t\t\"black down-pointing double triangle\"\n\t\t],\n\t\tu: \"23ec\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pause button\",\n\t\t\t\"double vertical bar\"\n\t\t],\n\t\tu: \"23f8-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"stop button\",\n\t\t\t\"black square for stop\"\n\t\t],\n\t\tu: \"23f9-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"record button\",\n\t\t\t\"black circle for record\"\n\t\t],\n\t\tu: \"23fa-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"eject\",\n\t\t\t\"eject button\"\n\t\t],\n\t\tu: \"23cf-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cinema\"\n\t\t],\n\t\tu: \"1f3a6\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"low brightness\",\n\t\t\t\"low brightness symbol\"\n\t\t],\n\t\tu: \"1f505\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"high brightness\",\n\t\t\t\"high brightness symbol\"\n\t\t],\n\t\tu: \"1f506\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"signal strength\",\n\t\t\t\"antenna with bars\"\n\t\t],\n\t\tu: \"1f4f6\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"vibration mode\"\n\t\t],\n\t\tu: \"1f4f3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"mobile phone off\"\n\t\t],\n\t\tu: \"1f4f4\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"female sign\"\n\t\t],\n\t\tu: \"2640-fe0f\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"male sign\"\n\t\t],\n\t\tu: \"2642-fe0f\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"transgender symbol\"\n\t\t],\n\t\tu: \"26a7-fe0f\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heavy multiplication x\"\n\t\t],\n\t\tu: \"2716-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heavy plus sign\"\n\t\t],\n\t\tu: \"2795\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heavy minus sign\"\n\t\t],\n\t\tu: \"2796\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heavy division sign\"\n\t\t],\n\t\tu: \"2797\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heavy equals sign\"\n\t\t],\n\t\tu: \"1f7f0\",\n\t\ta: \"14.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"infinity\"\n\t\t],\n\t\tu: \"267e-fe0f\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"bangbang\",\n\t\t\t\"double exclamation mark\"\n\t\t],\n\t\tu: \"203c-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"interrobang\",\n\t\t\t\"exclamation question mark\"\n\t\t],\n\t\tu: \"2049-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"question\",\n\t\t\t\"black question mark ornament\"\n\t\t],\n\t\tu: \"2753\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"grey question\",\n\t\t\t\"white question mark ornament\"\n\t\t],\n\t\tu: \"2754\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"grey exclamation\",\n\t\t\t\"white exclamation mark ornament\"\n\t\t],\n\t\tu: \"2755\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"exclamation\",\n\t\t\t\"heavy exclamation mark\",\n\t\t\t\"heavy exclamation mark symbol\"\n\t\t],\n\t\tu: \"2757\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wavy dash\"\n\t\t],\n\t\tu: \"3030-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"currency exchange\"\n\t\t],\n\t\tu: \"1f4b1\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heavy dollar sign\"\n\t\t],\n\t\tu: \"1f4b2\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"medical symbol\",\n\t\t\t\"staff of aesculapius\"\n\t\t],\n\t\tu: \"2695-fe0f\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"recycle\",\n\t\t\t\"black universal recycling symbol\"\n\t\t],\n\t\tu: \"267b-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fleur-de-lis\",\n\t\t\t\"fleur de lis\"\n\t\t],\n\t\tu: \"269c-fe0f\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"trident\",\n\t\t\t\"trident emblem\"\n\t\t],\n\t\tu: \"1f531\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"name badge\"\n\t\t],\n\t\tu: \"1f4db\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"beginner\",\n\t\t\t\"japanese symbol for beginner\"\n\t\t],\n\t\tu: \"1f530\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"o\",\n\t\t\t\"heavy large circle\"\n\t\t],\n\t\tu: \"2b55\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"white check mark\",\n\t\t\t\"white heavy check mark\"\n\t\t],\n\t\tu: \"2705\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ballot box with check\"\n\t\t],\n\t\tu: \"2611-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"heavy check mark\"\n\t\t],\n\t\tu: \"2714-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"x\",\n\t\t\t\"cross mark\"\n\t\t],\n\t\tu: \"274c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"negative squared cross mark\"\n\t\t],\n\t\tu: \"274e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"curly loop\"\n\t\t],\n\t\tu: \"27b0\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"loop\",\n\t\t\t\"double curly loop\"\n\t\t],\n\t\tu: \"27bf\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"part alternation mark\"\n\t\t],\n\t\tu: \"303d-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"eight spoked asterisk\"\n\t\t],\n\t\tu: \"2733-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"eight pointed black star\"\n\t\t],\n\t\tu: \"2734-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sparkle\"\n\t\t],\n\t\tu: \"2747-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"copyright\",\n\t\t\t\"copyright sign\"\n\t\t],\n\t\tu: \"00a9-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"registered\",\n\t\t\t\"registered sign\"\n\t\t],\n\t\tu: \"00ae-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"tm\",\n\t\t\t\"trade mark sign\"\n\t\t],\n\t\tu: \"2122-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"hash\",\n\t\t\t\"hash key\"\n\t\t],\n\t\tu: \"0023-fe0f-20e3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"keycap: *\",\n\t\t\t\"keycap star\"\n\t\t],\n\t\tu: \"002a-fe0f-20e3\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"zero\",\n\t\t\t\"keycap 0\"\n\t\t],\n\t\tu: \"0030-fe0f-20e3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"one\",\n\t\t\t\"keycap 1\"\n\t\t],\n\t\tu: \"0031-fe0f-20e3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"two\",\n\t\t\t\"keycap 2\"\n\t\t],\n\t\tu: \"0032-fe0f-20e3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"three\",\n\t\t\t\"keycap 3\"\n\t\t],\n\t\tu: \"0033-fe0f-20e3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"four\",\n\t\t\t\"keycap 4\"\n\t\t],\n\t\tu: \"0034-fe0f-20e3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"five\",\n\t\t\t\"keycap 5\"\n\t\t],\n\t\tu: \"0035-fe0f-20e3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"six\",\n\t\t\t\"keycap 6\"\n\t\t],\n\t\tu: \"0036-fe0f-20e3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"seven\",\n\t\t\t\"keycap 7\"\n\t\t],\n\t\tu: \"0037-fe0f-20e3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"eight\",\n\t\t\t\"keycap 8\"\n\t\t],\n\t\tu: \"0038-fe0f-20e3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"nine\",\n\t\t\t\"keycap 9\"\n\t\t],\n\t\tu: \"0039-fe0f-20e3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"keycap ten\"\n\t\t],\n\t\tu: \"1f51f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"capital abcd\",\n\t\t\t\"input symbol for latin capital letters\"\n\t\t],\n\t\tu: \"1f520\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"abcd\",\n\t\t\t\"input symbol for latin small letters\"\n\t\t],\n\t\tu: \"1f521\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"1234\",\n\t\t\t\"input symbol for numbers\"\n\t\t],\n\t\tu: \"1f522\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"symbols\",\n\t\t\t\"input symbol for symbols\"\n\t\t],\n\t\tu: \"1f523\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"abc\",\n\t\t\t\"input symbol for latin letters\"\n\t\t],\n\t\tu: \"1f524\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"a\",\n\t\t\t\"negative squared latin capital letter a\"\n\t\t],\n\t\tu: \"1f170-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ab\",\n\t\t\t\"negative squared ab\"\n\t\t],\n\t\tu: \"1f18e\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"b\",\n\t\t\t\"negative squared latin capital letter b\"\n\t\t],\n\t\tu: \"1f171-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cl\",\n\t\t\t\"squared cl\"\n\t\t],\n\t\tu: \"1f191\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cool\",\n\t\t\t\"squared cool\"\n\t\t],\n\t\tu: \"1f192\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"free\",\n\t\t\t\"squared free\"\n\t\t],\n\t\tu: \"1f193\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"information source\"\n\t\t],\n\t\tu: \"2139-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"id\",\n\t\t\t\"squared id\"\n\t\t],\n\t\tu: \"1f194\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"m\",\n\t\t\t\"circled latin capital letter m\"\n\t\t],\n\t\tu: \"24c2-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"new\",\n\t\t\t\"squared new\"\n\t\t],\n\t\tu: \"1f195\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ng\",\n\t\t\t\"squared ng\"\n\t\t],\n\t\tu: \"1f196\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"o2\",\n\t\t\t\"negative squared latin capital letter o\"\n\t\t],\n\t\tu: \"1f17e-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ok\",\n\t\t\t\"squared ok\"\n\t\t],\n\t\tu: \"1f197\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"parking\",\n\t\t\t\"negative squared latin capital letter p\"\n\t\t],\n\t\tu: \"1f17f-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sos\",\n\t\t\t\"squared sos\"\n\t\t],\n\t\tu: \"1f198\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"up\",\n\t\t\t\"squared up with exclamation mark\"\n\t\t],\n\t\tu: \"1f199\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"vs\",\n\t\t\t\"squared vs\"\n\t\t],\n\t\tu: \"1f19a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"koko\",\n\t\t\t\"squared katakana koko\"\n\t\t],\n\t\tu: \"1f201\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"sa\",\n\t\t\t\"squared katakana sa\"\n\t\t],\n\t\tu: \"1f202-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"u6708\",\n\t\t\t\"squared cjk unified ideograph-6708\"\n\t\t],\n\t\tu: \"1f237-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"u6709\",\n\t\t\t\"squared cjk unified ideograph-6709\"\n\t\t],\n\t\tu: \"1f236\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"u6307\",\n\t\t\t\"squared cjk unified ideograph-6307\"\n\t\t],\n\t\tu: \"1f22f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ideograph advantage\",\n\t\t\t\"circled ideograph advantage\"\n\t\t],\n\t\tu: \"1f250\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"u5272\",\n\t\t\t\"squared cjk unified ideograph-5272\"\n\t\t],\n\t\tu: \"1f239\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"u7121\",\n\t\t\t\"squared cjk unified ideograph-7121\"\n\t\t],\n\t\tu: \"1f21a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"u7981\",\n\t\t\t\"squared cjk unified ideograph-7981\"\n\t\t],\n\t\tu: \"1f232\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"accept\",\n\t\t\t\"circled ideograph accept\"\n\t\t],\n\t\tu: \"1f251\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"u7533\",\n\t\t\t\"squared cjk unified ideograph-7533\"\n\t\t],\n\t\tu: \"1f238\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"u5408\",\n\t\t\t\"squared cjk unified ideograph-5408\"\n\t\t],\n\t\tu: \"1f234\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"u7a7a\",\n\t\t\t\"squared cjk unified ideograph-7a7a\"\n\t\t],\n\t\tu: \"1f233\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"congratulations\",\n\t\t\t\"circled ideograph congratulation\"\n\t\t],\n\t\tu: \"3297-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"secret\",\n\t\t\t\"circled ideograph secret\"\n\t\t],\n\t\tu: \"3299-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"u55b6\",\n\t\t\t\"squared cjk unified ideograph-55b6\"\n\t\t],\n\t\tu: \"1f23a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"u6e80\",\n\t\t\t\"squared cjk unified ideograph-6e80\"\n\t\t],\n\t\tu: \"1f235\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"red circle\",\n\t\t\t\"large red circle\"\n\t\t],\n\t\tu: \"1f534\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large orange circle\"\n\t\t],\n\t\tu: \"1f7e0\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large yellow circle\"\n\t\t],\n\t\tu: \"1f7e1\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large green circle\"\n\t\t],\n\t\tu: \"1f7e2\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large blue circle\"\n\t\t],\n\t\tu: \"1f535\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large purple circle\"\n\t\t],\n\t\tu: \"1f7e3\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large brown circle\"\n\t\t],\n\t\tu: \"1f7e4\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"black circle\",\n\t\t\t\"medium black circle\"\n\t\t],\n\t\tu: \"26ab\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"white circle\",\n\t\t\t\"medium white circle\"\n\t\t],\n\t\tu: \"26aa\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large red square\"\n\t\t],\n\t\tu: \"1f7e5\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large orange square\"\n\t\t],\n\t\tu: \"1f7e7\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large yellow square\"\n\t\t],\n\t\tu: \"1f7e8\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large green square\"\n\t\t],\n\t\tu: \"1f7e9\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large blue square\"\n\t\t],\n\t\tu: \"1f7e6\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large purple square\"\n\t\t],\n\t\tu: \"1f7ea\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large brown square\"\n\t\t],\n\t\tu: \"1f7eb\",\n\t\ta: \"12.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"black large square\"\n\t\t],\n\t\tu: \"2b1b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"white large square\"\n\t\t],\n\t\tu: \"2b1c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"black medium square\"\n\t\t],\n\t\tu: \"25fc-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"white medium square\"\n\t\t],\n\t\tu: \"25fb-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"black medium small square\"\n\t\t],\n\t\tu: \"25fe\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"white medium small square\"\n\t\t],\n\t\tu: \"25fd\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"black small square\"\n\t\t],\n\t\tu: \"25aa-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"white small square\"\n\t\t],\n\t\tu: \"25ab-fe0f\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large orange diamond\"\n\t\t],\n\t\tu: \"1f536\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"large blue diamond\"\n\t\t],\n\t\tu: \"1f537\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"small orange diamond\"\n\t\t],\n\t\tu: \"1f538\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"small blue diamond\"\n\t\t],\n\t\tu: \"1f539\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"small red triangle\",\n\t\t\t\"up-pointing red triangle\"\n\t\t],\n\t\tu: \"1f53a\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"small red triangle down\",\n\t\t\t\"down-pointing red triangle\"\n\t\t],\n\t\tu: \"1f53b\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"diamond shape with a dot inside\"\n\t\t],\n\t\tu: \"1f4a0\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"radio button\"\n\t\t],\n\t\tu: \"1f518\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"white square button\"\n\t\t],\n\t\tu: \"1f533\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"black square button\"\n\t\t],\n\t\tu: \"1f532\",\n\t\ta: \"0.6\"\n\t}\n];\nvar flags = [\n\t{\n\t\tn: [\n\t\t\t\"chequered flag\",\n\t\t\t\"checkered flag\"\n\t\t],\n\t\tu: \"1f3c1\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"triangular flag on post\"\n\t\t],\n\t\tu: \"1f6a9\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"crossed flags\"\n\t\t],\n\t\tu: \"1f38c\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"waving black flag\"\n\t\t],\n\t\tu: \"1f3f4\",\n\t\ta: \"1.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"white flag\",\n\t\t\t\"waving white flag\"\n\t\t],\n\t\tu: \"1f3f3-fe0f\",\n\t\ta: \"0.7\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"rainbow flag\",\n\t\t\t\"rainbow-flag\"\n\t\t],\n\t\tu: \"1f3f3-fe0f-200d-1f308\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"transgender flag\"\n\t\t],\n\t\tu: \"1f3f3-fe0f-200d-26a7-fe0f\",\n\t\ta: \"13.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"pirate flag\"\n\t\t],\n\t\tu: \"1f3f4-200d-2620-fe0f\",\n\t\ta: \"11.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ac\",\n\t\t\t\"ascension island flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1e8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ad\",\n\t\t\t\"andorra flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1e9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ae\",\n\t\t\t\"united arab emirates flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1ea\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-af\",\n\t\t\t\"afghanistan flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1eb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ag\",\n\t\t\t\"antigua & barbuda flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1ec\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ai\",\n\t\t\t\"anguilla flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1ee\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-al\",\n\t\t\t\"albania flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1f1\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-am\",\n\t\t\t\"armenia flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ao\",\n\t\t\t\"angola flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1f4\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-aq\",\n\t\t\t\"antarctica flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1f6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ar\",\n\t\t\t\"argentina flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1f7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-as\",\n\t\t\t\"american samoa flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1f8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-at\",\n\t\t\t\"austria flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1f9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-au\",\n\t\t\t\"australia flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1fa\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-aw\",\n\t\t\t\"aruba flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1fc\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ax\",\n\t\t\t\"Ã¥land islands flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1fd\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-az\",\n\t\t\t\"azerbaijan flag\"\n\t\t],\n\t\tu: \"1f1e6-1f1ff\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ba\",\n\t\t\t\"bosnia & herzegovina flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1e6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bb\",\n\t\t\t\"barbados flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1e7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bd\",\n\t\t\t\"bangladesh flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1e9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-be\",\n\t\t\t\"belgium flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1ea\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bf\",\n\t\t\t\"burkina faso flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1eb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bg\",\n\t\t\t\"bulgaria flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1ec\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bh\",\n\t\t\t\"bahrain flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1ed\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bi\",\n\t\t\t\"burundi flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1ee\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bj\",\n\t\t\t\"benin flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1ef\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bl\",\n\t\t\t\"st. barthélemy flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1f1\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bm\",\n\t\t\t\"bermuda flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bn\",\n\t\t\t\"brunei flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1f3\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bo\",\n\t\t\t\"bolivia flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1f4\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bq\",\n\t\t\t\"caribbean netherlands flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1f6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-br\",\n\t\t\t\"brazil flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1f7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bs\",\n\t\t\t\"bahamas flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1f8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bt\",\n\t\t\t\"bhutan flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1f9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bv\",\n\t\t\t\"bouvet island flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1fb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bw\",\n\t\t\t\"botswana flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1fc\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-by\",\n\t\t\t\"belarus flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1fe\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-bz\",\n\t\t\t\"belize flag\"\n\t\t],\n\t\tu: \"1f1e7-1f1ff\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ca\",\n\t\t\t\"canada flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1e6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-cc\",\n\t\t\t\"cocos (keeling) islands flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1e8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-cd\",\n\t\t\t\"congo - kinshasa flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1e9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-cf\",\n\t\t\t\"central african republic flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1eb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-cg\",\n\t\t\t\"congo - brazzaville flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1ec\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ch\",\n\t\t\t\"switzerland flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1ed\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ci\",\n\t\t\t\"côte d’ivoire flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1ee\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ck\",\n\t\t\t\"cook islands flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1f0\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-cl\",\n\t\t\t\"chile flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1f1\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-cm\",\n\t\t\t\"cameroon flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"cn\",\n\t\t\t\"flag-cn\",\n\t\t\t\"china flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1f3\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-co\",\n\t\t\t\"colombia flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1f4\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-cp\",\n\t\t\t\"clipperton island flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1f5\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-cr\",\n\t\t\t\"costa rica flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1f7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-cu\",\n\t\t\t\"cuba flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1fa\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-cv\",\n\t\t\t\"cape verde flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1fb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-cw\",\n\t\t\t\"curaçao flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1fc\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-cx\",\n\t\t\t\"christmas island flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1fd\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-cy\",\n\t\t\t\"cyprus flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1fe\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-cz\",\n\t\t\t\"czechia flag\"\n\t\t],\n\t\tu: \"1f1e8-1f1ff\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"de\",\n\t\t\t\"flag-de\",\n\t\t\t\"germany flag\"\n\t\t],\n\t\tu: \"1f1e9-1f1ea\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-dg\",\n\t\t\t\"diego garcia flag\"\n\t\t],\n\t\tu: \"1f1e9-1f1ec\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-dj\",\n\t\t\t\"djibouti flag\"\n\t\t],\n\t\tu: \"1f1e9-1f1ef\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-dk\",\n\t\t\t\"denmark flag\"\n\t\t],\n\t\tu: \"1f1e9-1f1f0\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-dm\",\n\t\t\t\"dominica flag\"\n\t\t],\n\t\tu: \"1f1e9-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-do\",\n\t\t\t\"dominican republic flag\"\n\t\t],\n\t\tu: \"1f1e9-1f1f4\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-dz\",\n\t\t\t\"algeria flag\"\n\t\t],\n\t\tu: \"1f1e9-1f1ff\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ea\",\n\t\t\t\"ceuta & melilla flag\"\n\t\t],\n\t\tu: \"1f1ea-1f1e6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ec\",\n\t\t\t\"ecuador flag\"\n\t\t],\n\t\tu: \"1f1ea-1f1e8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ee\",\n\t\t\t\"estonia flag\"\n\t\t],\n\t\tu: \"1f1ea-1f1ea\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-eg\",\n\t\t\t\"egypt flag\"\n\t\t],\n\t\tu: \"1f1ea-1f1ec\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-eh\",\n\t\t\t\"western sahara flag\"\n\t\t],\n\t\tu: \"1f1ea-1f1ed\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-er\",\n\t\t\t\"eritrea flag\"\n\t\t],\n\t\tu: \"1f1ea-1f1f7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"es\",\n\t\t\t\"flag-es\",\n\t\t\t\"spain flag\"\n\t\t],\n\t\tu: \"1f1ea-1f1f8\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-et\",\n\t\t\t\"ethiopia flag\"\n\t\t],\n\t\tu: \"1f1ea-1f1f9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-eu\",\n\t\t\t\"european union flag\"\n\t\t],\n\t\tu: \"1f1ea-1f1fa\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-fi\",\n\t\t\t\"finland flag\"\n\t\t],\n\t\tu: \"1f1eb-1f1ee\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-fj\",\n\t\t\t\"fiji flag\"\n\t\t],\n\t\tu: \"1f1eb-1f1ef\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-fk\",\n\t\t\t\"falkland islands flag\"\n\t\t],\n\t\tu: \"1f1eb-1f1f0\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-fm\",\n\t\t\t\"micronesia flag\"\n\t\t],\n\t\tu: \"1f1eb-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-fo\",\n\t\t\t\"faroe islands flag\"\n\t\t],\n\t\tu: \"1f1eb-1f1f4\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"fr\",\n\t\t\t\"flag-fr\",\n\t\t\t\"france flag\"\n\t\t],\n\t\tu: \"1f1eb-1f1f7\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ga\",\n\t\t\t\"gabon flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1e6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"gb\",\n\t\t\t\"uk\",\n\t\t\t\"flag-gb\",\n\t\t\t\"united kingdom flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1e7\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gd\",\n\t\t\t\"grenada flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1e9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ge\",\n\t\t\t\"georgia flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1ea\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gf\",\n\t\t\t\"french guiana flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1eb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gg\",\n\t\t\t\"guernsey flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1ec\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gh\",\n\t\t\t\"ghana flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1ed\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gi\",\n\t\t\t\"gibraltar flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1ee\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gl\",\n\t\t\t\"greenland flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1f1\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gm\",\n\t\t\t\"gambia flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gn\",\n\t\t\t\"guinea flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1f3\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gp\",\n\t\t\t\"guadeloupe flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1f5\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gq\",\n\t\t\t\"equatorial guinea flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1f6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gr\",\n\t\t\t\"greece flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1f7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gs\",\n\t\t\t\"south georgia & south sandwich islands flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1f8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gt\",\n\t\t\t\"guatemala flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1f9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gu\",\n\t\t\t\"guam flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1fa\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gw\",\n\t\t\t\"guinea-bissau flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1fc\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-gy\",\n\t\t\t\"guyana flag\"\n\t\t],\n\t\tu: \"1f1ec-1f1fe\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-hk\",\n\t\t\t\"hong kong sar china flag\"\n\t\t],\n\t\tu: \"1f1ed-1f1f0\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-hm\",\n\t\t\t\"heard & mcdonald islands flag\"\n\t\t],\n\t\tu: \"1f1ed-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-hn\",\n\t\t\t\"honduras flag\"\n\t\t],\n\t\tu: \"1f1ed-1f1f3\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-hr\",\n\t\t\t\"croatia flag\"\n\t\t],\n\t\tu: \"1f1ed-1f1f7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ht\",\n\t\t\t\"haiti flag\"\n\t\t],\n\t\tu: \"1f1ed-1f1f9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-hu\",\n\t\t\t\"hungary flag\"\n\t\t],\n\t\tu: \"1f1ed-1f1fa\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ic\",\n\t\t\t\"canary islands flag\"\n\t\t],\n\t\tu: \"1f1ee-1f1e8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-id\",\n\t\t\t\"indonesia flag\"\n\t\t],\n\t\tu: \"1f1ee-1f1e9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ie\",\n\t\t\t\"ireland flag\"\n\t\t],\n\t\tu: \"1f1ee-1f1ea\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-il\",\n\t\t\t\"israel flag\"\n\t\t],\n\t\tu: \"1f1ee-1f1f1\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-im\",\n\t\t\t\"isle of man flag\"\n\t\t],\n\t\tu: \"1f1ee-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-in\",\n\t\t\t\"india flag\"\n\t\t],\n\t\tu: \"1f1ee-1f1f3\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-io\",\n\t\t\t\"british indian ocean territory flag\"\n\t\t],\n\t\tu: \"1f1ee-1f1f4\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-iq\",\n\t\t\t\"iraq flag\"\n\t\t],\n\t\tu: \"1f1ee-1f1f6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ir\",\n\t\t\t\"iran flag\"\n\t\t],\n\t\tu: \"1f1ee-1f1f7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-is\",\n\t\t\t\"iceland flag\"\n\t\t],\n\t\tu: \"1f1ee-1f1f8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"it\",\n\t\t\t\"flag-it\",\n\t\t\t\"italy flag\"\n\t\t],\n\t\tu: \"1f1ee-1f1f9\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-je\",\n\t\t\t\"jersey flag\"\n\t\t],\n\t\tu: \"1f1ef-1f1ea\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-jm\",\n\t\t\t\"jamaica flag\"\n\t\t],\n\t\tu: \"1f1ef-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-jo\",\n\t\t\t\"jordan flag\"\n\t\t],\n\t\tu: \"1f1ef-1f1f4\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"jp\",\n\t\t\t\"flag-jp\",\n\t\t\t\"japan flag\"\n\t\t],\n\t\tu: \"1f1ef-1f1f5\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ke\",\n\t\t\t\"kenya flag\"\n\t\t],\n\t\tu: \"1f1f0-1f1ea\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-kg\",\n\t\t\t\"kyrgyzstan flag\"\n\t\t],\n\t\tu: \"1f1f0-1f1ec\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-kh\",\n\t\t\t\"cambodia flag\"\n\t\t],\n\t\tu: \"1f1f0-1f1ed\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ki\",\n\t\t\t\"kiribati flag\"\n\t\t],\n\t\tu: \"1f1f0-1f1ee\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-km\",\n\t\t\t\"comoros flag\"\n\t\t],\n\t\tu: \"1f1f0-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-kn\",\n\t\t\t\"st. kitts & nevis flag\"\n\t\t],\n\t\tu: \"1f1f0-1f1f3\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-kp\",\n\t\t\t\"north korea flag\"\n\t\t],\n\t\tu: \"1f1f0-1f1f5\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"kr\",\n\t\t\t\"flag-kr\",\n\t\t\t\"south korea flag\"\n\t\t],\n\t\tu: \"1f1f0-1f1f7\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-kw\",\n\t\t\t\"kuwait flag\"\n\t\t],\n\t\tu: \"1f1f0-1f1fc\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ky\",\n\t\t\t\"cayman islands flag\"\n\t\t],\n\t\tu: \"1f1f0-1f1fe\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-kz\",\n\t\t\t\"kazakhstan flag\"\n\t\t],\n\t\tu: \"1f1f0-1f1ff\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-la\",\n\t\t\t\"laos flag\"\n\t\t],\n\t\tu: \"1f1f1-1f1e6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-lb\",\n\t\t\t\"lebanon flag\"\n\t\t],\n\t\tu: \"1f1f1-1f1e7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-lc\",\n\t\t\t\"st. lucia flag\"\n\t\t],\n\t\tu: \"1f1f1-1f1e8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-li\",\n\t\t\t\"liechtenstein flag\"\n\t\t],\n\t\tu: \"1f1f1-1f1ee\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-lk\",\n\t\t\t\"sri lanka flag\"\n\t\t],\n\t\tu: \"1f1f1-1f1f0\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-lr\",\n\t\t\t\"liberia flag\"\n\t\t],\n\t\tu: \"1f1f1-1f1f7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ls\",\n\t\t\t\"lesotho flag\"\n\t\t],\n\t\tu: \"1f1f1-1f1f8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-lt\",\n\t\t\t\"lithuania flag\"\n\t\t],\n\t\tu: \"1f1f1-1f1f9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-lu\",\n\t\t\t\"luxembourg flag\"\n\t\t],\n\t\tu: \"1f1f1-1f1fa\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-lv\",\n\t\t\t\"latvia flag\"\n\t\t],\n\t\tu: \"1f1f1-1f1fb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ly\",\n\t\t\t\"libya flag\"\n\t\t],\n\t\tu: \"1f1f1-1f1fe\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ma\",\n\t\t\t\"morocco flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1e6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mc\",\n\t\t\t\"monaco flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1e8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-md\",\n\t\t\t\"moldova flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1e9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-me\",\n\t\t\t\"montenegro flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1ea\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mf\",\n\t\t\t\"st. martin flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1eb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mg\",\n\t\t\t\"madagascar flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1ec\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mh\",\n\t\t\t\"marshall islands flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1ed\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mk\",\n\t\t\t\"north macedonia flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1f0\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ml\",\n\t\t\t\"mali flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1f1\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mm\",\n\t\t\t\"myanmar (burma) flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mn\",\n\t\t\t\"mongolia flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1f3\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mo\",\n\t\t\t\"macao sar china flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1f4\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mp\",\n\t\t\t\"northern mariana islands flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1f5\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mq\",\n\t\t\t\"martinique flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1f6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mr\",\n\t\t\t\"mauritania flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1f7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ms\",\n\t\t\t\"montserrat flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1f8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mt\",\n\t\t\t\"malta flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1f9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mu\",\n\t\t\t\"mauritius flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1fa\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mv\",\n\t\t\t\"maldives flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1fb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mw\",\n\t\t\t\"malawi flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1fc\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mx\",\n\t\t\t\"mexico flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1fd\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-my\",\n\t\t\t\"malaysia flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1fe\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-mz\",\n\t\t\t\"mozambique flag\"\n\t\t],\n\t\tu: \"1f1f2-1f1ff\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-na\",\n\t\t\t\"namibia flag\"\n\t\t],\n\t\tu: \"1f1f3-1f1e6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-nc\",\n\t\t\t\"new caledonia flag\"\n\t\t],\n\t\tu: \"1f1f3-1f1e8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ne\",\n\t\t\t\"niger flag\"\n\t\t],\n\t\tu: \"1f1f3-1f1ea\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-nf\",\n\t\t\t\"norfolk island flag\"\n\t\t],\n\t\tu: \"1f1f3-1f1eb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ng\",\n\t\t\t\"nigeria flag\"\n\t\t],\n\t\tu: \"1f1f3-1f1ec\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ni\",\n\t\t\t\"nicaragua flag\"\n\t\t],\n\t\tu: \"1f1f3-1f1ee\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-nl\",\n\t\t\t\"netherlands flag\"\n\t\t],\n\t\tu: \"1f1f3-1f1f1\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-no\",\n\t\t\t\"norway flag\"\n\t\t],\n\t\tu: \"1f1f3-1f1f4\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-np\",\n\t\t\t\"nepal flag\"\n\t\t],\n\t\tu: \"1f1f3-1f1f5\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-nr\",\n\t\t\t\"nauru flag\"\n\t\t],\n\t\tu: \"1f1f3-1f1f7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-nu\",\n\t\t\t\"niue flag\"\n\t\t],\n\t\tu: \"1f1f3-1f1fa\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-nz\",\n\t\t\t\"new zealand flag\"\n\t\t],\n\t\tu: \"1f1f3-1f1ff\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-om\",\n\t\t\t\"oman flag\"\n\t\t],\n\t\tu: \"1f1f4-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-pa\",\n\t\t\t\"panama flag\"\n\t\t],\n\t\tu: \"1f1f5-1f1e6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-pe\",\n\t\t\t\"peru flag\"\n\t\t],\n\t\tu: \"1f1f5-1f1ea\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-pf\",\n\t\t\t\"french polynesia flag\"\n\t\t],\n\t\tu: \"1f1f5-1f1eb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-pg\",\n\t\t\t\"papua new guinea flag\"\n\t\t],\n\t\tu: \"1f1f5-1f1ec\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ph\",\n\t\t\t\"philippines flag\"\n\t\t],\n\t\tu: \"1f1f5-1f1ed\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-pk\",\n\t\t\t\"pakistan flag\"\n\t\t],\n\t\tu: \"1f1f5-1f1f0\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-pl\",\n\t\t\t\"poland flag\"\n\t\t],\n\t\tu: \"1f1f5-1f1f1\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-pm\",\n\t\t\t\"st. pierre & miquelon flag\"\n\t\t],\n\t\tu: \"1f1f5-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-pn\",\n\t\t\t\"pitcairn islands flag\"\n\t\t],\n\t\tu: \"1f1f5-1f1f3\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-pr\",\n\t\t\t\"puerto rico flag\"\n\t\t],\n\t\tu: \"1f1f5-1f1f7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ps\",\n\t\t\t\"palestinian territories flag\"\n\t\t],\n\t\tu: \"1f1f5-1f1f8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-pt\",\n\t\t\t\"portugal flag\"\n\t\t],\n\t\tu: \"1f1f5-1f1f9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-pw\",\n\t\t\t\"palau flag\"\n\t\t],\n\t\tu: \"1f1f5-1f1fc\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-py\",\n\t\t\t\"paraguay flag\"\n\t\t],\n\t\tu: \"1f1f5-1f1fe\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-qa\",\n\t\t\t\"qatar flag\"\n\t\t],\n\t\tu: \"1f1f6-1f1e6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-re\",\n\t\t\t\"réunion flag\"\n\t\t],\n\t\tu: \"1f1f7-1f1ea\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ro\",\n\t\t\t\"romania flag\"\n\t\t],\n\t\tu: \"1f1f7-1f1f4\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-rs\",\n\t\t\t\"serbia flag\"\n\t\t],\n\t\tu: \"1f1f7-1f1f8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"ru\",\n\t\t\t\"flag-ru\",\n\t\t\t\"russia flag\"\n\t\t],\n\t\tu: \"1f1f7-1f1fa\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-rw\",\n\t\t\t\"rwanda flag\"\n\t\t],\n\t\tu: \"1f1f7-1f1fc\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sa\",\n\t\t\t\"saudi arabia flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1e6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sb\",\n\t\t\t\"solomon islands flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1e7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sc\",\n\t\t\t\"seychelles flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1e8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sd\",\n\t\t\t\"sudan flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1e9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-se\",\n\t\t\t\"sweden flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1ea\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sg\",\n\t\t\t\"singapore flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1ec\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sh\",\n\t\t\t\"st. helena flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1ed\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-si\",\n\t\t\t\"slovenia flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1ee\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sj\",\n\t\t\t\"svalbard & jan mayen flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1ef\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sk\",\n\t\t\t\"slovakia flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1f0\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sl\",\n\t\t\t\"sierra leone flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1f1\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sm\",\n\t\t\t\"san marino flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sn\",\n\t\t\t\"senegal flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1f3\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-so\",\n\t\t\t\"somalia flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1f4\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sr\",\n\t\t\t\"suriname flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1f7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ss\",\n\t\t\t\"south sudan flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1f8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-st\",\n\t\t\t\"são tomé & prÃncipe flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1f9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sv\",\n\t\t\t\"el salvador flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1fb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sx\",\n\t\t\t\"sint maarten flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1fd\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sy\",\n\t\t\t\"syria flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1fe\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-sz\",\n\t\t\t\"eswatini flag\"\n\t\t],\n\t\tu: \"1f1f8-1f1ff\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ta\",\n\t\t\t\"tristan da cunha flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1e6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-tc\",\n\t\t\t\"turks & caicos islands flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1e8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-td\",\n\t\t\t\"chad flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1e9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-tf\",\n\t\t\t\"french southern territories flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1eb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-tg\",\n\t\t\t\"togo flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1ec\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-th\",\n\t\t\t\"thailand flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1ed\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-tj\",\n\t\t\t\"tajikistan flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1ef\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-tk\",\n\t\t\t\"tokelau flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1f0\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-tl\",\n\t\t\t\"timor-leste flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1f1\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-tm\",\n\t\t\t\"turkmenistan flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-tn\",\n\t\t\t\"tunisia flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1f3\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-to\",\n\t\t\t\"tonga flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1f4\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-tr\",\n\t\t\t\"turkey flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1f7\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-tt\",\n\t\t\t\"trinidad & tobago flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1f9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-tv\",\n\t\t\t\"tuvalu flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1fb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-tw\",\n\t\t\t\"taiwan flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1fc\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-tz\",\n\t\t\t\"tanzania flag\"\n\t\t],\n\t\tu: \"1f1f9-1f1ff\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ua\",\n\t\t\t\"ukraine flag\"\n\t\t],\n\t\tu: \"1f1fa-1f1e6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ug\",\n\t\t\t\"uganda flag\"\n\t\t],\n\t\tu: \"1f1fa-1f1ec\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-um\",\n\t\t\t\"u.s. outlying islands flag\"\n\t\t],\n\t\tu: \"1f1fa-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-un\",\n\t\t\t\"united nations flag\"\n\t\t],\n\t\tu: \"1f1fa-1f1f3\",\n\t\ta: \"4.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"us\",\n\t\t\t\"flag-us\",\n\t\t\t\"united states flag\"\n\t\t],\n\t\tu: \"1f1fa-1f1f8\",\n\t\ta: \"0.6\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-uy\",\n\t\t\t\"uruguay flag\"\n\t\t],\n\t\tu: \"1f1fa-1f1fe\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-uz\",\n\t\t\t\"uzbekistan flag\"\n\t\t],\n\t\tu: \"1f1fa-1f1ff\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-va\",\n\t\t\t\"vatican city flag\"\n\t\t],\n\t\tu: \"1f1fb-1f1e6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-vc\",\n\t\t\t\"st. vincent & grenadines flag\"\n\t\t],\n\t\tu: \"1f1fb-1f1e8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ve\",\n\t\t\t\"venezuela flag\"\n\t\t],\n\t\tu: \"1f1fb-1f1ea\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-vg\",\n\t\t\t\"british virgin islands flag\"\n\t\t],\n\t\tu: \"1f1fb-1f1ec\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-vi\",\n\t\t\t\"u.s. virgin islands flag\"\n\t\t],\n\t\tu: \"1f1fb-1f1ee\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-vn\",\n\t\t\t\"vietnam flag\"\n\t\t],\n\t\tu: \"1f1fb-1f1f3\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-vu\",\n\t\t\t\"vanuatu flag\"\n\t\t],\n\t\tu: \"1f1fb-1f1fa\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-wf\",\n\t\t\t\"wallis & futuna flag\"\n\t\t],\n\t\tu: \"1f1fc-1f1eb\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ws\",\n\t\t\t\"samoa flag\"\n\t\t],\n\t\tu: \"1f1fc-1f1f8\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-xk\",\n\t\t\t\"kosovo flag\"\n\t\t],\n\t\tu: \"1f1fd-1f1f0\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-ye\",\n\t\t\t\"yemen flag\"\n\t\t],\n\t\tu: \"1f1fe-1f1ea\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-yt\",\n\t\t\t\"mayotte flag\"\n\t\t],\n\t\tu: \"1f1fe-1f1f9\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-za\",\n\t\t\t\"south africa flag\"\n\t\t],\n\t\tu: \"1f1ff-1f1e6\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-zm\",\n\t\t\t\"zambia flag\"\n\t\t],\n\t\tu: \"1f1ff-1f1f2\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"flag-zw\",\n\t\t\t\"zimbabwe flag\"\n\t\t],\n\t\tu: \"1f1ff-1f1fc\",\n\t\ta: \"2.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"england flag\",\n\t\t\t\"flag-england\"\n\t\t],\n\t\tu: \"1f3f4-e0067-e0062-e0065-e006e-e0067-e007f\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"scotland flag\",\n\t\t\t\"flag-scotland\"\n\t\t],\n\t\tu: \"1f3f4-e0067-e0062-e0073-e0063-e0074-e007f\",\n\t\ta: \"5.0\"\n\t},\n\t{\n\t\tn: [\n\t\t\t\"wales flag\",\n\t\t\t\"flag-wales\"\n\t\t],\n\t\tu: \"1f3f4-e0067-e0062-e0077-e006c-e0073-e007f\",\n\t\ta: \"5.0\"\n\t}\n];\nvar emojis = {\n\tsmileys_people: smileys_people,\n\tanimals_nature: animals_nature,\n\tfood_drink: food_drink,\n\ttravel_places: travel_places,\n\tactivities: activities,\n\tobjects: objects,\n\tsymbols: symbols,\n\tflags: flags\n};\n\nvar skinToneVariations = [SkinTones.NEUTRAL, SkinTones.LIGHT, SkinTones.MEDIUM_LIGHT, SkinTones.MEDIUM, SkinTones.MEDIUM_DARK, SkinTones.DARK];\nvar skinTonesNamed = /*#__PURE__*/Object.entries(SkinTones).reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[value] = key;\n return acc;\n}, {});\nvar skinTonesMapped = /*#__PURE__*/skinToneVariations.reduce(function (mapped, skinTone) {\n var _Object$assign;\n\n return Object.assign(mapped, (_Object$assign = {}, _Object$assign[skinTone] = skinTone, _Object$assign));\n}, {});\n\nvar EmojiProperties;\n\n(function (EmojiProperties) {\n EmojiProperties[\"name\"] = \"n\";\n EmojiProperties[\"unified\"] = \"u\";\n EmojiProperties[\"variations\"] = \"v\";\n EmojiProperties[\"added_in\"] = \"a\";\n})(EmojiProperties || (EmojiProperties = {}));\n\nfunction emojiNames(emoji) {\n var _emoji$EmojiPropertie;\n\n return (_emoji$EmojiPropertie = emoji[EmojiProperties.name]) != null ? _emoji$EmojiPropertie : [];\n}\nfunction addedIn(emoji) {\n return parseFloat(emoji[EmojiProperties.added_in]);\n}\nfunction emojiName(emoji) {\n if (!emoji) {\n return '';\n }\n\n return emojiNames(emoji)[0];\n}\nfunction unifiedWithoutSkinTone(unified) {\n var splat = unified.split('-');\n\n var _splat$splice = splat.splice(1, 1),\n skinTone = _splat$splice[0];\n\n if (skinTonesMapped[skinTone]) {\n return splat.join('-');\n }\n\n return unified;\n}\nfunction emojiUnified(emoji, skinTone) {\n var _emojiVariationUnifie;\n\n var unified = emoji[EmojiProperties.unified];\n\n if (!skinTone || !emojiHasVariations(emoji)) {\n return unified;\n }\n\n return (_emojiVariationUnifie = emojiVariationUnified(emoji, skinTone)) != null ? _emojiVariationUnifie : unified;\n}\nfunction emojisByCategory(category) {\n var _emojis$category;\n\n // @ts-ignore\n return (_emojis$category = emojis == null ? void 0 : emojis[category]) != null ? _emojis$category : [];\n} // WARNING: DO NOT USE DIRECTLY\n\nfunction emojiUrlByUnified(unified, emojiStyle) {\n return \"\" + cdnUrl(emojiStyle) + unified + \".png\";\n}\nfunction emojiVariations(emoji) {\n var _emoji$EmojiPropertie2;\n\n return (_emoji$EmojiPropertie2 = emoji[EmojiProperties.variations]) != null ? _emoji$EmojiPropertie2 : [];\n}\nfunction emojiHasVariations(emoji) {\n return emojiVariations(emoji).length > 0;\n}\nfunction emojiVariationUnified(emoji, skinTone) {\n return skinTone ? emojiVariations(emoji).find(function (variation) {\n return variation.includes(skinTone);\n }) : emojiUnified(emoji);\n}\nfunction emojiByUnified(unified) {\n if (!unified) {\n return;\n }\n\n if (allEmojisByUnified[unified]) {\n return allEmojisByUnified[unified];\n }\n\n var withoutSkinTone = unifiedWithoutSkinTone(unified);\n return allEmojisByUnified[withoutSkinTone];\n}\nvar allEmojis = /*#__PURE__*/Object.values(emojis).flat();\nvar allEmojisByUnified = {};\nsetTimeout(function () {\n allEmojis.reduce(function (allEmojis, Emoji) {\n allEmojis[emojiUnified(Emoji)] = Emoji;\n return allEmojis;\n }, allEmojisByUnified);\n});\nfunction activeVariationFromUnified(unified) {\n var _unified$split = unified.split('-'),\n suspectedSkinTone = _unified$split[1];\n\n return skinToneVariations.includes(suspectedSkinTone) ? suspectedSkinTone : null;\n}\n\nvar _configByCategory;\nvar categoriesOrdered = [Categories.SUGGESTED, Categories.SMILEYS_PEOPLE, Categories.ANIMALS_NATURE, Categories.FOOD_DRINK, Categories.TRAVEL_PLACES, Categories.ACTIVITIES, Categories.OBJECTS, Categories.SYMBOLS, Categories.FLAGS];\nvar SuggestedRecent = {\n name: 'Recently Used',\n category: Categories.SUGGESTED\n};\nvar configByCategory = (_configByCategory = {}, _configByCategory[Categories.SUGGESTED] = {\n category: Categories.SUGGESTED,\n name: 'Frequently Used'\n}, _configByCategory[Categories.SMILEYS_PEOPLE] = {\n category: Categories.SMILEYS_PEOPLE,\n name: 'Smileys & People'\n}, _configByCategory[Categories.ANIMALS_NATURE] = {\n category: Categories.ANIMALS_NATURE,\n name: 'Animals & Nature'\n}, _configByCategory[Categories.FOOD_DRINK] = {\n category: Categories.FOOD_DRINK,\n name: 'Food & Drink'\n}, _configByCategory[Categories.TRAVEL_PLACES] = {\n category: Categories.TRAVEL_PLACES,\n name: 'Travel & Places'\n}, _configByCategory[Categories.ACTIVITIES] = {\n category: Categories.ACTIVITIES,\n name: 'Activities'\n}, _configByCategory[Categories.OBJECTS] = {\n category: Categories.OBJECTS,\n name: 'Objects'\n}, _configByCategory[Categories.SYMBOLS] = {\n category: Categories.SYMBOLS,\n name: 'Symbols'\n}, _configByCategory[Categories.FLAGS] = {\n category: Categories.FLAGS,\n name: 'Flags'\n}, _configByCategory);\nfunction baseCategoriesConfig(modifiers) {\n return categoriesOrdered.map(function (category) {\n return _extends({}, configByCategory[category], modifiers && modifiers[category] && modifiers[category]);\n });\n}\nfunction categoryFromCategoryConfig(category) {\n return category.category;\n}\nfunction categoryNameFromCategoryConfig(category) {\n return category.name;\n}\nfunction mergeCategoriesConfig(userCategoriesConfig, modifiers) {\n var _userCategoriesConfig;\n\n if (userCategoriesConfig === void 0) {\n userCategoriesConfig = [];\n }\n\n if (modifiers === void 0) {\n modifiers = {};\n }\n\n var extra = {};\n\n if (modifiers.suggestionMode === SuggestionMode.RECENT) {\n extra[Categories.SUGGESTED] = SuggestedRecent;\n }\n\n var base = baseCategoriesConfig(extra);\n\n if (!((_userCategoriesConfig = userCategoriesConfig) != null && _userCategoriesConfig.length)) {\n return base;\n }\n\n return userCategoriesConfig.map(function (category) {\n if (typeof category === 'string') {\n return getBaseConfigByCategory(category, extra[category]);\n }\n\n return _extends({}, getBaseConfigByCategory(category.category, extra[category.category]), category);\n });\n}\n\nfunction getBaseConfigByCategory(category, modifier) {\n if (modifier === void 0) {\n modifier = {};\n }\n\n return Object.assign(configByCategory[category], modifier);\n}\n\nfunction mergeConfig(userConfig) {\n var _userConfig$previewCo;\n\n if (userConfig === void 0) {\n userConfig = {};\n }\n\n var base = basePickerConfig();\n var previewConfig = Object.assign(base.previewConfig, (_userConfig$previewCo = userConfig.previewConfig) != null ? _userConfig$previewCo : {});\n var config = Object.assign(base, userConfig);\n var categories = mergeCategoriesConfig(userConfig.categories, {\n suggestionMode: config.suggestedEmojisMode\n });\n var skinTonePickerLocation = config.searchDisabled ? SkinTonePickerLocation.PREVIEW : config.skinTonePickerLocation;\n return _extends({}, config, {\n categories: categories,\n previewConfig: previewConfig,\n skinTonePickerLocation: skinTonePickerLocation\n });\n}\nfunction basePickerConfig() {\n return {\n autoFocusSearch: true,\n categories: baseCategoriesConfig(),\n defaultSkinTone: SkinTones.NEUTRAL,\n emojiStyle: EmojiStyle.APPLE,\n emojiVersion: null,\n getEmojiUrl: emojiUrlByUnified,\n height: 450,\n lazyLoadEmojis: false,\n onEmojiClick: function defaultOnClickHandler( // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n emoji, // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n event) {},\n previewConfig: _extends({}, basePreviewConfig),\n searchDisabled: false,\n searchPlaceHolder: 'Search',\n skinTonePickerLocation: SkinTonePickerLocation.SEARCH,\n skinTonesDisabled: false,\n suggestedEmojisMode: SuggestionMode.FREQUENT,\n theme: Theme.LIGHT,\n width: 350,\n unicodeToHide: new Set()\n };\n}\nvar basePreviewConfig = {\n defaultEmoji: '1f60a',\n defaultCaption: \"What's your mood?\",\n showPreview: true\n};\n\nvar _excluded = [\"children\"];\nvar ConfigContext = /*#__PURE__*/createContext( /*#__PURE__*/basePickerConfig());\nfunction PickerConfigProvider(_ref) {\n var children = _ref.children,\n config = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return createElement(ConfigContext.Provider, {\n value: mergeConfig(config)\n }, children);\n}\nfunction usePickerConfig() {\n return useContext(ConfigContext);\n}\n\nfunction useSearchPlaceHolderConfig() {\n var _usePickerConfig = usePickerConfig(),\n searchPlaceHolder = _usePickerConfig.searchPlaceHolder;\n\n return searchPlaceHolder;\n}\nfunction useDefaultSkinToneConfig() {\n var _usePickerConfig2 = usePickerConfig(),\n defaultSkinTone = _usePickerConfig2.defaultSkinTone;\n\n return defaultSkinTone;\n}\nfunction useSkinTonesDisabledConfig() {\n var _usePickerConfig3 = usePickerConfig(),\n skinTonesDisabled = _usePickerConfig3.skinTonesDisabled;\n\n return skinTonesDisabled;\n}\nfunction useEmojiStyleConfig() {\n var _usePickerConfig4 = usePickerConfig(),\n emojiStyle = _usePickerConfig4.emojiStyle;\n\n return emojiStyle;\n}\nfunction useAutoFocusSearchConfig() {\n var _usePickerConfig5 = usePickerConfig(),\n autoFocusSearch = _usePickerConfig5.autoFocusSearch;\n\n return autoFocusSearch;\n}\nfunction useCategoriesConfig() {\n var _usePickerConfig6 = usePickerConfig(),\n categories = _usePickerConfig6.categories;\n\n return categories;\n}\nfunction useOnEmojiClickConfig() {\n var _usePickerConfig7 = usePickerConfig(),\n onEmojiClick = _usePickerConfig7.onEmojiClick;\n\n return onEmojiClick;\n}\nfunction usePreviewConfig() {\n var _usePickerConfig8 = usePickerConfig(),\n previewConfig = _usePickerConfig8.previewConfig;\n\n return previewConfig;\n}\nfunction useThemeConfig() {\n var _usePickerConfig9 = usePickerConfig(),\n theme = _usePickerConfig9.theme;\n\n if (theme === Theme.AUTO) {\n return isSystemDarkTheme() ? Theme.DARK : Theme.LIGHT;\n }\n\n return theme;\n}\nfunction useSuggestedEmojisModeConfig() {\n var _usePickerConfig10 = usePickerConfig(),\n suggestedEmojisMode = _usePickerConfig10.suggestedEmojisMode;\n\n return suggestedEmojisMode;\n}\nfunction useLazyLoadEmojisConfig() {\n var _usePickerConfig11 = usePickerConfig(),\n lazyLoadEmojis = _usePickerConfig11.lazyLoadEmojis;\n\n return lazyLoadEmojis;\n}\nfunction usePickerSizeConfig() {\n var _usePickerConfig12 = usePickerConfig(),\n height = _usePickerConfig12.height,\n width = _usePickerConfig12.width;\n\n return {\n height: getDimension(height),\n width: getDimension(width)\n };\n}\nfunction useEmojiVersionConfig() {\n var _usePickerConfig13 = usePickerConfig(),\n emojiVersion = _usePickerConfig13.emojiVersion;\n\n return emojiVersion;\n}\nfunction useSearchDisabledConfig() {\n var _usePickerConfig14 = usePickerConfig(),\n searchDisabled = _usePickerConfig14.searchDisabled;\n\n return searchDisabled;\n}\nfunction useSkinTonePickerLocationConfig() {\n var _usePickerConfig15 = usePickerConfig(),\n skinTonePickerLocation = _usePickerConfig15.skinTonePickerLocation;\n\n return skinTonePickerLocation;\n}\nfunction useUnicodeToHide() {\n var _usePickerConfig16 = usePickerConfig(),\n unicodeToHide = _usePickerConfig16.unicodeToHide;\n\n return unicodeToHide;\n}\nfunction useGetEmojiUrlConfig() {\n var _usePickerConfig17 = usePickerConfig(),\n getEmojiUrl = _usePickerConfig17.getEmojiUrl;\n\n return getEmojiUrl;\n}\n\nfunction getDimension(dimensionConfig) {\n return typeof dimensionConfig === 'number' ? dimensionConfig + \"px\" : dimensionConfig;\n}\n\nvar alphaNumericEmojiIndex = {};\nsetTimeout(function () {\n allEmojis.reduce(function (searchIndex, emoji) {\n var joinedNameString = emojiNames(emoji).flat().join('').replace(/[^a-zA-Z\\d]/g, '').split('');\n joinedNameString.forEach(function (_char) {\n var _searchIndex$_char;\n\n searchIndex[_char] = (_searchIndex$_char = searchIndex[_char]) != null ? _searchIndex$_char : {};\n searchIndex[_char][emojiUnified(emoji)] = emoji;\n });\n return searchIndex;\n }, alphaNumericEmojiIndex);\n});\n\nfunction useDebouncedState(initialValue, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n var _useState = useState(initialValue),\n state = _useState[0],\n setState = _useState[1];\n\n var timer = useRef(null);\n\n function debouncedSetState(value) {\n return new Promise(function (resolve) {\n var _window;\n\n if (timer.current) {\n clearTimeout(timer.current);\n }\n\n timer.current = (_window = window) == null ? void 0 : _window.setTimeout(function () {\n setState(value);\n resolve(value);\n }, delay);\n });\n }\n\n return [state, debouncedSetState];\n}\n\nfunction useIsUnicodeHidden() {\n var unicodeToHide = useUnicodeToHide();\n return function (emojiUnified) {\n return unicodeToHide.has(emojiUnified);\n };\n}\n\nfunction useDisallowedEmojis() {\n var DisallowedEmojisRef = useRef({});\n var emojiVersionConfig = useEmojiVersionConfig();\n return useMemo(function () {\n var emojiVersion = parseFloat(\"\" + emojiVersionConfig);\n\n if (!emojiVersionConfig || Number.isNaN(emojiVersion)) {\n return DisallowedEmojisRef.current;\n }\n\n return allEmojis.reduce(function (disallowedEmojis, emoji) {\n if (addedInNewerVersion(emoji, emojiVersion)) {\n disallowedEmojis[emojiUnified(emoji)] = true;\n }\n\n return disallowedEmojis;\n }, DisallowedEmojisRef.current);\n }, [emojiVersionConfig]);\n}\nfunction useIsEmojiDisallowed() {\n var disallowedEmojis = useDisallowedEmojis();\n var isUnicodeHidden = useIsUnicodeHidden();\n return function isEmojiDisallowed(emoji) {\n var unified = unifiedWithoutSkinTone(emojiUnified(emoji));\n return Boolean(disallowedEmojis[unified] || isUnicodeHidden(unified));\n };\n}\n\nfunction addedInNewerVersion(emoji, supportedLevel) {\n return addedIn(emoji) > supportedLevel;\n}\n\nfunction useMarkInitialLoad(dispatch) {\n useEffect(function () {\n dispatch(true);\n }, [dispatch]);\n}\n\nfunction PickerContextProvider(_ref) {\n var children = _ref.children;\n var disallowedEmojis = useDisallowedEmojis();\n var defaultSkinTone = useDefaultSkinToneConfig(); // Initialize the filter with the inititial dictionary\n\n var filterRef = useRef(alphaNumericEmojiIndex);\n var disallowClickRef = useRef(false);\n var disallowMouseRef = useRef(false);\n var disallowedEmojisRef = useRef(disallowedEmojis);\n var suggestedUpdateState = useDebouncedState(Date.now(), 200);\n var searchTerm = useDebouncedState('', 100);\n var skinToneFanOpenState = useState(false);\n var activeSkinTone = useState(defaultSkinTone);\n var activeCategoryState = useState(null);\n var emojisThatFailedToLoadState = useState(new Set());\n var emojiVariationPickerState = useState(null);\n\n var _useState = useState(false),\n isPastInitialLoad = _useState[0],\n setIsPastInitialLoad = _useState[1];\n\n useMarkInitialLoad(setIsPastInitialLoad);\n return createElement(PickerContext.Provider, {\n value: {\n activeCategoryState: activeCategoryState,\n activeSkinTone: activeSkinTone,\n disallowClickRef: disallowClickRef,\n disallowMouseRef: disallowMouseRef,\n disallowedEmojisRef: disallowedEmojisRef,\n emojiVariationPickerState: emojiVariationPickerState,\n emojisThatFailedToLoadState: emojisThatFailedToLoadState,\n filterRef: filterRef,\n isPastInitialLoad: isPastInitialLoad,\n searchTerm: searchTerm,\n skinToneFanOpenState: skinToneFanOpenState,\n suggestedUpdateState: suggestedUpdateState\n }\n }, children);\n}\nvar PickerContext = /*#__PURE__*/createContext({\n activeCategoryState: [null, function () {}],\n activeSkinTone: [SkinTones.NEUTRAL, function () {}],\n disallowClickRef: {\n current: false\n },\n disallowMouseRef: {\n current: false\n },\n disallowedEmojisRef: {\n current: {}\n },\n emojiVariationPickerState: [null, function () {}],\n emojisThatFailedToLoadState: [/*#__PURE__*/new Set(), function () {}],\n filterRef: {\n current: {}\n },\n isPastInitialLoad: true,\n searchTerm: ['', function () {\n return new Promise(function () {\n return undefined;\n });\n }],\n skinToneFanOpenState: [false, function () {}],\n suggestedUpdateState: [/*#__PURE__*/Date.now(), function () {}]\n});\nfunction useFilterRef() {\n var _React$useContext = useContext(PickerContext),\n filterRef = _React$useContext.filterRef;\n\n return filterRef;\n}\nfunction useDisallowClickRef() {\n var _React$useContext2 = useContext(PickerContext),\n disallowClickRef = _React$useContext2.disallowClickRef;\n\n return disallowClickRef;\n}\nfunction useDisallowMouseRef() {\n var _React$useContext3 = useContext(PickerContext),\n disallowMouseRef = _React$useContext3.disallowMouseRef;\n\n return disallowMouseRef;\n}\nfunction useSearchTermState() {\n var _React$useContext4 = useContext(PickerContext),\n searchTerm = _React$useContext4.searchTerm;\n\n return searchTerm;\n}\nfunction useActiveSkinToneState() {\n var _React$useContext5 = useContext(PickerContext),\n activeSkinTone = _React$useContext5.activeSkinTone;\n\n return activeSkinTone;\n}\nfunction useEmojisThatFailedToLoadState() {\n var _React$useContext6 = useContext(PickerContext),\n emojisThatFailedToLoadState = _React$useContext6.emojisThatFailedToLoadState;\n\n return emojisThatFailedToLoadState;\n}\nfunction useIsPastInitialLoad() {\n var _React$useContext7 = useContext(PickerContext),\n isPastInitialLoad = _React$useContext7.isPastInitialLoad;\n\n return isPastInitialLoad;\n}\nfunction useEmojiVariationPickerState() {\n var _React$useContext8 = useContext(PickerContext),\n emojiVariationPickerState = _React$useContext8.emojiVariationPickerState;\n\n return emojiVariationPickerState;\n}\nfunction useSkinToneFanOpenState() {\n var _React$useContext9 = useContext(PickerContext),\n skinToneFanOpenState = _React$useContext9.skinToneFanOpenState;\n\n return skinToneFanOpenState;\n}\nfunction useUpdateSuggested() {\n var _React$useContext11 = useContext(PickerContext),\n suggestedUpdateState = _React$useContext11.suggestedUpdateState;\n\n var suggestedUpdated = suggestedUpdateState[0],\n setsuggestedUpdate = suggestedUpdateState[1];\n return [suggestedUpdated, function updateSuggested() {\n setsuggestedUpdate(Date.now());\n }];\n}\n\nfunction useDisallowMouseMove() {\n var DisallowMouseRef = useDisallowMouseRef();\n return function disallowMouseMove() {\n DisallowMouseRef.current = true;\n };\n}\nfunction useAllowMouseMove() {\n var DisallowMouseRef = useDisallowMouseRef();\n return function allowMouseMove() {\n DisallowMouseRef.current = false;\n };\n}\nfunction useIsMouseDisallowed() {\n var DisallowMouseRef = useDisallowMouseRef();\n return function isMouseDisallowed() {\n return DisallowMouseRef.current;\n };\n}\nfunction useOnMouseMove() {\n var BodyRef = useBodyRef();\n var allowMouseMove = useAllowMouseMove();\n var isMouseDisallowed = useIsMouseDisallowed();\n useEffect(function () {\n var bodyRef = BodyRef.current;\n bodyRef == null ? void 0 : bodyRef.addEventListener('mousemove', onMouseMove, {\n passive: true\n });\n\n function onMouseMove() {\n if (isMouseDisallowed()) {\n allowMouseMove();\n }\n }\n\n return function () {\n bodyRef == null ? void 0 : bodyRef.removeEventListener('mousemove', onMouseMove);\n };\n }, [BodyRef, allowMouseMove, isMouseDisallowed]);\n}\n\nfunction elementCountInRow(parent, element) {\n if (!parent || !element) {\n return 0;\n }\n\n var parentWidth = parent.getBoundingClientRect().width;\n var elementWidth = element.getBoundingClientRect().width;\n return Math.floor(parentWidth / elementWidth);\n}\nfunction elementIndexInRow(parent, element) {\n if (!parent || !element) {\n return 0;\n }\n\n var elementWidth = element.getBoundingClientRect().width;\n var elementLeft = element.getBoundingClientRect().left;\n var parentLeft = parent.getBoundingClientRect().left;\n return Math.floor((elementLeft - parentLeft) / elementWidth);\n}\nfunction rowNumber(parent, element) {\n if (!parent || !element) {\n return 0;\n }\n\n var elementHeight = element.getBoundingClientRect().height;\n var elementTop = element.getBoundingClientRect().top;\n var parentTop = parent.getBoundingClientRect().top;\n return Math.round((elementTop - parentTop) / elementHeight);\n}\nfunction hasNextRow(parent, element) {\n if (!parent || !element) {\n return false;\n }\n\n var elementHeight = element.getBoundingClientRect().height;\n var elementTop = element.getBoundingClientRect().top;\n var parentTop = parent.getBoundingClientRect().top;\n var parentHeight = parent.getBoundingClientRect().height;\n return Math.round(elementTop - parentTop + elementHeight) < parentHeight;\n}\n\nfunction getRowElements(elements, row, elementsInRow) {\n if (row === -1) {\n var lastRow = Math.floor((elements.length - 1) / elementsInRow);\n var firstElementIndex = lastRow * elementsInRow;\n var lastElementIndex = elements.length - 1;\n return elements.slice(firstElementIndex, lastElementIndex + 1);\n }\n\n return elements.slice(row * elementsInRow, (row + 1) * elementsInRow);\n}\n\nfunction getNextRowElements(allElements, currentRow, elementsInRow) {\n var nextRow = currentRow + 1;\n\n if (nextRow * elementsInRow > allElements.length) {\n return [];\n }\n\n return getRowElements(allElements, nextRow, elementsInRow);\n}\n\nfunction getElementInRow(elements, row, elementsInRow, indexInRow) {\n var rowElements = getRowElements(elements, row, elementsInRow); // get element, default to last\n\n return rowElements[indexInRow] || rowElements[rowElements.length - 1] || null;\n}\nfunction getElementInNextRow(allElements, currentRow, elementsInRow, index) {\n var nextRowElements = getNextRowElements(allElements, currentRow, elementsInRow); // return item in index, or last item in row\n\n return nextRowElements[index] || nextRowElements[nextRowElements.length - 1] || null;\n}\nfunction getElementInPrevRow(allElements, currentRow, elementsInRow, index) {\n var prevRowElements = getRowElements(allElements, currentRow - 1, elementsInRow); // default to last\n\n return prevRowElements[index] || prevRowElements[prevRowElements.length - 1] || null;\n}\nfunction firstVisibleElementInContainer(parent, elements) {\n if (!parent || !elements.length) {\n return null;\n }\n\n var parentTop = parent.getBoundingClientRect().top;\n var parentBottom = parent.getBoundingClientRect().bottom;\n var visibleElements = elements.find(function (element) {\n var elementTop = element.getBoundingClientRect().top;\n var elementBottom = element.getBoundingClientRect().bottom;\n return elementTop >= parentTop && elementTop <= parentBottom || elementBottom >= parentTop && elementBottom <= parentBottom;\n });\n return visibleElements || null;\n}\nfunction hasNextElementSibling(element) {\n return !!element.nextElementSibling;\n}\n\nvar EmojiButtonSelector = \"button\" + /*#__PURE__*/asSelectors(ClassNames.emoji);\nvar VisibleEmojiSelector = /*#__PURE__*/[EmojiButtonSelector, asSelectors(ClassNames.visible), \":not(\" + asSelectors(ClassNames.hidden) + \")\"].join('');\nfunction buttonFromTarget(emojiElement) {\n var _emojiElement$closest;\n\n return (_emojiElement$closest = emojiElement == null ? void 0 : emojiElement.closest(EmojiButtonSelector)) != null ? _emojiElement$closest : null;\n}\nfunction emojiFromElement(element) {\n var originalUnified = originalUnifiedFromEmojiElement(element);\n var unified = unifiedFromEmojiElement(element);\n\n if (!originalUnified) {\n return [];\n }\n\n var emoji = emojiByUnified(originalUnified);\n\n if (!emoji) {\n return [];\n }\n\n return [emoji, unified];\n}\nfunction isEmojiElement(element) {\n var _element$parentElemen;\n\n return Boolean((element == null ? void 0 : element.matches(EmojiButtonSelector)) || (element == null ? void 0 : (_element$parentElemen = element.parentElement) == null ? void 0 : _element$parentElemen.matches(EmojiButtonSelector)));\n}\nfunction elementHeight(element) {\n var _element$clientHeight;\n\n return (_element$clientHeight = element == null ? void 0 : element.clientHeight) != null ? _element$clientHeight : 0;\n}\nfunction emojiTrueOffsetTop(element) {\n if (!element) {\n return 0;\n }\n\n var button = buttonFromTarget(element);\n var category = closestCategory(button); // compensate for the label height\n\n var labelHeight = categoryLabelHeight(category);\n return elementOffsetTop(button) + elementOffsetTop(category) + labelHeight;\n}\nfunction categoryLabelHeight(category) {\n var _category$clientHeigh, _categoryWithoutLabel;\n\n if (!category) {\n return 0;\n }\n\n var categoryWithoutLabel = category.querySelector(asSelectors(ClassNames.categoryContent));\n return ((_category$clientHeigh = category == null ? void 0 : category.clientHeight) != null ? _category$clientHeigh : 0) - ((_categoryWithoutLabel = categoryWithoutLabel == null ? void 0 : categoryWithoutLabel.clientHeight) != null ? _categoryWithoutLabel : 0);\n}\nfunction isEmojiBehindLabel(emoji) {\n if (!emoji) {\n return false;\n }\n\n return emojiDistanceFromScrollTop(emoji) < categoryLabelHeight(closestCategory(emoji));\n}\nfunction queryScrollBody(root) {\n if (!root) return null;\n return root.matches(asSelectors(ClassNames.scrollBody)) ? root : root.querySelector(asSelectors(ClassNames.scrollBody));\n}\nfunction emojiDistanceFromScrollTop(emoji) {\n var _closestScrollBody$sc, _closestScrollBody;\n\n if (!emoji) {\n return 0;\n }\n\n return emojiTrueOffsetTop(emoji) - ((_closestScrollBody$sc = (_closestScrollBody = closestScrollBody(emoji)) == null ? void 0 : _closestScrollBody.scrollTop) != null ? _closestScrollBody$sc : 0);\n}\nfunction closestScrollBody(element) {\n var _element$closest;\n\n if (!element) {\n return null;\n }\n\n return (_element$closest = element.closest(asSelectors(ClassNames.scrollBody))) != null ? _element$closest : null;\n}\nfunction emojiTruOffsetLeft(element) {\n var button = buttonFromTarget(element);\n var category = closestCategory(button);\n return elementOffsetLeft(button) + elementOffsetLeft(category);\n}\n\nfunction elementOffsetTop(element) {\n var _element$offsetTop;\n\n return (_element$offsetTop = element == null ? void 0 : element.offsetTop) != null ? _element$offsetTop : 0;\n}\n\nfunction elementOffsetLeft(element) {\n var _element$offsetLeft;\n\n return (_element$offsetLeft = element == null ? void 0 : element.offsetLeft) != null ? _element$offsetLeft : 0;\n}\n\nfunction unifiedFromEmojiElement(emoji) {\n var _elementDataSetKey;\n\n return (_elementDataSetKey = elementDataSetKey(buttonFromTarget(emoji), 'unified')) != null ? _elementDataSetKey : null;\n}\nfunction originalUnifiedFromEmojiElement(emoji) {\n var unified = unifiedFromEmojiElement(emoji);\n\n if (unified) {\n return unifiedWithoutSkinTone(unified);\n }\n\n return null;\n}\n\nfunction elementDataSetKey(element, key) {\n var _elementDataSet$key;\n\n return (_elementDataSet$key = elementDataSet(element)[key]) != null ? _elementDataSet$key : null;\n}\n\nfunction elementDataSet(element) {\n var _element$dataset;\n\n return (_element$dataset = element == null ? void 0 : element.dataset) != null ? _element$dataset : {};\n}\n\nfunction isVisibleEmoji(element) {\n return element.classList.contains(ClassNames.visible);\n}\nfunction isHidden(element) {\n if (!element) return true;\n return element.classList.contains(ClassNames.hidden);\n}\nfunction allVisibleEmojis(parent) {\n if (!parent) {\n return [];\n }\n\n return Array.from(parent.querySelectorAll(VisibleEmojiSelector));\n}\nfunction lastVisibleEmoji(element) {\n if (!element) return null;\n var allEmojis = allVisibleEmojis(element);\n\n var _allEmojis$slice = allEmojis.slice(-1),\n last = _allEmojis$slice[0];\n\n if (!last) {\n return null;\n }\n\n if (!isVisibleEmoji(last)) {\n return prevVisibleEmoji(last);\n }\n\n return last;\n}\nfunction nextVisibleEmoji(element) {\n var next = element.nextElementSibling;\n\n if (!next) {\n return firstVisibleEmoji(nextCategory(element));\n }\n\n if (!isVisibleEmoji(next)) {\n return nextVisibleEmoji(next);\n }\n\n return next;\n}\nfunction prevVisibleEmoji(element) {\n var prev = element.previousElementSibling;\n\n if (!prev) {\n return lastVisibleEmoji(prevCategory(element));\n }\n\n if (!isVisibleEmoji(prev)) {\n return prevVisibleEmoji(prev);\n }\n\n return prev;\n}\nfunction firstVisibleEmoji(parent) {\n if (!parent) {\n return null;\n }\n\n var allEmojis = allVisibleEmojis(parent);\n return firstVisibleElementInContainer(parent, allEmojis);\n}\nfunction prevCategory(element) {\n var category = closestCategory(element);\n\n if (!category) {\n return null;\n }\n\n var prev = category.previousElementSibling;\n\n if (!prev) {\n return null;\n }\n\n if (isHidden(prev)) {\n return prevCategory(prev);\n }\n\n return prev;\n}\nfunction nextCategory(element) {\n var category = closestCategory(element);\n\n if (!category) {\n return null;\n }\n\n var next = category.nextElementSibling;\n\n if (!next) {\n return null;\n }\n\n if (isHidden(next)) {\n return nextCategory(next);\n }\n\n return next;\n}\nfunction closestCategory(element) {\n if (!element) {\n return null;\n }\n\n return element.closest(asSelectors(ClassNames.category));\n}\nfunction closestCategoryContent(element) {\n if (!element) {\n return null;\n }\n\n return element.closest(asSelectors(ClassNames.categoryContent));\n}\n\nfunction parseNativeEmoji(unified) {\n return unified.split('-').map(function (hex) {\n return String.fromCodePoint(parseInt(hex, 16));\n }).join('');\n}\n\nvar SUGGESTED_LS_KEY = 'epr_suggested';\nfunction getSuggested(mode) {\n try {\n var _window, _window$localStorage$, _window2;\n\n if (!((_window = window) != null && _window.localStorage)) {\n return [];\n }\n\n var recent = JSON.parse((_window$localStorage$ = (_window2 = window) == null ? void 0 : _window2.localStorage.getItem(SUGGESTED_LS_KEY)) != null ? _window$localStorage$ : '[]');\n\n if (mode === SuggestionMode.FREQUENT) {\n return recent.sort(function (a, b) {\n return b.count - a.count;\n });\n }\n\n return recent;\n } catch (_unused) {\n return [];\n }\n}\nfunction setSuggested(emoji, skinTone) {\n var recent = getSuggested();\n var unified = emojiUnified(emoji, skinTone);\n var originalUnified = emojiUnified(emoji);\n var existing = recent.find(function (_ref) {\n var u = _ref.unified;\n return u === unified;\n });\n var nextList;\n\n if (existing) {\n nextList = [existing].concat(recent.filter(function (i) {\n return i !== existing;\n }));\n } else {\n existing = {\n unified: unified,\n original: originalUnified,\n count: 0\n };\n nextList = [existing].concat(recent);\n }\n\n existing.count++;\n nextList.length = Math.min(nextList.length, 14);\n\n try {\n var _window3;\n\n (_window3 = window) == null ? void 0 : _window3.localStorage.setItem(SUGGESTED_LS_KEY, JSON.stringify(nextList)); // Prevents the change from being seen immediately.\n } catch (_unused2) {// ignore\n }\n}\n\nfunction useCloseAllOpenToggles() {\n var _useEmojiVariationPic = useEmojiVariationPickerState(),\n variationPicker = _useEmojiVariationPic[0],\n setVariationPicker = _useEmojiVariationPic[1];\n\n var _useSkinToneFanOpenSt = useSkinToneFanOpenState(),\n skinToneFanOpen = _useSkinToneFanOpenSt[0],\n setSkinToneFanOpen = _useSkinToneFanOpenSt[1];\n\n var closeAllOpenToggles = useCallback(function () {\n if (variationPicker) {\n setVariationPicker(null);\n }\n\n if (skinToneFanOpen) {\n setSkinToneFanOpen(false);\n }\n }, [variationPicker, skinToneFanOpen, setVariationPicker, setSkinToneFanOpen]);\n return closeAllOpenToggles;\n}\nfunction useHasOpenToggles() {\n var _useEmojiVariationPic2 = useEmojiVariationPickerState(),\n variationPicker = _useEmojiVariationPic2[0];\n\n var _useSkinToneFanOpenSt2 = useSkinToneFanOpenState(),\n skinToneFanOpen = _useSkinToneFanOpenSt2[0];\n\n return function hasOpenToggles() {\n return !!variationPicker || skinToneFanOpen;\n };\n}\n\nfunction useSetVariationPicker() {\n var setAnchoredEmojiRef = useSetAnchoredEmojiRef();\n\n var _useEmojiVariationPic = useEmojiVariationPickerState(),\n setEmojiVariationPicker = _useEmojiVariationPic[1];\n\n return function setVariationPicker(element) {\n var _emojiFromElement = emojiFromElement(element),\n emoji = _emojiFromElement[0];\n\n if (emoji) {\n setAnchoredEmojiRef(element);\n setEmojiVariationPicker(emoji);\n }\n };\n}\n\nfunction useMouseDownHandlers(BodyRef) {\n var mouseDownTimerRef = useRef();\n var setVariationPicker = useSetVariationPicker();\n var disallowClickRef = useDisallowClickRef();\n\n var _useEmojiVariationPic = useEmojiVariationPickerState(),\n setEmojiVariationPicker = _useEmojiVariationPic[1];\n\n var closeAllOpenToggles = useCloseAllOpenToggles();\n\n var _useActiveSkinToneSta = useActiveSkinToneState(),\n activeSkinTone = _useActiveSkinToneSta[0];\n\n var onEmojiClick = useOnEmojiClickConfig();\n\n var _useUpdateSuggested = useUpdateSuggested(),\n updateSuggested = _useUpdateSuggested[1];\n\n var getEmojiUrl = useGetEmojiUrlConfig();\n var onClick = useCallback(function onClick(event) {\n if (disallowClickRef.current) {\n return;\n }\n\n closeAllOpenToggles();\n\n var _emojiFromEvent = emojiFromEvent(event),\n emoji = _emojiFromEvent[0],\n unified = _emojiFromEvent[1];\n\n if (!emoji || !unified) {\n return;\n }\n\n var skinToneToUse = activeVariationFromUnified(unified) || activeSkinTone;\n updateSuggested();\n setSuggested(emoji, skinToneToUse);\n onEmojiClick(emojiClickOutput(emoji, skinToneToUse, getEmojiUrl), event);\n }, [activeSkinTone, closeAllOpenToggles, disallowClickRef, onEmojiClick, updateSuggested, getEmojiUrl]);\n var onMouseDown = useCallback(function onMouseDown(event) {\n var _window;\n\n if (mouseDownTimerRef.current) {\n clearTimeout(mouseDownTimerRef.current);\n }\n\n var _emojiFromEvent2 = emojiFromEvent(event),\n emoji = _emojiFromEvent2[0];\n\n if (!emoji || !emojiHasVariations(emoji)) {\n return;\n }\n\n mouseDownTimerRef.current = (_window = window) == null ? void 0 : _window.setTimeout(function () {\n disallowClickRef.current = true;\n mouseDownTimerRef.current = undefined;\n closeAllOpenToggles();\n setVariationPicker(event.target);\n setEmojiVariationPicker(emoji);\n }, 500);\n }, [disallowClickRef, closeAllOpenToggles, setVariationPicker, setEmojiVariationPicker]);\n var onMouseUp = useCallback(function onMouseUp() {\n if (mouseDownTimerRef.current) {\n clearTimeout(mouseDownTimerRef.current);\n mouseDownTimerRef.current = undefined;\n } else if (disallowClickRef.current) {\n // The problem we're trying to overcome here\n // is that the emoji has both mouseup and click events\n // and when releasing a mouseup event\n // the click gets triggered too\n // So we're disallowing the click event for a short time\n requestAnimationFrame(function () {\n disallowClickRef.current = false;\n });\n }\n }, [disallowClickRef]);\n useEffect(function () {\n if (!BodyRef.current) {\n return;\n }\n\n var bodyRef = BodyRef.current;\n bodyRef.addEventListener('click', onClick, {\n passive: true\n });\n bodyRef.addEventListener('mousedown', onMouseDown, {\n passive: true\n });\n bodyRef.addEventListener('mouseup', onMouseUp, {\n passive: true\n });\n return function () {\n bodyRef == null ? void 0 : bodyRef.removeEventListener('click', onClick);\n bodyRef == null ? void 0 : bodyRef.removeEventListener('mousedown', onMouseDown);\n bodyRef == null ? void 0 : bodyRef.removeEventListener('mouseup', onMouseUp);\n };\n }, [BodyRef, onClick, onMouseDown, onMouseUp]);\n}\n\nfunction emojiFromEvent(event) {\n var target = event == null ? void 0 : event.target;\n\n if (!isEmojiElement(target)) {\n return [];\n }\n\n return emojiFromElement(target);\n}\n\nfunction emojiClickOutput(emoji, activeSkinTone, getEmojiUrl) {\n var unified = emojiUnified(emoji, activeSkinTone);\n return {\n activeSkinTone: activeSkinTone,\n emoji: parseNativeEmoji(unified),\n getImageUrl: function getImageUrl(emojiStyle) {\n return getEmojiUrl(unified, emojiStyle);\n },\n names: emojiNames(emoji),\n unified: unified,\n unifiedWithoutSkinTone: emojiUnified(emoji)\n };\n}\n\nfunction useOnScroll(BodyRef) {\n var closeAllOpenToggles = useCloseAllOpenToggles();\n useEffect(function () {\n var bodyRef = BodyRef.current;\n\n if (!bodyRef) {\n return;\n }\n\n bodyRef.addEventListener('scroll', onScroll, {\n passive: true\n });\n\n function onScroll() {\n closeAllOpenToggles();\n }\n\n return function () {\n bodyRef == null ? void 0 : bodyRef.removeEventListener('scroll', onScroll);\n };\n }, [BodyRef, closeAllOpenToggles]);\n}\n\nfunction scrollTo(root, top) {\n if (top === void 0) {\n top = 0;\n }\n\n var $eprBody = queryScrollBody(root);\n\n if (!$eprBody) {\n return;\n }\n\n requestAnimationFrame(function () {\n $eprBody.scrollTop = top + 1;\n });\n}\nfunction scrollBy(root, by) {\n var $eprBody = queryScrollBody(root);\n\n if (!$eprBody) {\n return;\n }\n\n requestAnimationFrame(function () {\n $eprBody.scrollTop = $eprBody.scrollTop + by;\n });\n}\nfunction useScrollTo() {\n var BodyRef = useBodyRef();\n return useCallback(function (top) {\n requestAnimationFrame(function () {\n if (BodyRef.current) {\n BodyRef.current.scrollTop = top;\n }\n });\n }, [BodyRef]);\n}\nfunction scrollEmojiAboveLabel(emoji) {\n if (!emoji || !isEmojiBehindLabel(emoji)) {\n return;\n }\n\n if (emoji.closest(asSelectors(ClassNames.variationPicker))) {\n return;\n }\n\n var scrollBody = closestScrollBody(emoji);\n var by = emojiDistanceFromScrollTop(emoji);\n scrollBy(scrollBody, -(categoryLabelHeight(closestCategory(emoji)) - by));\n}\n\nfunction useFocusSearchInput() {\n var SearchInputRef = useSearchInputRef();\n return useCallback(function () {\n focusElement(SearchInputRef.current);\n }, [SearchInputRef]);\n}\nfunction useFocusSkinTonePicker() {\n var SkinTonePickerRef = useSkinTonePickerRef();\n return useCallback(function () {\n if (!SkinTonePickerRef.current) {\n return;\n }\n\n focusFirstElementChild(SkinTonePickerRef.current);\n }, [SkinTonePickerRef]);\n}\nfunction useFocusCategoryNavigation() {\n var CategoryNavigationRef = useCategoryNavigationRef();\n return useCallback(function () {\n if (!CategoryNavigationRef.current) {\n return;\n }\n\n focusFirstElementChild(CategoryNavigationRef.current);\n }, [CategoryNavigationRef]);\n}\n\nfunction useSetFilterRef() {\n var filterRef = useFilterRef();\n return function setFilter(setter) {\n if (typeof setter === 'function') {\n return setFilter(setter(filterRef.current));\n }\n\n filterRef.current = setter;\n };\n}\n\nfunction useClearSearch() {\n var applySearch = useApplySearch();\n var SearchInputRef = useSearchInputRef();\n var focusSearchInput = useFocusSearchInput();\n return function clearSearch() {\n if (SearchInputRef.current) {\n SearchInputRef.current.value = '';\n }\n\n applySearch('');\n focusSearchInput();\n };\n}\nfunction useAppendSearch() {\n var SearchInputRef = useSearchInputRef();\n var applySearch = useApplySearch();\n return function appendSearch(str) {\n if (SearchInputRef.current) {\n SearchInputRef.current.value = \"\" + SearchInputRef.current.value + str;\n applySearch(getNormalizedSearchTerm(SearchInputRef.current.value));\n } else {\n applySearch(getNormalizedSearchTerm(str));\n }\n };\n}\nfunction useFilter() {\n var SearchInputRef = useSearchInputRef();\n var filterRef = useFilterRef();\n var setFilterRef = useSetFilterRef();\n var applySearch = useApplySearch();\n\n var _useSearchTermState = useSearchTermState(),\n searchTerm = _useSearchTermState[0];\n\n return {\n onChange: onChange,\n searchTerm: searchTerm,\n SearchInputRef: SearchInputRef\n };\n\n function onChange(inputValue) {\n var filter = filterRef.current;\n var nextValue = inputValue.toLowerCase();\n\n if (filter != null && filter[nextValue] || nextValue.length <= 1) {\n return applySearch(nextValue);\n }\n\n var longestMatch = findLongestMatch(nextValue, filter);\n\n if (!longestMatch) {\n // Can we even get here?\n // If so, we need to search among all emojis\n return applySearch(nextValue);\n }\n\n setFilterRef(function (current) {\n var _Object$assign;\n\n return Object.assign(current, (_Object$assign = {}, _Object$assign[nextValue] = filterEmojiObjectByKeyword(longestMatch, nextValue), _Object$assign));\n });\n applySearch(nextValue);\n }\n}\n\nfunction useApplySearch() {\n var _useSearchTermState2 = useSearchTermState(),\n setSearchTerm = _useSearchTermState2[1];\n\n var PickerMainRef = usePickerMainRef();\n return function applySearch(searchTerm) {\n requestAnimationFrame(function () {\n setSearchTerm(searchTerm ? searchTerm == null ? void 0 : searchTerm.toLowerCase() : searchTerm).then(function () {\n scrollTo(PickerMainRef.current, 0);\n });\n });\n };\n}\n\nfunction filterEmojiObjectByKeyword(emojis, keyword) {\n var filtered = {};\n\n for (var unified in emojis) {\n var emoji = emojis[unified];\n\n if (hasMatch(emoji, keyword)) {\n filtered[unified] = emoji;\n }\n }\n\n return filtered;\n}\n\nfunction hasMatch(emoji, keyword) {\n return emojiNames(emoji).some(function (name) {\n return name.includes(keyword);\n });\n}\n\nfunction useIsEmojiFiltered() {\n var _useFilterRef = useFilterRef(),\n filter = _useFilterRef.current;\n\n var _useSearchTermState3 = useSearchTermState(),\n searchTerm = _useSearchTermState3[0];\n\n return function (unified) {\n return isEmojiFilteredBySearchTerm(unified, filter, searchTerm);\n };\n}\n\nfunction isEmojiFilteredBySearchTerm(unified, filter, searchTerm) {\n var _filter$searchTerm;\n\n if (!filter || !searchTerm) {\n return false;\n }\n\n return !((_filter$searchTerm = filter[searchTerm]) != null && _filter$searchTerm[unified]);\n}\n\nfunction findLongestMatch(keyword, dict) {\n if (!dict) {\n return null;\n }\n\n if (dict[keyword]) {\n return dict[keyword];\n }\n\n var longestMatchingKey = Object.keys(dict).sort(function (a, b) {\n return b.length - a.length;\n }).find(function (key) {\n return keyword.includes(key);\n });\n\n if (longestMatchingKey) {\n return dict[longestMatchingKey];\n }\n\n return null;\n}\n\nfunction getNormalizedSearchTerm(str) {\n if (!str || typeof str !== 'string') {\n return '';\n }\n\n return str.trim().toLowerCase();\n}\n\nfunction useIsEmojiHidden() {\n var _useEmojisThatFailedT = useEmojisThatFailedToLoadState(),\n emojisThatFailedToLoad = _useEmojisThatFailedT[0];\n\n var isEmojiFiltered = useIsEmojiFiltered();\n return function (emoji) {\n var unified = emojiUnified(emoji);\n var failedToLoad = emojisThatFailedToLoad.has(unified);\n var filteredOut = isEmojiFiltered(unified);\n return {\n failedToLoad: failedToLoad,\n filteredOut: filteredOut,\n hidden: failedToLoad || filteredOut\n };\n };\n}\n\nfunction Button(props) {\n return createElement(\"button\", Object.assign({\n type: \"button\"\n }, props, {\n className: clsx('epr-btn', props.className)\n }), props.children);\n}\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".EmojiPickerReact button.epr-emoji{align-items:center;border-radius:8px;box-sizing:border-box;display:flex;height:var(--epr-emoji-fullsize);justify-content:center;max-height:var(--epr-emoji-fullsize);max-width:var(--epr-emoji-fullsize);overflow:hidden;position:relative;width:var(--epr-emoji-fullsize)}.EmojiPickerReact button.epr-emoji.epr-emoji-has-variations:after{border-bottom:4px solid var(--epr-emoji-variation-indicator-color);border-left:4px solid transparent;border-right:4px solid transparent;bottom:1px;content:\\\"\\\";display:block;height:0;position:absolute;right:0;transform:rotate(135deg);width:0;z-index:var(--epr-emoji-variations-indictator-z-index)}.EmojiPickerReact button.epr-emoji .epr-emoji-img{max-height:var(--epr-emoji-fullsize);max-width:var(--epr-emoji-fullsize);padding:var(--epr-emoji-padding)}.EmojiPickerReact button.epr-emoji .epr-emoji-native{padding:var(--epr-emoji-padding)}.EmojiPickerReact button.epr-emoji>*{align-self:center;display:block;justify-self:center}.EmojiPickerReact button.epr-emoji.epr-emoji-has-variations:hover:after{border-bottom:4px solid var(--epr-emoji-variation-indicator-color-hover)}.__EmojiPicker__.epr-emoji-img{font-size:0}.__EmojiPicker__.epr-emoji-native{align-self:center;font-family:Segoe UI Emoji,Segoe UI Symbol,Segoe UI,Apple Color Emoji,Twemoji Mozilla,Noto Color Emoji,Android Emoji,Times,Symbola,Aegyptus,Code2000,Code2001,Code2002,Musica,serif,LastResort;font-size:var(--epr-emoji-size);justify-self:center;letter-spacing:0;line-height:100%;position:relative;text-align:center}.EmojiPickerReact button.epr-emoji:hover>*{background-color:var(--epr-emoji-hover-color)}.EmojiPickerReact button.epr-emoji:focus>*{background-color:var(--epr-focus-bg-color)}\";\nstyleInject(css_248z);\n\nfunction ClickableEmoji(_ref) {\n var _clsx;\n\n var emoji = _ref.emoji,\n unified = _ref.unified,\n hidden = _ref.hidden,\n hiddenOnSearch = _ref.hiddenOnSearch,\n emojiStyle = _ref.emojiStyle,\n _ref$showVariations = _ref.showVariations,\n showVariations = _ref$showVariations === void 0 ? true : _ref$showVariations,\n size = _ref.size,\n lazyLoad = _ref.lazyLoad,\n getEmojiUrl = _ref.getEmojiUrl;\n var hasVariations = emojiHasVariations(emoji);\n return createElement(Button, {\n className: clsx(ClassNames.emoji, (_clsx = {}, _clsx[ClassNames.hidden] = hidden, _clsx[ClassNames.hiddenOnSearch] = hiddenOnSearch, _clsx[ClassNames.visible] = !hidden && !hiddenOnSearch, _clsx[ClassNames.emojiHasVariations] = hasVariations && showVariations, _clsx)),\n \"data-unified\": unified,\n \"aria-label\": emojiName(emoji),\n \"data-full-name\": emojiNames(emoji)\n }, createElement(ViewOnlyEmoji, {\n unified: unified,\n emoji: emoji,\n size: size,\n emojiStyle: emojiStyle,\n lazyLoad: lazyLoad,\n getEmojiUrl: getEmojiUrl\n }));\n}\nfunction ViewOnlyEmoji(_ref2) {\n var emoji = _ref2.emoji,\n unified = _ref2.unified,\n emojiStyle = _ref2.emojiStyle,\n size = _ref2.size,\n lazyLoad = _ref2.lazyLoad,\n _ref2$getEmojiUrl = _ref2.getEmojiUrl,\n getEmojiUrl = _ref2$getEmojiUrl === void 0 ? emojiUrlByUnified : _ref2$getEmojiUrl;\n var style = {};\n\n if (size) {\n style.width = style.height = style.fontSize = size + \"px\";\n }\n\n var emojiToRender = emoji ? emoji : emojiByUnified(unified);\n\n if (!emojiToRender) {\n return null;\n }\n\n return createElement(Fragment, null, emojiStyle === EmojiStyle.NATIVE ? createElement(NativeEmoji, {\n unified: unified,\n style: style\n }) : createElement(EmojiImg, {\n unified: unified,\n style: style,\n emoji: emojiToRender,\n emojiStyle: emojiStyle,\n lazyLoad: lazyLoad,\n getEmojiUrl: getEmojiUrl\n }));\n}\n\nfunction NativeEmoji(_ref3) {\n var unified = _ref3.unified,\n style = _ref3.style;\n return createElement(\"span\", {\n className: clsx(ClassNames.external, 'epr-emoji-native'),\n \"data-unified\": unified,\n style: style\n }, parseNativeEmoji(unified));\n}\n\nfunction EmojiImg(_ref4) {\n var emoji = _ref4.emoji,\n unified = _ref4.unified,\n emojiStyle = _ref4.emojiStyle,\n style = _ref4.style,\n _ref4$lazyLoad = _ref4.lazyLoad,\n lazyLoad = _ref4$lazyLoad === void 0 ? false : _ref4$lazyLoad,\n getEmojiUrl = _ref4.getEmojiUrl;\n\n var _useEmojisThatFailedT = useEmojisThatFailedToLoadState(),\n setEmojisThatFailedToLoad = _useEmojisThatFailedT[1];\n\n return createElement(\"img\", {\n src: getEmojiUrl(unified, emojiStyle),\n alt: emojiName(emoji),\n className: clsx(ClassNames.external, 'epr-emoji-img'),\n loading: lazyLoad ? 'lazy' : 'eager',\n onError: onError,\n style: style\n });\n\n function onError() {\n setEmojisThatFailedToLoad(function (prev) {\n return new Set(prev).add(unified);\n });\n }\n}\n\nvar css_248z$1 = \".EmojiPickerReact li.epr-emoji-category>.epr-emoji-category-content{grid-gap:0;display:grid;grid-template-columns:repeat(auto-fill,var(--epr-emoji-fullsize));justify-content:space-between;margin:var(--epr-category-padding);position:relative}.EmojiPickerReact li.epr-emoji-category:not(:has(.epr-visible)){display:none}.EmojiPickerReact li.epr-emoji-category>.epr-emoji-category-label{align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background-color:var(--epr-category-label-bg-color);color:var(--epr-category-label-text-color);display:flex;font-weight:700;height:var(--epr-category-label-height);padding:var(--epr-category-label-padding);position:-webkit-sticky;position:sticky;text-transform:capitalize;top:0;width:100%;z-index:var(--epr-category-label-z-index)}\";\nstyleInject(css_248z$1);\n\nfunction EmojiCategory(_ref) {\n var _clsx;\n\n var categoryConfig = _ref.categoryConfig,\n children = _ref.children,\n hidden = _ref.hidden,\n hiddenOnSearch = _ref.hiddenOnSearch;\n var category = categoryFromCategoryConfig(categoryConfig);\n var categoryName = categoryNameFromCategoryConfig(categoryConfig);\n return createElement(\"li\", {\n className: clsx(ClassNames.category, (_clsx = {}, _clsx[ClassNames.hidden] = hidden, _clsx[ClassNames.hiddenOnSearch] = hiddenOnSearch, _clsx)),\n \"data-name\": category,\n \"aria-label\": categoryName\n }, createElement(\"div\", {\n className: ClassNames.label\n }, categoryName), createElement(\"div\", {\n className: ClassNames.categoryContent\n }, children));\n}\n\nfunction Suggested(_ref) {\n var categoryConfig = _ref.categoryConfig;\n\n var _useUpdateSuggested = useUpdateSuggested(),\n suggestedUpdated = _useUpdateSuggested[0];\n\n var suggestedEmojisModeConfig = useSuggestedEmojisModeConfig();\n var getEmojiUrl = useGetEmojiUrlConfig();\n var suggested = useMemo(function () {\n var _getSuggested;\n\n return (_getSuggested = getSuggested(suggestedEmojisModeConfig)) != null ? _getSuggested : [];\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [suggestedUpdated, suggestedEmojisModeConfig]);\n var emojiStyle = useEmojiStyleConfig();\n return createElement(EmojiCategory, {\n categoryConfig: categoryConfig,\n hiddenOnSearch: true,\n hidden: suggested.length === 0\n }, suggested.map(function (suggestedItem) {\n var emoji = emojiByUnified(suggestedItem.original);\n\n if (!emoji) {\n return null;\n }\n\n return createElement(ClickableEmoji, {\n showVariations: false,\n unified: suggestedItem.unified,\n emojiStyle: emojiStyle,\n emoji: emoji,\n key: suggestedItem.unified,\n getEmojiUrl: getEmojiUrl\n });\n }));\n}\n\nvar css_248z$2 = \".EmojiPickerReact ul.epr-emoji-list{list-style:none;margin:0;padding:0}\";\nstyleInject(css_248z$2);\n\nfunction EmojiList() {\n var categories = useCategoriesConfig();\n return createElement(\"ul\", {\n className: ClassNames.emojiList\n }, categories.map(function (categoryConfig, index) {\n var category = categoryFromCategoryConfig(categoryConfig);\n\n if (category === Categories.SUGGESTED) {\n return createElement(Suggested, {\n key: category,\n categoryConfig: categoryConfig\n });\n }\n\n return createElement(RenderCategory, {\n key: category,\n index: index,\n category: category,\n categoryConfig: categoryConfig\n });\n }));\n}\n\nfunction RenderCategory(_ref) {\n var index = _ref.index,\n category = _ref.category,\n categoryConfig = _ref.categoryConfig;\n var isEmojiHidden = useIsEmojiHidden();\n var lazyLoadEmojis = useLazyLoadEmojisConfig();\n var emojiStyle = useEmojiStyleConfig();\n var isPastInitialLoad = useIsPastInitialLoad();\n\n var _useActiveSkinToneSta = useActiveSkinToneState(),\n activeSkinTone = _useActiveSkinToneSta[0];\n\n var isEmojiDisallowed = useIsEmojiDisallowed();\n var getEmojiUrl = useGetEmojiUrlConfig();\n var showVariations = !useSkinTonesDisabledConfig(); // Small trick to defer the rendering of all emoji categories until the first category is visible\n // This way the user gets to actually see something and not wait for the whole picker to render.\n\n var emojisToPush = !isPastInitialLoad && index > 1 ? [] : emojisByCategory(category);\n var hiddenCounter = 0;\n var emojis = emojisToPush.map(function (emoji) {\n var unified = emojiUnified(emoji, activeSkinTone);\n\n var _isEmojiHidden = isEmojiHidden(emoji),\n failedToLoad = _isEmojiHidden.failedToLoad,\n filteredOut = _isEmojiHidden.filteredOut,\n hidden = _isEmojiHidden.hidden;\n\n var isDisallowed = isEmojiDisallowed(emoji);\n\n if (hidden || isDisallowed) {\n hiddenCounter++;\n }\n\n if (isDisallowed) {\n return null;\n }\n\n return createElement(ClickableEmoji, {\n showVariations: showVariations,\n key: unified,\n emoji: emoji,\n unified: unified,\n hidden: failedToLoad,\n hiddenOnSearch: filteredOut,\n emojiStyle: emojiStyle,\n lazyLoad: lazyLoadEmojis,\n getEmojiUrl: getEmojiUrl\n });\n });\n return createElement(EmojiCategory, {\n categoryConfig: categoryConfig,\n // Indicates that there are no visible emojis\n // Hence, the category should be hidden\n hidden: hiddenCounter === emojis.length\n }, emojis);\n}\n\nfunction focusFirstVisibleEmoji(parent) {\n var emoji = firstVisibleEmoji(parent);\n focusElement(emoji);\n scrollEmojiAboveLabel(emoji);\n}\nfunction focusAndClickFirstVisibleEmoji(parent) {\n var firstEmoji = firstVisibleEmoji(parent);\n focusElement(firstEmoji);\n firstEmoji == null ? void 0 : firstEmoji.click();\n}\nfunction focusLastVisibleEmoji(parent) {\n focusElement(lastVisibleEmoji(parent));\n}\nfunction focusNextVisibleEmoji(element) {\n if (!element) {\n return;\n }\n\n var next = nextVisibleEmoji(element);\n\n if (!next) {\n return focusFirstVisibleEmoji(nextCategory(element));\n }\n\n focusElement(next);\n scrollEmojiAboveLabel(next);\n}\nfunction focusPrevVisibleEmoji(element) {\n if (!element) {\n return;\n }\n\n var prev = prevVisibleEmoji(element);\n\n if (!prev) {\n return focusLastVisibleEmoji(prevCategory(element));\n }\n\n focusElement(prev);\n scrollEmojiAboveLabel(prev);\n}\nfunction focusVisibleEmojiOneRowUp(element, exitUp) {\n if (!element) {\n return;\n }\n\n var prev = visibleEmojiOneRowUp(element);\n\n if (!prev) {\n return exitUp();\n }\n\n focusElement(prev);\n scrollEmojiAboveLabel(prev);\n}\nfunction focusVisibleEmojiOneRowDown(element) {\n if (!element) {\n return;\n }\n\n var next = visibleEmojiOneRowDown(element);\n return focusElement(next);\n}\n\nfunction visibleEmojiOneRowUp(element) {\n if (!element) {\n return null;\n }\n\n var categoryContent = closestCategoryContent(element);\n var category = closestCategory(categoryContent);\n var indexInRow = elementIndexInRow(categoryContent, element);\n var row = rowNumber(categoryContent, element);\n var countInRow = elementCountInRow(categoryContent, element);\n\n if (row === 0) {\n var prevVisibleCategory = prevCategory(category);\n\n if (!prevVisibleCategory) {\n return null;\n }\n\n return getElementInRow(allVisibleEmojis(prevVisibleCategory), -1, // last row\n countInRow, indexInRow);\n }\n\n return getElementInPrevRow(allVisibleEmojis(categoryContent), row, countInRow, indexInRow);\n}\n\nfunction visibleEmojiOneRowDown(element) {\n if (!element) {\n return null;\n }\n\n var categoryContent = closestCategoryContent(element);\n var category = closestCategory(categoryContent);\n var indexInRow = elementIndexInRow(categoryContent, element);\n var row = rowNumber(categoryContent, element);\n var countInRow = elementCountInRow(categoryContent, element);\n\n if (!hasNextRow(categoryContent, element)) {\n var nextVisibleCategory = nextCategory(category);\n\n if (!nextVisibleCategory) {\n return null;\n }\n\n return getElementInRow(allVisibleEmojis(nextVisibleCategory), 0, countInRow, indexInRow);\n }\n\n var itemInNextRow = getElementInNextRow(allVisibleEmojis(categoryContent), row, countInRow, indexInRow);\n return itemInNextRow;\n}\n\nvar css_248z$3 = \".EmojiPickerReact .epr-emoji-variation-picker{align-items:center;background:var(--epr-emoji-variation-picker-bg-color);border:1px solid var(--epr-picker-border-color);border-radius:3px;box-shadow:0 2px 5px rgba(0,0,0,.2);display:flex;height:0;height:var(--epr-emoji-variation-picker-height);justify-content:space-around;left:15px;opacity:0;padding:5px;pointer-events:none;position:absolute;right:15px;top:0;top:-100%;transform:scale(.9);transition:transform .1s ease-out,opacity .2s ease-out;visibility:hidden;z-index:var(--epr-skin-variation-picker-z-index)}.EmojiPickerReact .epr-emoji-variation-picker.pointing-up{transform:scale(.9);transform-origin:center 0}.EmojiPickerReact .epr-emoji-variation-picker.visible{opacity:1;pointer-events:all;transform:scale(1);visibility:visible}.EmojiPickerReact .epr-emoji-variation-picker .EmojiPickerReact .epr-emoji-variation-picker button.epr-emoji:hover{background:none}.EmojiPickerReact .epr-emoji-variation-picker .epr-emoji-pointer{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='15' xml:space='preserve'%3E%3Cg stroke-miterlimit='10'%3E%3Cpath fill='%23FFF' stroke='%23E8E7E7' d='m1.86-.43 9.83 11.53c.59.69 1.56.69 2.14 0L23.66-.43'/%3E%3Cpath fill='%23010202' stroke='%23151617' d='m26.86-.43 9.83 11.53c.59.69 1.56.69 2.14 0L48.66-.43'/%3E%3C/g%3E%3C/svg%3E\\\");background-position:0 0;background-repeat:no-repeat;background-size:50px 15px;content:\\\"\\\";height:15px;position:absolute;top:-10px;width:25px}.EmojiPickerReact.epr-dark-theme .epr-emoji-variation-picker .epr-emoji-pointer{background-position:-25px 0}.EmojiPickerReact .epr-emoji-variation-picker .epr-emoji-pointer{top:100%;transform:translateX(-18px)}.EmojiPickerReact .epr-emoji-variation-picker.pointing-up .epr-emoji-pointer{top:0;transform:rotate(180deg) translateY(100%) translateX(18px)}\";\nstyleInject(css_248z$3);\n\nvar Direction;\n\n(function (Direction) {\n Direction[Direction[\"Up\"] = 0] = \"Up\";\n Direction[Direction[\"Down\"] = 1] = \"Down\";\n})(Direction || (Direction = {}));\n\nfunction EmojiVariationPicker() {\n var AnchoredEmojiRef = useAnchoredEmojiRef();\n var VariationPickerRef = useVariationPickerRef();\n\n var _useEmojiVariationPic = useEmojiVariationPickerState(),\n emoji = _useEmojiVariationPic[0];\n\n var emojiStyle = useEmojiStyleConfig();\n\n var _useVariationPickerTo = useVariationPickerTop(VariationPickerRef),\n getTop = _useVariationPickerTo.getTop,\n getMenuDirection = _useVariationPickerTo.getMenuDirection;\n\n var setAnchoredEmojiRef = useSetAnchoredEmojiRef();\n var getPointerStyle = usePointerStyle(VariationPickerRef);\n var getEmojiUrl = useGetEmojiUrlConfig();\n var button = buttonFromTarget(AnchoredEmojiRef.current);\n var visible = emoji && button && emojiHasVariations(emoji) && button.classList.contains(ClassNames.emojiHasVariations);\n useEffect(function () {\n if (!visible) {\n return;\n }\n\n focusFirstVisibleEmoji(VariationPickerRef.current);\n }, [VariationPickerRef, visible, AnchoredEmojiRef]);\n var top, pointerStyle;\n\n if (!visible && AnchoredEmojiRef.current) {\n setAnchoredEmojiRef(null);\n } else {\n top = getTop();\n pointerStyle = getPointerStyle();\n }\n\n return createElement(\"div\", {\n ref: VariationPickerRef,\n className: clsx(ClassNames.variationPicker, {\n visible: visible,\n 'pointing-up': getMenuDirection() === Direction.Down\n }),\n style: {\n top: top\n }\n }, visible && emoji ? [emojiUnified(emoji)].concat(emojiVariations(emoji)).slice(0, 6).map(function (unified) {\n return createElement(ClickableEmoji, {\n key: unified,\n emoji: emoji,\n unified: unified,\n emojiStyle: emojiStyle,\n showVariations: false,\n getEmojiUrl: getEmojiUrl\n });\n }) : null, createElement(\"div\", {\n className: \"epr-emoji-pointer\",\n style: pointerStyle\n }));\n}\n\nfunction usePointerStyle(VariationPickerRef) {\n var AnchoredEmojiRef = useAnchoredEmojiRef();\n return function getPointerStyle() {\n var style = {};\n\n if (!VariationPickerRef.current) {\n return style;\n }\n\n if (AnchoredEmojiRef.current) {\n var button = buttonFromTarget(AnchoredEmojiRef.current);\n var offsetLeft = emojiTruOffsetLeft(button);\n\n if (!button) {\n return style;\n } // half of the button\n\n\n style.left = offsetLeft + (button == null ? void 0 : button.clientWidth) / 2;\n }\n\n return style;\n };\n}\n\nfunction useVariationPickerTop(VariationPickerRef) {\n var AnchoredEmojiRef = useAnchoredEmojiRef();\n var BodyRef = useBodyRef();\n var direction = Direction.Up;\n return {\n getMenuDirection: getMenuDirection,\n getTop: getTop\n };\n\n function getMenuDirection() {\n return direction;\n }\n\n function getTop() {\n direction = Direction.Up;\n var emojiOffsetTop = 0;\n\n if (!VariationPickerRef.current) {\n return 0;\n }\n\n var height = elementHeight(VariationPickerRef.current);\n\n if (AnchoredEmojiRef.current) {\n var _bodyRef$scrollTop;\n\n var bodyRef = BodyRef.current;\n var button = buttonFromTarget(AnchoredEmojiRef.current);\n var buttonHeight = elementHeight(button);\n emojiOffsetTop = emojiTrueOffsetTop(button);\n var scrollTop = (_bodyRef$scrollTop = bodyRef == null ? void 0 : bodyRef.scrollTop) != null ? _bodyRef$scrollTop : 0;\n\n if (scrollTop > emojiOffsetTop - height) {\n direction = Direction.Down;\n emojiOffsetTop += buttonHeight + height;\n }\n }\n\n return emojiOffsetTop - height;\n }\n}\n\nvar css_248z$4 = \".EmojiPickerReact .epr-body{flex:1;overflow-x:hidden;overflow-y:scroll;position:relative}\";\nstyleInject(css_248z$4);\n\nfunction Body() {\n var BodyRef = useBodyRef();\n useOnScroll(BodyRef);\n useMouseDownHandlers(BodyRef);\n useOnMouseMove();\n return createElement(\"div\", {\n className: ClassNames.scrollBody,\n ref: BodyRef\n }, createElement(EmojiVariationPicker, null), createElement(EmojiList, null));\n}\n\nfunction useEmojiPreviewEvents(allow, setPreviewEmoji) {\n var BodyRef = useBodyRef();\n var isMouseDisallowed = useIsMouseDisallowed();\n var allowMouseMove = useAllowMouseMove();\n useEffect(function () {\n if (!allow) {\n return;\n }\n\n var bodyRef = BodyRef.current;\n bodyRef == null ? void 0 : bodyRef.addEventListener('keydown', onEscape, {\n passive: true\n });\n bodyRef == null ? void 0 : bodyRef.addEventListener('mouseover', onMouseOver, true);\n bodyRef == null ? void 0 : bodyRef.addEventListener('focus', onEnter, true);\n bodyRef == null ? void 0 : bodyRef.addEventListener('mouseout', onLeave, {\n passive: true\n });\n bodyRef == null ? void 0 : bodyRef.addEventListener('blur', onLeave, true);\n\n function onEnter(e) {\n var button = buttonFromTarget(e.target);\n\n if (!button) {\n return onLeave();\n }\n\n var unified = unifiedFromEmojiElement(button);\n var originalUnified = originalUnifiedFromEmojiElement(button);\n\n if (!unified || !originalUnified) {\n return onLeave();\n }\n\n setPreviewEmoji({\n unified: unified,\n originalUnified: originalUnified\n });\n }\n\n function onLeave(e) {\n if (e) {\n var relatedTarget = e.relatedTarget;\n\n if (!buttonFromTarget(relatedTarget)) {\n return setPreviewEmoji(null);\n }\n }\n\n setPreviewEmoji(null);\n }\n\n function onEscape(e) {\n if (e.key === 'Escape') {\n setPreviewEmoji(null);\n }\n }\n\n function onMouseOver(e) {\n if (isMouseDisallowed()) {\n return;\n }\n\n var button = buttonFromTarget(e.target);\n\n if (button) {\n focusElement(button);\n }\n }\n\n return function () {\n bodyRef == null ? void 0 : bodyRef.removeEventListener('mouseover', onMouseOver);\n bodyRef == null ? void 0 : bodyRef.removeEventListener('mouseout', onLeave);\n bodyRef == null ? void 0 : bodyRef.removeEventListener('focus', onEnter, true);\n bodyRef == null ? void 0 : bodyRef.removeEventListener('blur', onLeave, true);\n bodyRef == null ? void 0 : bodyRef.removeEventListener('keydown', onEscape);\n };\n }, [BodyRef, allow, setPreviewEmoji, isMouseDisallowed, allowMouseMove]);\n}\n\nfunction useIsSkinToneInSearch() {\n var skinTonePickerLocationConfig = useSkinTonePickerLocationConfig();\n return skinTonePickerLocationConfig === SkinTonePickerLocation.SEARCH;\n}\nfunction useIsSkinToneInPreview() {\n var skinTonePickerLocationConfig = useSkinTonePickerLocationConfig();\n return skinTonePickerLocationConfig === SkinTonePickerLocation.PREVIEW;\n}\n\nvar css_248z$5 = \".EmojiPickerReact .Flex{display:flex}.EmojiPickerReact .Flex.FlexRow{flex-direction:row}.EmojiPickerReact .Flex.FlexColumn{flex-direction:column}\";\nstyleInject(css_248z$5);\n\nvar FlexDirection;\n\n(function (FlexDirection) {\n FlexDirection[\"ROW\"] = \"FlexRow\";\n FlexDirection[\"COLUMN\"] = \"FlexColumn\";\n})(FlexDirection || (FlexDirection = {}));\n\nfunction Flex(_ref) {\n var children = _ref.children,\n className = _ref.className,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n _ref$direction = _ref.direction,\n direction = _ref$direction === void 0 ? FlexDirection.ROW : _ref$direction;\n return createElement(\"div\", {\n style: _extends({}, style),\n className: clsx('Flex', className, direction)\n }, children);\n}\n\nfunction Space(_ref) {\n var className = _ref.className,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style;\n return createElement(\"div\", {\n style: _extends({\n flex: 1\n }, style),\n className: clsx(className)\n });\n}\n\nvar css_248z$6 = \".EmojiPickerReact .epr-preview{align-items:center;border-top:1px solid var(--epr-preview-border-color);height:var(--epr-preview-height);padding:0 var(--epr-horizontal-padding);position:relative;z-index:1;z-index:var(--epr-preview-z-index)}.EmojiPickerReact .epr-preview .epr-preview-emoji-label{color:var(--epr-preview-text-color);font-size:var(--epr-preview-text-size);padding:var(--epr-preview-text-padding);text-transform:capitalize}\";\nstyleInject(css_248z$6);\n\nfunction Absolute(_ref) {\n var children = _ref.children,\n className = _ref.className,\n style = _ref.style;\n return createElement(\"div\", {\n style: _extends({}, style, {\n position: 'absolute'\n }),\n className: className\n }, children);\n}\n\nfunction Relative(_ref) {\n var children = _ref.children,\n className = _ref.className,\n style = _ref.style;\n return createElement(\"div\", {\n style: _extends({}, style, {\n position: 'relative'\n }),\n className: className\n }, children);\n}\n\nvar css_248z$7 = \".EmojiPickerReact .epr-skin-tones{--epr-skin-tone-size:15px;align-items:center;display:flex;justify-content:flex-end;padding:10px 0;transition:all .3s ease-in-out}.EmojiPickerReact .epr-skin-tones.epr-vertical{align-items:flex-end;border:1px solid var(--epr-bg-color);border-radius:6px;flex-direction:column;padding:5px}.EmojiPickerReact .epr-skin-tones.epr-vertical.epr-open{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:var(--epr-skin-tone-picker-menu-color);border:1px solid var(--epr-picker-border-color)}.EmojiPickerReact .epr-skin-tone-select{height:var(--epr-skin-tone-size);position:relative;width:var(--epr-skin-tone-size)}.EmojiPickerReact .epr-skin-tones.epr-open .epr-tone{transition:transform .3s ease-in-out,opacity .3s ease-in-out}.EmojiPickerReact .epr-skin-tones:not(.epr-open) .epr-tone{opacity:0;z-index:0}.EmojiPickerReact .epr-skin-tones .epr-tone{border-radius:4px;box-shadow:0 0 0 0 var(--epr-active-skin-hover-color);cursor:pointer;display:block;height:var(--epr-skin-tone-size);position:absolute;right:0;transition:transform .3s ease-in-out,opacity .5s ease-in-out;width:var(--epr-skin-tone-size);z-index:1}.EmojiPickerReact .epr-skin-tones .epr-tone:hover{box-shadow:0 0 0 3px var(--epr-active-skin-hover-color)}.EmojiPickerReact .epr-skin-tones .epr-tone:focus{box-shadow:0 0 0 3px var(--epr-focus-bg-color)}.EmojiPickerReact .epr-skin-tones.epr-open .epr-skin-tone-select .epr-tone.epr-active:after{border:1px solid var(--epr-active-skin-tone-indicator-border-color);border-radius:5px;bottom:-2px;content:\\\"\\\";left:-2px;position:absolute;right:-2px;top:-2px}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-active{opacity:1;z-index:1}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-neutral{background-color:#ffd225}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fb{background-color:#ffdfbd}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fc{background-color:#e9c197}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fd{background-color:#c88e62}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fe{background-color:#a86637}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3ff{background-color:#60463a}\";\nstyleInject(css_248z$7);\n\nvar ITEM_SIZE = 28;\nfunction SkinTonePickerMenu() {\n return createElement(Relative, {\n style: {\n height: ITEM_SIZE\n }\n }, createElement(Absolute, {\n style: {\n bottom: 0,\n right: 0\n }\n }, createElement(SkinTonePicker, {\n direction: SkinTonePickerDirection.VERTICAL\n })));\n}\nfunction SkinTonePicker(_ref) {\n var _clsx;\n\n var _ref$direction = _ref.direction,\n direction = _ref$direction === void 0 ? SkinTonePickerDirection.HORIZONTAL : _ref$direction;\n var SkinTonePickerRef = useSkinTonePickerRef();\n var isDisabled = useSkinTonesDisabledConfig();\n\n var _useSkinToneFanOpenSt = useSkinToneFanOpenState(),\n isOpen = _useSkinToneFanOpenSt[0],\n setIsOpen = _useSkinToneFanOpenSt[1];\n\n var _useActiveSkinToneSta = useActiveSkinToneState(),\n activeSkinTone = _useActiveSkinToneSta[0],\n setActiveSkinTone = _useActiveSkinToneSta[1];\n\n var closeAllOpenToggles = useCloseAllOpenToggles();\n var focusSearchInput = useFocusSearchInput();\n\n if (isDisabled) {\n return null;\n }\n\n var fullWidth = ITEM_SIZE * skinToneVariations.length + \"px\";\n var expandedSize = isOpen ? fullWidth : ITEM_SIZE + 'px';\n var vertical = direction === SkinTonePickerDirection.VERTICAL;\n return createElement(Relative, {\n className: clsx('epr-skin-tones', direction, (_clsx = {}, _clsx[ClassNames.open] = isOpen, _clsx)),\n style: vertical ? {\n flexBasis: expandedSize,\n height: expandedSize\n } : {\n flexBasis: expandedSize\n }\n }, createElement(\"div\", {\n className: \"epr-skin-tone-select\",\n ref: SkinTonePickerRef\n }, skinToneVariations.map(function (skinToneVariation, i) {\n var _clsx2;\n\n var active = skinToneVariation === activeSkinTone;\n return createElement(Button, {\n style: {\n transform: clsx(vertical ? \"translateY(-\" + i * (isOpen ? ITEM_SIZE : 0) + \"px)\" : \"translateX(-\" + i * (isOpen ? ITEM_SIZE : 0) + \"px)\", isOpen && active && 'scale(1.3)')\n },\n onClick: function onClick() {\n if (isOpen) {\n setActiveSkinTone(skinToneVariation);\n focusSearchInput();\n } else {\n setIsOpen(true);\n }\n\n closeAllOpenToggles();\n },\n key: skinToneVariation,\n className: clsx(\"epr-tone-\" + skinToneVariation, 'epr-tone', (_clsx2 = {}, _clsx2[ClassNames.active] = active, _clsx2)),\n tabIndex: isOpen ? 0 : -1,\n \"aria-pressed\": active,\n \"aria-label\": \"Skin tone \" + skinTonesNamed[skinToneVariation]\n });\n })));\n}\nvar SkinTonePickerDirection;\n\n(function (SkinTonePickerDirection) {\n SkinTonePickerDirection[\"VERTICAL\"] = \"epr-vertical\";\n SkinTonePickerDirection[\"HORIZONTAL\"] = \"epr-horizontal\";\n})(SkinTonePickerDirection || (SkinTonePickerDirection = {}));\n\nfunction Preview() {\n var previewConfig = usePreviewConfig();\n var isSkinToneInPreview = useIsSkinToneInPreview();\n\n if (!previewConfig.showPreview) {\n return null;\n }\n\n return createElement(Flex, {\n className: \"epr-preview\"\n }, createElement(PreviewBody, null), createElement(Space, null), isSkinToneInPreview ? createElement(SkinTonePickerMenu, null) : null);\n}\nfunction PreviewBody() {\n var previewConfig = usePreviewConfig();\n\n var _useState = useState(null),\n previewEmoji = _useState[0],\n setPreviewEmoji = _useState[1];\n\n var emojiStyle = useEmojiStyleConfig();\n\n var _useEmojiVariationPic = useEmojiVariationPickerState(),\n variationPickerEmoji = _useEmojiVariationPic[0];\n\n var getEmojiUrl = useGetEmojiUrlConfig();\n useEmojiPreviewEvents(previewConfig.showPreview, setPreviewEmoji);\n var emoji = emojiByUnified(previewEmoji == null ? void 0 : previewEmoji.originalUnified);\n var show = emoji != null && previewEmoji != null;\n return createElement(PreviewContent, null);\n\n function PreviewContent() {\n var defaultEmoji = variationPickerEmoji != null ? variationPickerEmoji : emojiByUnified(previewConfig.defaultEmoji);\n\n if (!defaultEmoji) {\n return null;\n }\n\n var defaultText = variationPickerEmoji ? emojiName(variationPickerEmoji) : previewConfig.defaultCaption;\n return createElement(Fragment, null, createElement(\"div\", null, show ? createElement(ViewOnlyEmoji, {\n unified: previewEmoji == null ? void 0 : previewEmoji.unified,\n emoji: emoji,\n emojiStyle: emojiStyle,\n size: 45,\n getEmojiUrl: getEmojiUrl\n }) : defaultEmoji ? createElement(ViewOnlyEmoji, {\n unified: emojiUnified(defaultEmoji),\n emoji: defaultEmoji,\n emojiStyle: emojiStyle,\n size: 45,\n getEmojiUrl: getEmojiUrl\n }) : null), show ? createElement(\"div\", {\n className: \"epr-preview-emoji-label\"\n }, emojiName(emoji)) : createElement(\"div\", {\n className: \"epr-preview-emoji-label\"\n }, defaultText));\n }\n}\n\nvar css_248z$8 = \".EmojiPickerReact .epr-category-nav{display:flex;flex-direction:row;justify-content:space-around;padding:var(--epr-header-padding)}.EmojiPickerReact .epr-category-nav>button.epr-cat-btn{background-size:calc(var(--epr-category-navigation-button-size)*10);display:inline-block;height:var(--epr-category-navigation-button-size);outline:none;position:relative;transition:opacity .2s ease-in-out;width:var(--epr-category-navigation-button-size)}.EmojiPickerReact .epr-category-nav>button.epr-cat-btn:focus:before{border:2px solid var(--epr-category-icon-active-color);border-radius:50%;bottom:-2px;content:\\\"\\\";left:-2px;position:absolute;right:-2px;top:-2px}aside.EmojiPickerReact.epr-main:has(input:not(:-moz-placeholder-shown)) .epr-category-nav{cursor:default;opacity:.3;pointer-events:none}aside.EmojiPickerReact.epr-main:has(input:not(:placeholder-shown)) .epr-category-nav{cursor:default;opacity:.3;pointer-events:none}.EmojiPickerReact.epr-search-active .epr-category-nav{cursor:default;opacity:.3;pointer-events:none}aside.EmojiPickerReact.epr-main:has(input:not(:-moz-placeholder-shown)) .epr-category-nav>button.epr-cat-btn:hover{background-position-y:var(--epr-category-navigation-button-size);opacity:1}aside.EmojiPickerReact.epr-main:has(input:not(:placeholder-shown)) .epr-category-nav>button.epr-cat-btn:hover{background-position-y:var(--epr-category-navigation-button-size);opacity:1}.EmojiPickerReact:not(.epr-search-active) .epr-category-nav>button.epr-cat-btn.epr-active,.EmojiPickerReact:not(.epr-search-active) .epr-category-nav>button.epr-cat-btn:hover{background-position-y:var(--epr-category-navigation-button-size);opacity:1}.EmojiPickerReact .epr-category-nav>button.epr-cat-btn{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='80' xml:space='preserve'%3E%3Cg fill='%233371B7' stroke='%233371B7' stroke-width='.1' stroke-miterlimit='10'%3E%3Cpath d='M12.8 29.5c.6 0 1.1-.5 1.1-1.1 0-.6-.5-1.2-1.1-1.2-.6 0-1.2.5-1.2 1.2 0 .6.6 1.1 1.2 1.1zm0-1.5c.2 0 .4.2.4.4s-.2.4-.4.4-.4-.2-.4-.4c0-.3.2-.4.4-.4z'/%3E%3Cpath d='M10 23c-3.8 0-7 3.1-7 7 0 3.8 3.1 7 7 7s7-3.1 7-7c0-3.8-3.2-7-7-7zm0 13.2c-3.4 0-6.2-2.8-6.2-6.2 0-3.4 2.8-6.2 6.2-6.2s6.2 2.8 6.2 6.2c0 3.4-2.8 6.2-6.2 6.2z'/%3E%3Cpath d='M14.6 31.2c-.1-.1-.2-.2-.3-.2H5.7c-.1 0-.2.1-.3.2-.1.1-.1.2 0 .4.7 2 2.5 3.3 4.6 3.3s3.9-1.3 4.6-3.3c.1-.1.1-.3 0-.4zM10 34.1c-1.6 0-3-.9-3.7-2.2h7.3c-.6 1.3-2 2.2-3.6 2.2zm-2.8-4.6c.6 0 1.2-.5 1.2-1.1 0-.6-.5-1.2-1.2-1.2-.6 0-1.1.5-1.1 1.2 0 .6.5 1.1 1.1 1.1zm0-1.5c.2 0 .4.2.4.4s-.2.4-.4.4-.4-.2-.4-.4c0-.3.2-.4.4-.4z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%233371B7' d='M64.1 33.4h2.3c.2 0 .4.2.4.4v2.1c0 .2-.2.4-.4.4h-2.3c-.2 0-.4-.2-.4-.4v-2.1c0-.2.1-.4.4-.4zm9.4.1h2.4c.2 0 .4.2.4.4v2c0 .2-.2.4-.4.4h-2.4c-.2 0-.4-.2-.4-.4v-2c0-.3.2-.4.4-.4zm-9.8-5.1h12.6v5H63.7v-5z'/%3E%3Cpath fill='none' stroke='%233371B7' d='M65.5 23.6h8.9c1 0 1.9.8 1.9 1.9v3.1H63.7v-3.1c0-1 .8-1.9 1.8-1.9z'/%3E%3Cellipse fill='%233371B7' cx='66.2' cy='30.9' rx='.9' ry='1'/%3E%3Cellipse fill='%233371B7' cx='73.8' cy='30.9' rx='.9' ry='1'/%3E%3Cg fill='none' stroke='%233371B7'%3E%3Cpath d='M96.4 30c0 3.6-2.9 6.5-6.4 6.5s-6.4-2.9-6.4-6.5 2.9-6.5 6.4-6.5 6.4 2.9 6.4 6.5z'/%3E%3Cpath d='M96.3 28.6v.1c-.9.1-2.9.1-4.6-1.1-1.1-.8-2-1.7-2.6-2.5-.3-.4-.6-.8-.7-1-.1-.1-.1-.1-.1-.2.5-.1 1.2-.2 2-.1 1.2 0 2.5.3 3.5 1.1s1.7 1.8 2.1 2.8c.2.2.3.6.4.9zM84 32.2v-.1c.9-.2 2.9-.4 4.7.6 1.1.7 1.9 1.5 2.4 2.3.4.5.6 1 .7 1.3-.4.1-1 .2-1.7.3-1 0-2.1-.1-3.2-.8s-1.9-1.6-2.4-2.5c-.3-.5-.4-.8-.5-1.1z'/%3E%3C/g%3E%3Cg fill='none' stroke='%233371B7'%3E%3Cpath stroke-linecap='round' d='m116.3 26.8-1.4 2-.8-.8-.6-.6v.9l-.1 8.2h-6.8l-.1-8.2v-.9l-.6.6-.8.8-1.4-2 2.6-2.9c.1-.1.2-.1.3-.1h1.3l.4.7c.7 1.3 2.6 1.3 3.3-.1l.3-.6h1.2c.1 0 .2 0 .3.1l.3-.3-.3.3 2.9 2.9z'/%3E%3Cpath d='M110.1 27.7h2v.9c0 .4-.4.7-1 .7s-1-.3-1-.7v-.9z'/%3E%3C/g%3E%3Cpath d='M126.8 34.3c0 1.2-1 2.2-2.2 2.2s-2.2-1-2.2-2.2 1-2.2 2.2-2.2 2.2 1 2.2 2.2zm10.8 0c0 1.2-1 2.2-2.2 2.2-1.2 0-2.2-1-2.2-2.2s1-2.2 2.2-2.2c1.2 0 2.2 1 2.2 2.2zm-10.8-9.9v9.9m10.9-9.9v9.9m-10.9-10.8h10.8v2.7h-10.8v-2.7z' fill='none' stroke='%233371B7'/%3E%3Cg fill='%233371B7'%3E%3Cpath d='M170.8 23.1h-.8c-2.1 0-4 1-5.3 2.5h-.1l-.1-.1-1-1.2-.3 3.4 3.4.3-1.1-1.3-.1-.1.1-.1c1.1-1.5 3-2.3 5-2.1 3.2.3 5.5 3.1 5.2 6.3-.3 3-3.1 5.3-6.1 5.1-3.1-.2-5.4-2.9-5.3-6l-1.3-.1c-.2 3.8 2.6 7.1 6.3 7.4 3.9.3 7.3-2.6 7.6-6.5.3-3.8-2.5-7.1-6.1-7.5z'/%3E%3Cpath d='M170.3 27.4c0-.3-.3-.6-.6-.6s-.6.3-.6.6v3.2c0 .2.1.3.2.4.1.1.3.2.4.2h2.4c.4 0 .6-.3.6-.6 0-.4-.3-.6-.6-.6h-1.8v-2.6z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%233371B7' d='M186.2 23.4h7.7c1.5 0 2.7 1.2 2.7 2.7v7.7c0 1.5-1.2 2.7-2.7 2.7h-7.7c-1.5 0-2.7-1.2-2.7-2.7v-7.7c-.1-1.5 1.2-2.7 2.7-2.7z'/%3E%3Ccircle fill='%233371B7' cx='186' cy='28.9' r='.7'/%3E%3Ccircle fill='%233371B7' cx='194' cy='26.7' r='.7'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='m186 33.3.4-.3c.4-.3 1-.3 1.5-.1l1 .4c.5.2 1 .2 1.5-.1l.8-.5c.4-.3 1-.3 1.5-.1l1.8.8'/%3E%3Cpath fill='%233371B7' stroke='%233371B7' stroke-width='.25' stroke-miterlimit='10' d='M156 24.3c-.2-.1-.4-.1-.5 0 0 0-.2.1-.9.2-.7 0-2.4-.1-3.8-.6-.8-.3-1.7-.5-2.5-.5h-.5c-1.3 0-2.5.3-3.6 1-.2.1-.2.2-.2.4v11.6c0 .3.1.5.3.5.6 0 .5-.4.5-.6v-5.7c.7-.3 3.2-1.1 5.8-.1 1.6.6 3.5.7 4.3.7.8 0 1.3-.3 1.3-.3.2-.1.3-.2.3-.4v-5.7c-.3-.2-.4-.4-.5-.5zm-.4 5.9c-.1 0-.7.1-1 .1-.7 0-2.4-.1-3.8-.6-2.5-1-5-.5-6.2-.1v-4.9c.9-.5 2.2-.7 3.2-.7h.4c.7 0 1.5.2 2.2.4 1.6.6 3.5.7 4.3.7.2 0 .8 0 1-.1v5.2z'/%3E%3Cpath fill='none' stroke='%233371B7' d='M48.1 23.5h3.7c2.5 0 4.5 2 4.5 4.5 0 .5-.4.9-.9.9H44.5c-.5 0-.9-.4-.9-.9 0-2.5 2-4.5 4.5-4.5z'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='M43.5 28.8c-.2.1-.5 1.2 0 1.5 1.4 1 8.5.8 11.3.6.8-.1 1.6-.4 1.7-1.2 0-.3-.1-.6-.6-.9'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='m43.5 30.6-.2.4c-.2.5.2 1 .7.9.3-.1.5 0 .7.3l.1.2c.3.5 1 .6 1.5.2h0c.3-.2.7-.3 1-.2l.8.3c.4.2.8.1 1.2 0l.5-.2c.4-.2.9-.2 1.3 0l.5.2c.4.2.8.2 1.2 0l.2-.1c.3-.2.8-.2 1.1.1l.2.2c.3.3.8.2 1-.2l.1-.2c.1-.2 0-.3.2-.3.5 0 1.2-.3 1.1-.7l-.4-1.1'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='M43.5 32.2c-.1.2-.3.8 0 1.1.3.4 3 1.1 6.4 1.1 2.2 0 4.6-.3 6-.6.5-.1.9-.5.8-.9 0-.2-.2-.5-.4-.7'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='M43.5 33.3c0 .5.6 2.3 1.3 2.7 1.8.8 5.7.7 8.1.5 1.3-.1 2.5-.7 3.2-1.8.3-.5.5-1 .5-1.4'/%3E%3Cellipse fill='%233371B7' cx='51.6' cy='26.5' rx='.3' ry='.4'/%3E%3Cellipse fill='%233371B7' cx='53' cy='25' rx='.3' ry='.4'/%3E%3Cellipse fill='%233371B7' cx='53' cy='27.2' rx='.3' ry='.4'/%3E%3Cellipse fill='%233371B7' cx='54.3' cy='26.5' rx='.3' ry='.4'/%3E%3Cellipse fill='%233371B7' cx='50.9' cy='25' rx='.3' ry='.4'/%3E%3Cpath fill='none' stroke='%233371B7' d='M24.2 31v-7.6c.1.1.8.9 2.8 3.1 2.5-1.6 5.6-.7 6.9 0l2.4-3.1v7.1c0 1.2-.1 2.5-.9 3.4-1 1.2-2.7 2.5-5.3 2.5-2.9 0-4.5-1.5-5.3-2.9-.6-.6-.6-1.5-.6-2.5z'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='m21.2 30 5.4 1.2m-5.4 2.9 5.4-1.2M38.8 30l-5.4 1.2m5.4 2.9-5.4-1.2'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%233371B7' d='m29.5 32.4-.5-.7c-.2-.3 0-.6.3-.6h1.4c.3 0 .5.4.3.6l-.7 1c-.7 1.2-2.6 1.1-3.1-.3l-.1-.2c-.1-.2 0-.4.2-.5s.4 0 .5.2l.1.2c.4.7 1.2.8 1.6.3z'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='m32.4 32.1-.1.2c-.4 1-1.8 1.1-2.3.2'/%3E%3Ccircle fill='%233371B7' cx='27.6' cy='29.7' r='.7'/%3E%3Ccircle fill='%233371B7' cx='32.4' cy='29.7' r='.7'/%3E%3Cg fill='%23C0C0BF' stroke='%23C0C0BF' stroke-width='.1' stroke-miterlimit='10'%3E%3Cpath d='M12.8 49.5c.6 0 1.1-.5 1.1-1.1 0-.6-.5-1.2-1.1-1.2-.6 0-1.2.5-1.2 1.2 0 .6.6 1.1 1.2 1.1zm0-1.5c.2 0 .4.2.4.4s-.2.4-.4.4-.4-.2-.4-.4c0-.3.2-.4.4-.4zm1.8 3.2c-.1-.1-.2-.2-.3-.2H5.7c-.1 0-.2.1-.3.2-.1.1-.1.2 0 .4.7 2 2.5 3.3 4.6 3.3s3.9-1.3 4.6-3.3c.1-.1.1-.3 0-.4zM10 54.1c-1.6 0-3-.9-3.7-2.2h7.3c-.6 1.3-2 2.2-3.6 2.2zm-2.8-4.6c.6 0 1.2-.5 1.2-1.1 0-.6-.5-1.2-1.2-1.2-.6 0-1.1.5-1.1 1.2 0 .6.5 1.1 1.1 1.1zm0-1.5c.2 0 .4.2.4.4s-.2.4-.4.4-.4-.2-.4-.4c0-.3.2-.4.4-.4z'/%3E%3Cpath d='M10 43c-3.8 0-7 3.1-7 7 0 3.8 3.1 7 7 7s7-3.1 7-7c0-3.8-3.2-7-7-7zm0 13.2c-3.4 0-6.2-2.8-6.2-6.2 0-3.4 2.8-6.2 6.2-6.2s6.2 2.8 6.2 6.2c0 3.4-2.8 6.2-6.2 6.2z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%23C0C0BF' d='M64.1 53.4h2.3c.2 0 .4.2.4.4v2.1c0 .2-.2.4-.4.4h-2.3c-.2 0-.4-.2-.4-.4v-2.1c0-.2.1-.4.4-.4zm9.4.1h2.4c.2 0 .4.2.4.4v2c0 .2-.2.4-.4.4h-2.4c-.2 0-.4-.2-.4-.4v-2c0-.3.2-.4.4-.4zm-9.8-5.1h12.6v5H63.7v-5z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' d='M65.5 43.6h8.9c1 0 1.9.8 1.9 1.9v3.1H63.7v-3.1c0-1 .8-1.9 1.8-1.9z'/%3E%3Cellipse fill='%23C0C0BF' cx='66.2' cy='50.9' rx='.9' ry='1'/%3E%3Cellipse fill='%23C0C0BF' cx='73.8' cy='50.9' rx='.9' ry='1'/%3E%3Cg fill='none' stroke='%23C0C0BF'%3E%3Cpath d='M96.4 50c0 3.6-2.9 6.5-6.4 6.5s-6.4-2.9-6.4-6.5 2.9-6.5 6.4-6.5 6.4 2.9 6.4 6.5z'/%3E%3Cpath d='M96.3 48.6v.1c-.9.1-2.9.1-4.6-1.2-1.1-.8-2-1.7-2.6-2.5-.3-.4-.6-.8-.7-1-.1-.1-.1-.2-.1-.2.5-.1 1.2-.2 2-.2 1.2 0 2.5.3 3.5 1.1s1.7 1.8 2.1 2.8c.2.4.3.8.4 1.1zM84 52.2v-.1c.9-.2 2.9-.4 4.7.6 1.1.7 1.9 1.5 2.4 2.3.4.5.6 1 .7 1.3-.4.1-1 .2-1.7.3-1 0-2.1-.1-3.2-.8s-1.9-1.6-2.4-2.5c-.3-.5-.4-.8-.5-1.1z'/%3E%3C/g%3E%3Cg fill='none' stroke='%23C0C0BF'%3E%3Cpath stroke-linecap='round' d='m116.3 46.8-1.4 2-.8-.8-.6-.7v.9l-.1 8.2h-6.8l-.1-8.2v-.9l-.6.7-.8.8-1.4-2 2.6-2.9c.1-.1.2-.1.3-.1h1.3l.4.7c.7 1.3 2.6 1.3 3.3-.1l.3-.6h1.2c.1 0 .2 0 .3.1l.3-.3-.3.3 2.9 2.9z'/%3E%3Cpath d='M110.1 47.7h2v.9c0 .4-.4.7-1 .7s-1-.3-1-.7v-.9z'/%3E%3C/g%3E%3Cpath d='M126.8 54.3c0 1.2-1 2.2-2.2 2.2s-2.2-1-2.2-2.2 1-2.2 2.2-2.2 2.2 1 2.2 2.2zm10.8 0c0 1.2-1 2.2-2.2 2.2-1.2 0-2.2-1-2.2-2.2s1-2.2 2.2-2.2c1.2 0 2.2 1 2.2 2.2zm-10.8-9.9v9.9m10.9-9.9v9.9m-10.9-10.8h10.8v2.7h-10.8v-2.7z' fill='none' stroke='%23C0C0BF'/%3E%3Cg fill='%23C0C0BF'%3E%3Cpath d='M170.8 43.1h-.8c-2.1 0-4 1-5.3 2.5h-.1l-.1-.1-1-1.2-.3 3.4 3.4.3-1.1-1.3-.1-.1.1-.1c1.1-1.5 3-2.3 5-2.1 3.2.3 5.5 3.1 5.2 6.3-.3 3-3.1 5.3-6.1 5.1-3.1-.2-5.4-2.9-5.3-6l-1.3-.1c-.2 3.8 2.6 7.1 6.3 7.4 3.9.3 7.3-2.6 7.6-6.5.3-3.8-2.5-7.1-6.1-7.5z'/%3E%3Cpath d='M170.3 47.4c0-.3-.3-.6-.6-.6s-.6.3-.6.6v3.2c0 .2.1.3.2.4.1.1.3.2.4.2h2.4c.4 0 .6-.3.6-.6s-.3-.6-.6-.6h-1.8v-2.6z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%23C0C0BF' d='M186.2 43.4h7.7c1.5 0 2.7 1.2 2.7 2.7v7.7c0 1.5-1.2 2.7-2.7 2.7h-7.7c-1.5 0-2.7-1.2-2.7-2.7v-7.7c-.1-1.4 1.2-2.7 2.7-2.7z'/%3E%3Ccircle fill='%23C0C0BF' cx='186' cy='48.9' r='.7'/%3E%3Ccircle fill='%23C0C0BF' cx='194' cy='46.7' r='.7'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='m186 53.3.4-.3c.4-.3 1-.3 1.5-.1l1 .4c.5.2 1 .2 1.5-.1l.8-.5c.4-.3 1-.3 1.5-.1l1.8.8'/%3E%3Cpath fill='%23C0C0BF' stroke='%23C0C0BF' stroke-width='.25' stroke-miterlimit='10' d='M156 44.3c-.2-.1-.4-.1-.5 0 0 0-.2.1-.9.2-.7 0-2.4-.1-3.8-.6-.8-.3-1.7-.5-2.5-.5h-.5c-1.3 0-2.5.3-3.6 1-.2.1-.2.2-.2.4v11.6c0 .3.1.5.3.5.6 0 .5-.4.5-.6v-5.7c.7-.3 3.2-1.1 5.8-.1 1.6.6 3.5.7 4.3.7.8 0 1.3-.3 1.3-.3.2-.1.3-.2.3-.4v-5.7c-.3-.2-.4-.4-.5-.5zm-.4 5.9c-.1 0-.7.1-1 .1-.7 0-2.4-.1-3.8-.6-2.5-1-5-.5-6.2-.1v-4.9c.9-.5 2.2-.7 3.2-.7h.4c.7 0 1.5.2 2.2.4 1.6.6 3.5.7 4.3.7.2 0 .8 0 1-.1v5.2z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' d='M48.1 43.5h3.7c2.5 0 4.5 2 4.5 4.5 0 .5-.4.9-.9.9H44.5c-.5 0-.9-.4-.9-.9 0-2.5 2-4.5 4.5-4.5z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='M43.5 48.8c-.2.1-.5 1.2 0 1.5 1.4 1 8.5.8 11.3.6.8-.1 1.6-.4 1.7-1.2 0-.3-.1-.6-.6-.9'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='m43.5 50.6-.2.4c-.2.5.2 1 .7.9.3-.1.5 0 .7.3l.1.2c.3.5 1 .6 1.5.2h0c.3-.2.7-.3 1-.2l.8.3c.4.2.8.1 1.2 0l.5-.2c.4-.2.9-.2 1.3 0l.5.2c.4.2.8.2 1.2 0l.2-.1c.3-.2.8-.2 1.1.1l.2.2c.3.3.8.2 1-.2l.1-.2c.1-.2 0-.3.2-.3.5 0 1.2-.3 1.1-.7l-.4-1.1'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='M43.5 52.2c-.1.2-.3.8 0 1.1.3.4 3 1.1 6.4 1.1 2.2 0 4.6-.3 6-.6.5-.1.9-.5.8-.9 0-.2-.2-.5-.4-.7'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='M43.5 53.3c0 .5.6 2.3 1.3 2.7 1.8.8 5.7.7 8.1.5 1.3-.1 2.5-.7 3.2-1.8.3-.5.5-1 .5-1.4'/%3E%3Cellipse fill='%23C0C0BF' cx='51.6' cy='46.5' rx='.3' ry='.4'/%3E%3Cellipse fill='%23C0C0BF' cx='53' cy='45' rx='.3' ry='.4'/%3E%3Cellipse fill='%23C0C0BF' cx='53' cy='47.2' rx='.3' ry='.4'/%3E%3Cellipse fill='%23C0C0BF' cx='54.3' cy='46.5' rx='.3' ry='.4'/%3E%3Cellipse fill='%23C0C0BF' cx='50.9' cy='45' rx='.3' ry='.4'/%3E%3Cpath fill='none' stroke='%23C0C0BF' d='M24.2 51v-7.6c.1.1.8.9 2.8 3.1 2.5-1.7 5.6-.7 6.9 0l2.4-3.1v7.1c0 1.2-.1 2.5-.9 3.4-1 1.2-2.7 2.5-5.3 2.5-2.9 0-4.5-1.5-5.3-2.9-.6-.6-.6-1.5-.6-2.5z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='m21.2 50 5.4 1.2m-5.4 2.9 5.4-1.2M38.8 50l-5.4 1.2m5.4 2.9-5.4-1.2'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%23C0C0BF' d='m29.5 52.4-.5-.7c-.2-.3 0-.6.3-.6h1.4c.3 0 .5.4.3.6l-.7 1c-.7 1.2-2.6 1.1-3.1-.3l-.1-.2c-.1-.2 0-.4.2-.5s.4 0 .5.2l.1.2c.4.7 1.2.8 1.6.3z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='m32.4 52.1-.1.2c-.4 1-1.8 1.1-2.3.2'/%3E%3Ccircle fill='%23C0C0BF' cx='27.6' cy='49.7' r='.7'/%3E%3Ccircle fill='%23C0C0BF' cx='32.4' cy='49.7' r='.7'/%3E%3Cg fill='%236AA9DD' stroke='%236AA9DD' stroke-width='.1' stroke-miterlimit='10'%3E%3Cpath d='M14.6 71.2c-.1-.1-.2-.2-.3-.2H5.7c-.1 0-.2.1-.3.2-.1.1-.1.2 0 .4.7 2 2.5 3.3 4.6 3.3s3.9-1.3 4.6-3.3c.1-.1.1-.3 0-.4zM10 74.1c-1.6 0-3-.9-3.7-2.2h7.3c-.6 1.3-2 2.2-3.6 2.2zm2.8-4.6c.6 0 1.1-.5 1.1-1.1 0-.6-.5-1.2-1.1-1.2-.6 0-1.2.5-1.2 1.2 0 .6.6 1.1 1.2 1.1zm0-1.5c.2 0 .4.2.4.4s-.2.4-.4.4-.4-.2-.4-.4c0-.3.2-.4.4-.4zm-5.6 1.5c.6 0 1.2-.5 1.2-1.1 0-.6-.5-1.2-1.2-1.2-.6 0-1.1.5-1.1 1.2 0 .6.5 1.1 1.1 1.1zm0-1.5c.2 0 .4.2.4.4s-.2.4-.4.4-.4-.2-.4-.4c0-.3.2-.4.4-.4z'/%3E%3Cpath d='M10 63c-3.8 0-7 3.1-7 7 0 3.8 3.1 7 7 7s7-3.1 7-7c0-3.8-3.2-7-7-7zm0 13.2c-3.4 0-6.2-2.8-6.2-6.2 0-3.4 2.8-6.2 6.2-6.2s6.2 2.8 6.2 6.2c0 3.4-2.8 6.2-6.2 6.2z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%236AA9DD' d='M64.1 73.4h2.3c.2 0 .4.2.4.4v2.1c0 .2-.2.4-.4.4h-2.3c-.2 0-.4-.2-.4-.4v-2.1c0-.2.1-.4.4-.4zm9.4.1h2.4c.2 0 .4.2.4.4V76c0 .2-.2.4-.4.4h-2.4c-.2 0-.4-.2-.4-.4v-2.1c0-.3.2-.4.4-.4zm-9.8-5.1h12.6v5H63.7v-5z'/%3E%3Cpath fill='none' stroke='%236AA9DD' d='M65.5 63.6h8.9c1 0 1.9.8 1.9 1.9v3.1H63.7v-3.1c0-1 .8-1.9 1.8-1.9z'/%3E%3Ccircle fill='%236AA9DD' cx='66.2' cy='70.9' r='.9'/%3E%3Ccircle fill='%236AA9DD' cx='73.8' cy='70.9' r='.9'/%3E%3Cg fill='none' stroke='%236AA9DD'%3E%3Cpath d='M96.4 70c0 3.6-2.9 6.5-6.4 6.5s-6.4-2.9-6.4-6.5 2.9-6.5 6.4-6.5 6.4 2.9 6.4 6.5z'/%3E%3Cpath d='M96.3 68.6v.1c-.9.1-2.9.1-4.6-1.2-1.1-.8-2-1.7-2.6-2.5-.3-.4-.6-.8-.7-1.1-.1-.1-.1-.2-.1-.2.5-.1 1.2-.2 2-.2 1.2 0 2.5.3 3.5 1.1s1.7 1.8 2.1 2.8c.2.5.3.9.4 1.2zM84 72.2v-.1c.9-.2 2.9-.4 4.7.6 1.1.7 1.9 1.5 2.4 2.3.4.5.6 1 .7 1.3-.4.1-1 .2-1.7.3-1 0-2.1-.1-3.2-.8s-1.9-1.6-2.4-2.5c-.3-.5-.4-.9-.5-1.1z'/%3E%3C/g%3E%3Cg fill='none' stroke='%236AA9DD'%3E%3Cpath stroke-linecap='round' d='m116.3 66.8-1.4 2-.8-.8-.6-.7v.9l-.1 8.2h-6.8l-.1-8.2v-.9l-.6.7-.8.8-1.4-2 2.6-2.9c.1-.1.2-.1.3-.1h1.3l.4.7c.7 1.3 2.6 1.3 3.3-.1l.3-.6h1.2c.1 0 .2 0 .3.1l.3-.3-.3.3 2.9 2.9z'/%3E%3Cpath d='M110.1 67.7h2v.9c0 .4-.4.7-1 .7s-1-.3-1-.7v-.9z'/%3E%3C/g%3E%3Cpath d='M126.8 74.3c0 1.2-1 2.2-2.2 2.2s-2.2-1-2.2-2.2 1-2.2 2.2-2.2 2.2 1 2.2 2.2zm10.8 0c0 1.2-1 2.2-2.2 2.2-1.2 0-2.2-1-2.2-2.2s1-2.2 2.2-2.2c1.2 0 2.2 1 2.2 2.2zm-10.8-9.9v9.9m10.9-9.9v9.9m-10.9-10.8h10.8v2.7h-10.8v-2.7z' fill='none' stroke='%236AA9DD'/%3E%3Cg fill='%236AA9DD'%3E%3Cpath d='M170.8 63.1h-.8c-2.1 0-4 1-5.3 2.5h-.1l-.1-.1-1-1.2-.3 3.4 3.4.3-1.1-1.3-.1-.1.1-.1c1.1-1.4 3-2.3 5-2.1 3.2.3 5.5 3.1 5.2 6.3-.3 3-3.1 5.3-6.1 5.1-3.1-.2-5.4-2.9-5.3-6l-1.3-.1c-.2 3.8 2.6 7.1 6.3 7.4 3.9.3 7.3-2.6 7.6-6.5.3-3.8-2.5-7.1-6.1-7.5z'/%3E%3Cpath d='M170.3 67.4c0-.3-.3-.6-.6-.6s-.6.3-.6.6v3.2c0 .2.1.3.2.4.1.1.3.2.4.2h2.4c.4 0 .6-.3.6-.6s-.3-.6-.7-.6h-1.8v-.2l.1-2.4z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%236AA9DD' d='M186.2 63.4h7.7c1.5 0 2.7 1.2 2.7 2.7v7.7c0 1.5-1.2 2.7-2.7 2.7h-7.7c-1.5 0-2.7-1.2-2.7-2.7v-7.7c-.1-1.4 1.2-2.7 2.7-2.7z'/%3E%3Ccircle fill='%236AA9DD' cx='186' cy='68.9' r='.7'/%3E%3Ccircle fill='%236AA9DD' cx='194' cy='66.7' r='.7'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='m186 73.3.4-.3c.4-.3 1-.3 1.5-.1l1 .4c.5.2 1 .2 1.5-.1l.8-.5c.4-.3 1-.3 1.5-.1l1.8.8'/%3E%3Cpath fill='%236AA9DD' stroke='%236AA9DD' stroke-width='.25' stroke-miterlimit='10' d='M156 64.3c-.2-.1-.4-.1-.5 0 0 0-.2.1-.9.2-.7 0-2.4-.1-3.8-.6-.8-.3-1.7-.5-2.5-.5h-.5c-1.3 0-2.5.3-3.6 1-.2.1-.2.2-.2.4v11.6c0 .3.1.5.3.5.6 0 .5-.4.5-.6v-5.7c.7-.3 3.2-1.1 5.8-.1 1.6.6 3.5.7 4.3.7.8 0 1.3-.3 1.3-.3.2-.1.3-.2.3-.4v-5.7c-.3-.2-.4-.4-.5-.5zm-.4 5.9c-.1 0-.7.1-1 .1-.7 0-2.4-.1-3.8-.6-2.5-1-5-.5-6.2-.1v-4.9c.9-.5 2.2-.7 3.2-.7h.4c.7 0 1.5.2 2.2.4 1.6.6 3.5.7 4.3.7.2 0 .8 0 1-.1v5.2z'/%3E%3Cpath fill='none' stroke='%236AA9DD' d='M48.1 63.5h3.7c2.5 0 4.5 2 4.5 4.5 0 .5-.4.9-.9.9H44.5c-.5 0-.9-.4-.9-.9 0-2.5 2-4.5 4.5-4.5z'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='M43.5 68.8c-.2.1-.5 1.2 0 1.5 1.4.9 8.5.8 11.3.6.8-.1 1.6-.4 1.7-1.2 0-.3-.1-.6-.6-.9'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='m43.5 70.6-.2.4c-.2.5.2 1 .7.9.3-.1.5.1.7.3l.1.2c.3.5 1 .6 1.5.2h0c.3-.2.7-.3 1-.2l.8.3c.4.2.8.1 1.2 0l.5-.2c.4-.2.9-.2 1.3 0l.5.2c.4.2.8.2 1.2-.1l.2-.1c.3-.2.8-.2 1.1.1l.2.2c.3.3.8.2 1-.2l.1-.2c.1-.2 0-.3.2-.3.5 0 1.2-.3 1.1-.7l-.4-1.1'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='M43.5 72.2c-.1.2-.3.8 0 1.1.3.4 3 1.1 6.4 1.1 2.2 0 4.6-.3 6-.6.5-.1.9-.4.8-.9 0-.2-.2-.5-.4-.7'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='M43.5 73.3c0 .5.6 2.3 1.3 2.7 1.8.8 5.7.7 8.1.5 1.3-.1 2.5-.7 3.2-1.8.3-.5.5-1 .5-1.4'/%3E%3Cellipse fill='%236AA9DD' cx='51.6' cy='66.5' rx='.3' ry='.4'/%3E%3Cellipse fill='%236AA9DD' cx='53' cy='65' rx='.3' ry='.4'/%3E%3Cellipse fill='%236AA9DD' cx='53' cy='67.2' rx='.3' ry='.4'/%3E%3Cellipse fill='%236AA9DD' cx='54.3' cy='66.5' rx='.3' ry='.4'/%3E%3Cellipse fill='%236AA9DD' cx='50.9' cy='65' rx='.3' ry='.4'/%3E%3Cpath fill='none' stroke='%236AA9DD' d='M24.2 71v-7.6c.1.1.8.9 2.8 3.1 2.5-1.7 5.6-.7 6.9 0l2.4-3.1v7.1c0 1.2-.1 2.5-.9 3.4-1 1.2-2.7 2.5-5.3 2.5-2.9 0-4.5-1.5-5.3-2.9-.6-.6-.6-1.5-.6-2.5z'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='m21.2 70.1 5.4 1.2m-5.4 2.8 5.4-1.2m12.2-2.8-5.4 1.2m5.4 2.8-5.4-1.2'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%236AA9DD' d='m29.5 72.4-.5-.7c-.2-.3 0-.6.3-.6h1.4c.3 0 .5.4.3.6l-.7 1c-.7 1.2-2.6 1.1-3.1-.3l-.1-.2c-.1-.2 0-.4.2-.5.2-.1.4 0 .5.2l.1.2c.4.7 1.2.8 1.6.3z'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='m32.4 72.1-.1.2c-.4 1-1.8 1.1-2.3.2'/%3E%3Ccircle fill='%236AA9DD' cx='27.6' cy='69.7' r='.7'/%3E%3Ccircle fill='%236AA9DD' cx='32.4' cy='69.7' r='.7'/%3E%3Cg fill='%23868686' stroke='%23868686' stroke-width='.1' stroke-miterlimit='10'%3E%3Cpath d='M12.8 9.5c.6 0 1.1-.5 1.1-1.2 0-.6-.5-1.1-1.1-1.1-.6 0-1.2.5-1.2 1.1s.6 1.2 1.2 1.2zm0-1.6c.2 0 .4.2.4.4s-.2.4-.4.4-.4-.2-.4-.4.2-.4.4-.4zM7.2 9.5c.6 0 1.2-.5 1.2-1.2 0-.6-.5-1.1-1.2-1.1-.6 0-1.1.5-1.1 1.1s.5 1.2 1.1 1.2zm0-1.6c.2 0 .4.2.4.4s-.2.4-.4.4-.4-.2-.4-.4.2-.4.4-.4zm7.4 3.3c-.1-.1-.2-.2-.3-.2H5.7c-.1 0-.2.1-.3.2-.1.1-.1.2 0 .4.7 2 2.5 3.3 4.6 3.3s3.9-1.3 4.6-3.3c.1-.2.1-.3 0-.4zM10 14.1c-1.6 0-3-.9-3.7-2.2h7.3c-.6 1.3-2 2.2-3.6 2.2z'/%3E%3Cpath d='M10 3c-3.8 0-7 3.1-7 7s3.1 7 7 7 7-3.1 7-7-3.2-7-7-7zm0 13.2c-3.4 0-6.2-2.8-6.2-6.2S6.6 3.8 10 3.8s6.2 2.8 6.2 6.2-2.8 6.2-6.2 6.2z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%23868686' d='M64.1 13.4h2.3c.2 0 .4.2.4.4v2.1c0 .2-.2.4-.4.4h-2.3c-.2 0-.4-.2-.4-.4v-2.1c0-.2.1-.4.4-.4zm9.4 0h2.4c.2 0 .4.2.4.4v2.1c0 .2-.2.4-.4.4h-2.4c-.2 0-.4-.2-.4-.4v-2.1c0-.2.2-.4.4-.4zm-9.8-5h12.6v5H63.7v-5z'/%3E%3Cpath fill='none' stroke='%23868686' d='M65.5 3.6h8.9c1 0 1.9.8 1.9 1.9v3.1H63.7V5.5c0-1.1.8-1.9 1.8-1.9z'/%3E%3Ccircle fill='%23868686' cx='66.2' cy='10.9' r='.9'/%3E%3Ccircle fill='%23868686' cx='73.8' cy='10.9' r='.9'/%3E%3Cg fill='none' stroke='%23868686'%3E%3Cpath d='M96.4 10c0 3.6-2.9 6.5-6.4 6.5s-6.4-2.9-6.4-6.5 2.9-6.5 6.4-6.5 6.4 2.9 6.4 6.5z'/%3E%3Cpath d='M96.3 8.6v.1c-.9.1-2.9.1-4.6-1.2-1.1-.8-2-1.7-2.6-2.5-.3-.4-.6-.8-.7-1.1-.1-.1-.1-.2-.1-.2.5-.1 1.2-.2 2-.2 1.2 0 2.5.3 3.5 1.1s1.7 1.8 2.1 2.8c.2.5.3.9.4 1.2zM84 12.1V12c.9-.2 2.9-.4 4.7.6 1.1.6 1.9 1.5 2.4 2.3.4.5.6 1 .7 1.3-.4.1-1 .2-1.7.3-1 0-2.1-.1-3.2-.8-1.1-.6-1.9-1.6-2.4-2.5-.3-.4-.4-.8-.5-1.1z'/%3E%3C/g%3E%3Cg fill='none' stroke='%23868686'%3E%3Cpath stroke-linecap='round' d='m116.3 6.8-1.4 2-.8-.8-.6-.7v.9l-.1 8.2h-6.8l-.1-8.2v-.9l-.6.7-.8.8-1.4-2 2.6-2.9c.1-.1.2-.1.3-.1h1.3l.4.7c.7 1.3 2.6 1.3 3.3-.1l.3-.6h1.2c.1 0 .2 0 .3.1l.3-.3-.3.3 2.9 2.9z'/%3E%3Cpath d='M110.1 7.7h2v.9c0 .4-.4.7-1 .7s-1-.3-1-.7v-.9z'/%3E%3C/g%3E%3Cpath d='M126.8 14.3c0 1.2-1 2.2-2.2 2.2s-2.2-1-2.2-2.2 1-2.2 2.2-2.2 2.2 1 2.2 2.2zm10.8 0c0 1.2-1 2.2-2.2 2.2-1.2 0-2.2-1-2.2-2.2s1-2.2 2.2-2.2c1.2 0 2.2 1 2.2 2.2zm-10.8-9.9v9.9m10.9-9.9v9.9M126.8 3.5h10.8v2.7h-10.8V3.5z' fill='none' stroke='%23868686'/%3E%3Cg fill='%23868686'%3E%3Cpath d='M170.8 3.1h-.8c-2.1 0-4 1-5.3 2.5h-.1l-.1-.1-1-1.2-.3 3.4 3.4.3-1.1-1.3-.1-.1.1-.1c1.1-1.4 3-2.3 5-2.1 3.2.3 5.5 3.1 5.2 6.3-.3 3-3.1 5.3-6.1 5.1-3.1-.2-5.4-2.9-5.3-6l-1.3-.3c-.2 3.8 2.6 7.1 6.3 7.4 3.9.4 7.3-2.6 7.6-6.5.3-3.6-2.5-6.9-6.1-7.3z'/%3E%3Cpath d='M170.3 7.4c0-.3-.3-.6-.6-.6s-.7.3-.7.6v3.2c0 .2.1.3.2.4.1.1.3.2.4.2h2.4c.4 0 .6-.3.6-.6s-.3-.6-.6-.6h-1.8v-.2l.1-2.4z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%23868686' d='M186.2 3.4h7.7c1.5 0 2.7 1.2 2.7 2.7v7.7c0 1.5-1.2 2.7-2.7 2.7h-7.7c-1.5 0-2.7-1.2-2.7-2.7V6.1c-.1-1.5 1.2-2.7 2.7-2.7z'/%3E%3Ccircle fill='%23868686' cx='186' cy='8.9' r='.7'/%3E%3Ccircle fill='%23868686' cx='194' cy='6.7' r='.7'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='m186 13.3.4-.3c.4-.3 1-.3 1.5-.1l1 .4c.5.2 1 .2 1.5-.1l.8-.5c.4-.3 1-.3 1.5-.1l1.8.8'/%3E%3Cpath fill='%23868686' stroke='%23868686' stroke-width='.25' stroke-miterlimit='10' d='M156 4.3c-.2-.1-.4-.1-.5 0 0 0-.2.1-.9.1s-2.4-.1-3.8-.6c-.8-.3-1.7-.5-2.5-.5h-.5c-1.3 0-2.5.3-3.6 1-.2.1-.2.2-.2.4v11.6c0 .3.1.5.3.5.6 0 .5-.4.5-.6v-5.7c.7-.3 3.2-1.1 5.8-.1 1.6.6 3.5.7 4.3.7.8 0 1.3-.3 1.3-.3.2-.1.3-.2.3-.4V4.7c-.3-.2-.4-.3-.5-.4zm-.4 5.9c-.1 0-.7.1-1 .1-.7 0-2.4-.1-3.8-.6-2.5-1-5-.5-6.2-.1V4.7c.9-.5 2.2-.7 3.2-.7h.4c.7 0 1.5.2 2.2.4 1.6.6 3.5.7 4.3.7.2 0 .8 0 1-.1v5.2z'/%3E%3Cpath fill='none' stroke='%23868686' d='M48.1 3.5h3.7c2.5 0 4.5 2 4.5 4.5 0 .5-.4.9-.9.9H44.5c-.5 0-.9-.4-.9-.9 0-2.5 2-4.5 4.5-4.5z'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='M43.5 8.7c-.2.1-.5 1.2 0 1.5 1.4.9 8.5.8 11.3.6.8-.1 1.6-.4 1.7-1.2 0-.3-.1-.6-.6-.9'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='m43.5 10.6-.2.4c-.2.5.2 1 .7.9.3-.1.5.1.7.3l.1.2c.3.5 1 .6 1.5.2h0c.3-.2.7-.3 1-.2l.8.3c.4.1.8.1 1.2 0l.5-.2c.4-.2.9-.2 1.3 0l.5.2c.4.2.8.1 1.2-.1l.2-.1c.3-.2.8-.1 1.1.1l.2.2c.3.3.8.2 1-.2l.1-.2c.1-.2 0-.3.2-.4.5 0 1.2-.3 1.1-.7l-.4-1.1'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='M43.5 12.1c-.1.2-.3.8 0 1.1.3.4 3 1.1 6.4 1.1 2.2 0 4.6-.3 6-.6.5-.1.9-.4.8-.9 0-.2-.2-.5-.4-.7'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='M43.5 13.3c0 .5.6 2.4 1.3 2.6 1.8.8 5.7.7 8.1.5 1.3-.1 2.5-.7 3.2-1.8.3-.5.5-1 .5-1.4'/%3E%3Cellipse fill='%23868686' cx='51.6' cy='6.5' rx='.3' ry='.4'/%3E%3Cellipse fill='%23868686' cx='53' cy='4.9' rx='.3' ry='.4'/%3E%3Cellipse fill='%23868686' cx='53' cy='7.2' rx='.3' ry='.4'/%3E%3Cellipse fill='%23868686' cx='54.3' cy='6.5' rx='.3' ry='.4'/%3E%3Cellipse fill='%23868686' cx='50.9' cy='4.9' rx='.3' ry='.4'/%3E%3Cpath fill='none' stroke='%23868686' d='M24.2 11V3.5c.1.1.8.9 2.8 3.1 2.5-1.7 5.6-.7 6.9 0l2.4-3.1v7.1c0 1.2-.1 2.5-.9 3.4-1 1.2-2.7 2.5-5.3 2.5-2.9 0-4.5-1.5-5.3-2.9-.6-.7-.6-1.7-.6-2.6z'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='m21.2 10 5.4 1.2m-5.4 2.9 5.4-1.2M38.8 10l-5.4 1.2m5.4 2.9-5.4-1.2'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%23868686' d='m29.5 12.4-.5-.7c-.2-.3 0-.6.3-.6h1.4c.3 0 .5.4.3.6l-.7 1c-.7 1.2-2.6 1.1-3.1-.3l-.1-.2c-.1-.2 0-.4.2-.5s.4 0 .5.2l.1.2c.4.6 1.2.8 1.6.3z'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='m32.4 12.1-.1.2c-.4 1-1.8 1.1-2.3.2'/%3E%3Ccircle fill='%23868686' cx='27.6' cy='9.7' r='.7'/%3E%3Ccircle fill='%23868686' cx='32.4' cy='9.7' r='.7'/%3E%3C/svg%3E\\\");background-position:0 0}.EmojiPickerReact.epr-dark-theme .epr-category-nav>button.epr-cat-btn{background-position-y:calc(var(--epr-category-navigation-button-size)*2)}aside.EmojiPickerReact.epr-main:has(input:-moz-placeholder-shown) .epr-category-nav{background-position-y:calc(var(--epr-category-navigation-button-size)*3)}aside.EmojiPickerReact.epr-main:has(input:placeholder-shown) .epr-category-nav{background-position-y:calc(var(--epr-category-navigation-button-size)*3)}.EmojiPickerReact.epr-dark-theme:not(.epr-search-active) .epr-category-nav>button.epr-cat-btn.epr-active,.EmojiPickerReact.epr-dark-theme:not(.epr-search-active) .epr-category-nav>button.epr-cat-btn:hover{background-position-y:calc(var(--epr-category-navigation-button-size)*3)}.EmojiPickerReact button.epr-cat-btn.epr-icn-suggested{background-position-x:calc(var(--epr-category-navigation-button-size)*-8)}.EmojiPickerReact button.epr-cat-btn.epr-icn-activities{background-position-x:calc(var(--epr-category-navigation-button-size)*-4)}.EmojiPickerReact button.epr-cat-btn.epr-icn-animals_nature{background-position-x:calc(var(--epr-category-navigation-button-size)*-1)}.EmojiPickerReact button.epr-cat-btn.epr-icn-flags{background-position-x:calc(var(--epr-category-navigation-button-size)*-7)}.EmojiPickerReact button.epr-cat-btn.epr-icn-food_drink{background-position-x:calc(var(--epr-category-navigation-button-size)*-2)}.EmojiPickerReact button.epr-cat-btn.epr-icn-objects{background-position-x:calc(var(--epr-category-navigation-button-size)*-5)}.EmojiPickerReact button.epr-cat-btn.epr-icn-smileys_people{background-position-x:0}.EmojiPickerReact button.epr-cat-btn.epr-icn-symbols{background-position-x:calc(var(--epr-category-navigation-button-size)*-6)}.EmojiPickerReact button.epr-cat-btn.epr-icn-travel_places{background-position-x:calc(var(--epr-category-navigation-button-size)*-3)}\";\nstyleInject(css_248z$8);\n\nfunction categoryNameFromDom($category) {\n var _$category$getAttribu;\n\n return (_$category$getAttribu = $category == null ? void 0 : $category.getAttribute('data-name')) != null ? _$category$getAttribu : null;\n}\n\nfunction useActiveCategoryScrollDetection(setActiveCategory) {\n var BodyRef = useBodyRef();\n useEffect(function () {\n var visibleCategories = new Map();\n var bodyRef = BodyRef.current;\n var observer = new IntersectionObserver(function (entries) {\n if (!bodyRef) {\n return;\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(entries), _step; !(_step = _iterator()).done;) {\n var entry = _step.value;\n\n var _id = categoryNameFromDom(entry.target);\n\n visibleCategories.set(_id, entry.intersectionRatio);\n }\n\n var ratios = Array.from(visibleCategories);\n var lastCategory = ratios[ratios.length - 1];\n\n if (lastCategory[1] == 1) {\n return setActiveCategory(lastCategory[0]);\n }\n\n for (var _i = 0, _ratios = ratios; _i < _ratios.length; _i++) {\n var _ratios$_i = _ratios[_i],\n id = _ratios$_i[0],\n ratio = _ratios$_i[1];\n\n if (ratio) {\n setActiveCategory(id);\n break;\n }\n }\n }, {\n threshold: [0, 1]\n });\n bodyRef == null ? void 0 : bodyRef.querySelectorAll(asSelectors(ClassNames.category)).forEach(function (el) {\n observer.observe(el);\n });\n }, [BodyRef, setActiveCategory]);\n}\n\nfunction useIsSearchMode() {\n var _useSearchTermState = useSearchTermState(),\n searchTerm = _useSearchTermState[0];\n\n return !!searchTerm;\n}\n\nfunction useScrollCategoryIntoView() {\n var BodyRef = useBodyRef();\n var PickerMainRef = usePickerMainRef();\n return function scrollCategoryIntoView(category) {\n var _BodyRef$current;\n\n if (!BodyRef.current) {\n return;\n }\n\n var $category = (_BodyRef$current = BodyRef.current) == null ? void 0 : _BodyRef$current.querySelector(\"[data-name=\\\"\" + category + \"\\\"]\");\n\n if (!$category) {\n return;\n }\n\n var offsetTop = $category.offsetTop || 0;\n scrollTo(PickerMainRef.current, offsetTop);\n };\n}\n\nfunction CategoryNavigation() {\n var _useState = useState(null),\n activeCategory = _useState[0],\n setActiveCategory = _useState[1];\n\n var scrollCategoryIntoView = useScrollCategoryIntoView();\n useActiveCategoryScrollDetection(setActiveCategory);\n var isSearchMode = useIsSearchMode();\n var categoriesConfig = useCategoriesConfig();\n var CategoryNavigationRef = useCategoryNavigationRef();\n return createElement(\"div\", {\n className: \"epr-category-nav\",\n ref: CategoryNavigationRef\n }, categoriesConfig.map(function (categoryConfig) {\n var _clsx;\n\n var category = categoryFromCategoryConfig(categoryConfig);\n return createElement(Button, {\n tabIndex: isSearchMode ? -1 : 0,\n className: clsx('epr-cat-btn', \"epr-icn-\" + category, (_clsx = {}, _clsx[ClassNames.active] = category === activeCategory, _clsx)),\n key: category,\n onClick: function onClick() {\n setActiveCategory(category);\n scrollCategoryIntoView(category);\n },\n \"aria-label\": categoryNameFromCategoryConfig(categoryConfig)\n });\n }));\n}\n\nvar css_248z$9 = \".EmojiPickerReact .epr-header .epr-header-overlay{padding:var(--epr-header-padding);z-index:var(--epr-header-overlay-z-index)}\";\nstyleInject(css_248z$9);\n\nvar css_248z$a = \".EmojiPickerReact .epr-search-container{display:block;flex:1;min-width:0}.EmojiPickerReact .epr-search-container input.epr-search{background-color:var(--epr-search-input-bg-color);border:1px solid var(--epr-search-input-bg-color);border-radius:var(--epr-search-input-border-radius);color:var(--epr-search-input-text-color);height:var(--epr-search-input-height);outline:none;padding:var(--epr-search-input-padding);transition:all .2s ease-in-out;width:100%}.EmojiPickerReact .epr-search-container button.epr-btn-clear-search .epr-icn-clear-search{background-color:transparent;background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='80' xml:space='preserve'%3E%3Cpath fill='%23868686' d='M6.98 13.59a.53.53 0 0 0 .74 0l2.42-2.42 2.43 2.43a.53.53 0 0 0 .74 0c.21-.21.21-.54 0-.75l-2.43-2.43L13.32 8c.21-.21.21-.54 0-.75a.525.525 0 0 0-.75 0l-2.42 2.42-2.41-2.4a.525.525 0 0 0-.75 0c-.21.21-.21.54 0 .75l2.41 2.41-2.42 2.42c-.21.2-.21.54 0 .74z'/%3E%3Cpath fill='%23868686' d='M10.15 18.43c4.41 0 8-3.59 8-8s-3.59-8-8-8-8 3.59-8 8 3.59 8 8 8zm0-14.94c3.83 0 6.94 3.11 6.94 6.94 0 3.83-3.11 6.94-6.94 6.94-3.83 0-6.94-3.11-6.94-6.94 0-3.83 3.12-6.94 6.94-6.94z'/%3E%3Cpath fill='%233371B7' d='M6.98 33.59a.53.53 0 0 0 .74 0l2.42-2.42 2.43 2.43a.53.53 0 0 0 .74 0c.21-.21.21-.54 0-.75l-2.43-2.43L13.32 28c.21-.21.21-.54 0-.75a.525.525 0 0 0-.75 0l-2.42 2.42-2.41-2.41a.525.525 0 0 0-.75 0c-.21.21-.21.54 0 .75l2.41 2.41-2.42 2.42c-.21.21-.21.55 0 .75z'/%3E%3Cpath fill='%233371B7' d='M10.15 38.43c4.41 0 8-3.59 8-8s-3.59-8-8-8-8 3.59-8 8 3.59 8 8 8zm0-14.94c3.83 0 6.94 3.11 6.94 6.94 0 3.83-3.11 6.94-6.94 6.94-3.83 0-6.94-3.11-6.94-6.94 0-3.83 3.12-6.94 6.94-6.94z'/%3E%3Cpath fill='%23C0C0BF' d='M6.98 53.59a.53.53 0 0 0 .74 0l2.42-2.42 2.43 2.43a.53.53 0 0 0 .74 0c.21-.21.21-.54 0-.75l-2.43-2.43L13.32 48c.21-.21.21-.54 0-.75a.525.525 0 0 0-.75 0l-2.42 2.42-2.41-2.41a.525.525 0 0 0-.75 0c-.21.21-.21.54 0 .75l2.41 2.41-2.42 2.42c-.21.21-.21.55 0 .75z'/%3E%3Cpath fill='%23C0C0BF' d='M10.15 58.43c4.41 0 8-3.59 8-8s-3.59-8-8-8-8 3.59-8 8 3.59 8 8 8zm0-14.94c3.83 0 6.94 3.11 6.94 6.94 0 3.83-3.11 6.94-6.94 6.94-3.83 0-6.94-3.11-6.94-6.94 0-3.83 3.12-6.94 6.94-6.94z'/%3E%3Cpath fill='%236AA9DD' d='M6.98 73.59a.53.53 0 0 0 .74 0l2.42-2.42 2.43 2.43a.53.53 0 0 0 .74 0c.21-.21.21-.54 0-.75l-2.43-2.43L13.32 68c.21-.21.21-.54 0-.75a.525.525 0 0 0-.75 0l-2.42 2.42-2.41-2.41a.525.525 0 0 0-.75 0c-.21.21-.21.54 0 .75l2.41 2.41-2.42 2.42c-.21.21-.21.55 0 .75z'/%3E%3Cpath fill='%236AA9DD' d='M10.15 78.43c4.41 0 8-3.59 8-8s-3.59-8-8-8-8 3.59-8 8 3.59 8 8 8zm0-14.94c3.83 0 6.94 3.11 6.94 6.94 0 3.83-3.11 6.94-6.94 6.94-3.83 0-6.94-3.11-6.94-6.94 0-3.83 3.12-6.94 6.94-6.94z'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-size:20px;height:20px;width:20px}.EmojiPickerReact .epr-search-container button.epr-btn-clear-search{align-items:center;border-radius:50%;display:flex;height:30px;justify-content:center;padding:0;position:absolute;right:var(--epr-search-bar-inner-padding);top:50%;transform:translateY(-50%);width:30px}.EmojiPickerReact .epr-search-container button.epr-btn-clear-search:focus .epr-icn-clear-search,.EmojiPickerReact .epr-search-container button.epr-btn-clear-search:hover .epr-icn-clear-search{background-position-y:-20px}.EmojiPickerReact .epr-search-container button.epr-btn-clear-search:focus,.EmojiPickerReact .epr-search-container button.epr-btn-clear-search:hover{background:var(--epr-hover-bg-color)}.EmojiPickerReact..epr-dark-theme .epr-search-container button.epr-btn-clear-search .epr-icn-clear-search{background-position-y:-40px}.EmojiPickerReact..epr-dark-theme .epr-search-container button.epr-btn-clear-search:hover .epr-icn-clear-search{background-position-y:-60px}.EmojiPickerReact .epr-search-container .epr-icn-search{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='40' xml:space='preserve'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%23868686' d='M12 8.81c0 2.08-1.68 3.76-3.76 3.76s-3.76-1.68-3.76-3.76 1.68-3.76 3.76-3.76S12 6.73 12 8.81zm-.77 3.91c-.83.64-1.87 1.01-2.99 1.01-2.72 0-4.92-2.2-4.92-4.92 0-2.72 2.2-4.92 4.92-4.92 2.72 0 4.92 2.2 4.92 4.92 0 1.13-.38 2.16-1.01 2.99l3.94 3.93c.25.25.25.66 0 .92-.25.25-.66.25-.92 0l-3.94-3.93z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%23C0C0BF' d='M12 28.81c0 2.08-1.68 3.76-3.76 3.76s-3.76-1.68-3.76-3.76 1.68-3.76 3.76-3.76S12 26.73 12 28.81zm-.77 3.91c-.83.64-1.87 1.01-2.99 1.01-2.72 0-4.92-2.2-4.92-4.92 0-2.72 2.2-4.92 4.92-4.92 2.72 0 4.92 2.2 4.92 4.92 0 1.13-.38 2.16-1.01 2.99l3.94 3.93c.25.25.25.66 0 .92-.25.25-.66.25-.92 0l-3.94-3.93z'/%3E%3C/svg%3E\\\");background-position:0 0;background-repeat:no-repeat;background-size:20px;content:\\\"\\\";height:20px;left:var(--epr-search-bar-inner-padding);position:absolute;top:50%;transform:translateY(-50%);width:20px}.EmojiPickerReact.epr-dark-theme .epr-search-container .epr-icn-search{background-position-y:-20px}.EmojiPickerReact .epr-search-container input.epr-search::-moz-placeholder{color:var(--epr-search-input-placeholder-color)}.EmojiPickerReact .epr-search-container input.epr-search::placeholder{color:var(--epr-search-input-placeholder-color)}.EmojiPickerReact .epr-search-container input.epr-search:focus{background-color:var(--epr-search-input-bg-color-active);border:1px solid var(--epr-search-border-color)}\";\nstyleInject(css_248z$a);\n\nfunction SearchContainer() {\n var searchDisabled = useSearchDisabledConfig();\n var isSkinToneInSearch = useIsSkinToneInSearch();\n\n if (searchDisabled) {\n return null;\n }\n\n return createElement(Flex, {\n className: \"epr-header-overlay\"\n }, createElement(Search, null), isSkinToneInSearch ? createElement(SkinTonePicker, null) : null);\n}\nfunction Search() {\n var _useState = useState(0),\n inc = _useState[0],\n setInc = _useState[1];\n\n var closeAllOpenToggles = useCloseAllOpenToggles();\n var SearchInputRef = useSearchInputRef();\n var clearSearch = useClearSearch();\n var placeholder = useSearchPlaceHolderConfig();\n var autoFocus = useAutoFocusSearchConfig();\n\n var _useFilter = useFilter(),\n _onChange = _useFilter.onChange;\n\n var input = SearchInputRef == null ? void 0 : SearchInputRef.current;\n var value = input == null ? void 0 : input.value;\n return createElement(Relative, {\n className: \"epr-search-container\"\n }, createElement(CssSearch, {\n value: value\n }), createElement(\"input\", {\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus: autoFocus,\n \"aria-label\": 'Type to search for an emoji',\n onFocus: closeAllOpenToggles,\n className: \"epr-search\",\n type: \"text\",\n placeholder: placeholder,\n onChange: function onChange(event) {\n setInc(inc + 1);\n setTimeout(function () {\n var _event$target$value, _event$target;\n\n _onChange((_event$target$value = event == null ? void 0 : (_event$target = event.target) == null ? void 0 : _event$target.value) != null ? _event$target$value : value);\n });\n },\n ref: SearchInputRef\n }), createElement(\"div\", {\n className: \"epr-icn-search\"\n }), createElement(Button, {\n className: clsx('epr-btn-clear-search', 'epr-visible-on-search-only'),\n onClick: clearSearch\n }, createElement(\"div\", {\n className: \"epr-icn-clear-search\"\n })));\n}\nvar CSS_SEARCH_SELECTOR = /*#__PURE__*/asSelectors(ClassNames.emojiPicker) + \" \" + /*#__PURE__*/asSelectors(ClassNames.emojiList);\n\nfunction CssSearch(_ref) {\n var value = _ref.value;\n\n if (!value) {\n return null;\n }\n\n var searchQuery = \"button[data-full-name*=\\\"\" + getNormalizedSearchTerm(value) + \"\\\"]\";\n return createElement(\"style\", null, \"\\n \" + CSS_SEARCH_SELECTOR + \" \" + asSelectors(ClassNames.category) + \":not(:has(\" + searchQuery + \")) {\\n display: none;\\n }\\n\\n \" + CSS_SEARCH_SELECTOR + \" button\" + asSelectors(ClassNames.emoji) + \":not(\" + searchQuery + \") {\\n display: none;\\n }\\n \");\n}\n\nfunction Header() {\n return createElement(Relative, {\n className: \"epr-header\"\n }, createElement(SearchContainer, null), createElement(CategoryNavigation, null));\n}\n\nfunction getActiveElement() {\n return document.activeElement;\n}\n\nvar KeyboardEvents;\n\n(function (KeyboardEvents) {\n KeyboardEvents[\"ArrowDown\"] = \"ArrowDown\";\n KeyboardEvents[\"ArrowUp\"] = \"ArrowUp\";\n KeyboardEvents[\"ArrowLeft\"] = \"ArrowLeft\";\n KeyboardEvents[\"ArrowRight\"] = \"ArrowRight\";\n KeyboardEvents[\"Escape\"] = \"Escape\";\n KeyboardEvents[\"Enter\"] = \"Enter\";\n KeyboardEvents[\"Space\"] = \" \";\n})(KeyboardEvents || (KeyboardEvents = {}));\n\nfunction useKeyboardNavigation() {\n usePickerMainKeyboardEvents();\n useSearchInputKeyboardEvents();\n useSkinTonePickerKeyboardEvents();\n useCategoryNavigationKeyboardEvents();\n useBodyKeyboardEvents();\n}\n\nfunction usePickerMainKeyboardEvents() {\n var PickerMainRef = usePickerMainRef();\n var clearSearch = useClearSearch();\n var scrollTo = useScrollTo();\n var SearchInputRef = useSearchInputRef();\n var focusSearchInput = useFocusSearchInput();\n var hasOpenToggles = useHasOpenToggles();\n var disallowMouseMove = useDisallowMouseMove();\n var closeAllOpenToggles = useCloseAllOpenToggles();\n var onKeyDown = useMemo(function () {\n return function onKeyDown(event) {\n var key = event.key;\n disallowMouseMove();\n\n switch (key) {\n // eslint-disable-next-line no-fallthrough\n case KeyboardEvents.Escape:\n event.preventDefault();\n\n if (hasOpenToggles()) {\n closeAllOpenToggles();\n return;\n }\n\n clearSearch();\n scrollTo(0);\n focusSearchInput();\n break;\n }\n };\n }, [scrollTo, clearSearch, closeAllOpenToggles, focusSearchInput, hasOpenToggles, disallowMouseMove]);\n useEffect(function () {\n var current = PickerMainRef.current;\n\n if (!current) {\n return;\n }\n\n current.addEventListener('keydown', onKeyDown);\n return function () {\n current.removeEventListener('keydown', onKeyDown);\n };\n }, [PickerMainRef, SearchInputRef, scrollTo, onKeyDown]);\n}\n\nfunction useSearchInputKeyboardEvents() {\n var focusSkinTonePicker = useFocusSkinTonePicker();\n var PickerMainRef = usePickerMainRef();\n var BodyRef = useBodyRef();\n var SearchInputRef = useSearchInputRef();\n\n var _useSkinToneFanOpenSt = useSkinToneFanOpenState(),\n setSkinToneFanOpenState = _useSkinToneFanOpenSt[1];\n\n var goDownFromSearchInput = useGoDownFromSearchInput();\n var isSkinToneInSearch = useIsSkinToneInSearch();\n var onKeyDown = useMemo(function () {\n return function onKeyDown(event) {\n var key = event.key;\n\n switch (key) {\n case KeyboardEvents.ArrowRight:\n if (!isSkinToneInSearch) {\n return;\n }\n\n event.preventDefault();\n setSkinToneFanOpenState(true);\n focusSkinTonePicker();\n break;\n\n case KeyboardEvents.ArrowDown:\n event.preventDefault();\n goDownFromSearchInput();\n break;\n\n case KeyboardEvents.Enter:\n event.preventDefault();\n focusAndClickFirstVisibleEmoji(BodyRef.current);\n break;\n }\n };\n }, [focusSkinTonePicker, goDownFromSearchInput, setSkinToneFanOpenState, BodyRef, isSkinToneInSearch]);\n useEffect(function () {\n var current = SearchInputRef.current;\n\n if (!current) {\n return;\n }\n\n current.addEventListener('keydown', onKeyDown);\n return function () {\n current.removeEventListener('keydown', onKeyDown);\n };\n }, [PickerMainRef, SearchInputRef, onKeyDown]);\n}\n\nfunction useSkinTonePickerKeyboardEvents() {\n var SkinTonePickerRef = useSkinTonePickerRef();\n var focusSearchInput = useFocusSearchInput();\n var SearchInputRef = useSearchInputRef();\n var goDownFromSearchInput = useGoDownFromSearchInput();\n\n var _useSkinToneFanOpenSt2 = useSkinToneFanOpenState(),\n isOpen = _useSkinToneFanOpenSt2[0],\n setIsOpen = _useSkinToneFanOpenSt2[1];\n\n var isSkinToneInPreview = useIsSkinToneInPreview();\n var isSkinToneInSearch = useIsSkinToneInSearch();\n var onType = useOnType();\n var onKeyDown = useMemo(function () {\n return (// eslint-disable-next-line complexity\n function onKeyDown(event) {\n var key = event.key;\n\n if (isSkinToneInSearch) {\n switch (key) {\n case KeyboardEvents.ArrowLeft:\n event.preventDefault();\n\n if (!isOpen) {\n return focusSearchInput();\n }\n\n focusNextSkinTone(focusSearchInput);\n break;\n\n case KeyboardEvents.ArrowRight:\n event.preventDefault();\n\n if (!isOpen) {\n return focusSearchInput();\n }\n\n focusPrevSkinTone();\n break;\n\n case KeyboardEvents.ArrowDown:\n event.preventDefault();\n\n if (isOpen) {\n setIsOpen(false);\n }\n\n goDownFromSearchInput();\n break;\n\n default:\n onType(event);\n break;\n }\n }\n\n if (isSkinToneInPreview) {\n switch (key) {\n case KeyboardEvents.ArrowUp:\n event.preventDefault();\n\n if (!isOpen) {\n return focusSearchInput();\n }\n\n focusNextSkinTone(focusSearchInput);\n break;\n\n case KeyboardEvents.ArrowDown:\n event.preventDefault();\n\n if (!isOpen) {\n return focusSearchInput();\n }\n\n focusPrevSkinTone();\n break;\n\n default:\n onType(event);\n break;\n }\n }\n }\n );\n }, [isOpen, focusSearchInput, setIsOpen, goDownFromSearchInput, onType, isSkinToneInPreview, isSkinToneInSearch]);\n useEffect(function () {\n var current = SkinTonePickerRef.current;\n\n if (!current) {\n return;\n }\n\n current.addEventListener('keydown', onKeyDown);\n return function () {\n current.removeEventListener('keydown', onKeyDown);\n };\n }, [SkinTonePickerRef, SearchInputRef, isOpen, onKeyDown]);\n}\n\nfunction useCategoryNavigationKeyboardEvents() {\n var focusSearchInput = useFocusSearchInput();\n var CategoryNavigationRef = useCategoryNavigationRef();\n var BodyRef = useBodyRef();\n var onType = useOnType();\n var onKeyDown = useMemo(function () {\n return function onKeyDown(event) {\n var key = event.key;\n\n switch (key) {\n case KeyboardEvents.ArrowUp:\n event.preventDefault();\n focusSearchInput();\n break;\n\n case KeyboardEvents.ArrowRight:\n event.preventDefault();\n focusNextElementSibling(getActiveElement());\n break;\n\n case KeyboardEvents.ArrowLeft:\n event.preventDefault();\n focusPrevElementSibling(getActiveElement());\n break;\n\n case KeyboardEvents.ArrowDown:\n event.preventDefault();\n focusFirstVisibleEmoji(BodyRef.current);\n break;\n\n default:\n onType(event);\n break;\n }\n };\n }, [BodyRef, focusSearchInput, onType]);\n useEffect(function () {\n var current = CategoryNavigationRef.current;\n\n if (!current) {\n return;\n }\n\n current.addEventListener('keydown', onKeyDown);\n return function () {\n current.removeEventListener('keydown', onKeyDown);\n };\n }, [CategoryNavigationRef, BodyRef, onKeyDown]);\n}\n\nfunction useBodyKeyboardEvents() {\n var BodyRef = useBodyRef();\n var goUpFromBody = useGoUpFromBody();\n var setVariationPicker = useSetVariationPicker();\n var hasOpenToggles = useHasOpenToggles();\n var closeAllOpenToggles = useCloseAllOpenToggles();\n var onType = useOnType();\n var onKeyDown = useMemo(function () {\n return (// eslint-disable-next-line complexity\n function onKeyDown(event) {\n var key = event.key;\n var activeElement = buttonFromTarget(getActiveElement());\n\n switch (key) {\n case KeyboardEvents.ArrowRight:\n event.preventDefault();\n focusNextVisibleEmoji(activeElement);\n break;\n\n case KeyboardEvents.ArrowLeft:\n event.preventDefault();\n focusPrevVisibleEmoji(activeElement);\n break;\n\n case KeyboardEvents.ArrowDown:\n event.preventDefault();\n\n if (hasOpenToggles()) {\n closeAllOpenToggles();\n break;\n }\n\n focusVisibleEmojiOneRowDown(activeElement);\n break;\n\n case KeyboardEvents.ArrowUp:\n event.preventDefault();\n\n if (hasOpenToggles()) {\n closeAllOpenToggles();\n break;\n }\n\n focusVisibleEmojiOneRowUp(activeElement, goUpFromBody);\n break;\n\n case KeyboardEvents.Space:\n event.preventDefault();\n setVariationPicker(event.target);\n break;\n\n default:\n onType(event);\n break;\n }\n }\n );\n }, [goUpFromBody, onType, setVariationPicker, hasOpenToggles, closeAllOpenToggles]);\n useEffect(function () {\n var current = BodyRef.current;\n\n if (!current) {\n return;\n }\n\n current.addEventListener('keydown', onKeyDown);\n return function () {\n current.removeEventListener('keydown', onKeyDown);\n };\n }, [BodyRef, onKeyDown]);\n}\n\nfunction useGoDownFromSearchInput() {\n var focusCategoryNavigation = useFocusCategoryNavigation();\n var isSearchMode = useIsSearchMode();\n var BodyRef = useBodyRef();\n return useCallback(function goDownFromSearchInput() {\n if (isSearchMode) {\n return focusFirstVisibleEmoji(BodyRef.current);\n }\n\n return focusCategoryNavigation();\n }, [BodyRef, focusCategoryNavigation, isSearchMode]);\n}\n\nfunction useGoUpFromBody() {\n var focusSearchInput = useFocusSearchInput();\n var focusCategoryNavigation = useFocusCategoryNavigation();\n var isSearchMode = useIsSearchMode();\n return useCallback(function goUpFromEmoji() {\n if (isSearchMode) {\n return focusSearchInput();\n }\n\n return focusCategoryNavigation();\n }, [focusSearchInput, isSearchMode, focusCategoryNavigation]);\n}\n\nfunction focusNextSkinTone(exitLeft) {\n var currentSkinTone = getActiveElement();\n\n if (!currentSkinTone) {\n return;\n }\n\n if (!hasNextElementSibling(currentSkinTone)) {\n exitLeft();\n }\n\n focusNextElementSibling(currentSkinTone);\n}\n\nfunction focusPrevSkinTone() {\n var currentSkinTone = getActiveElement();\n\n if (!currentSkinTone) {\n return;\n }\n\n focusPrevElementSibling(currentSkinTone);\n}\n\nfunction useOnType() {\n var appendSearch = useAppendSearch();\n var focusSearchInput = useFocusSearchInput();\n var searchDisabled = useSearchDisabledConfig();\n var closeAllOpenToggles = useCloseAllOpenToggles();\n return function onType(event) {\n var key = event.key;\n\n if (hasModifier(event) || searchDisabled) {\n return;\n }\n\n if (key.match(/(^[a-zA-Z0-9]$){1}/)) {\n event.preventDefault();\n closeAllOpenToggles();\n focusSearchInput();\n appendSearch(key);\n }\n };\n}\n\nfunction hasModifier(event) {\n var metaKey = event.metaKey,\n ctrlKey = event.ctrlKey,\n altKey = event.altKey;\n return metaKey || ctrlKey || altKey;\n}\n\nfunction preloadEmoji(getEmojiUrl, emoji, emojiStyle) {\n if (!emoji) {\n return;\n }\n\n if (emojiStyle === EmojiStyle.NATIVE) {\n return;\n }\n\n var unified = emojiUnified(emoji);\n\n if (preloadedEmojs.has(unified)) {\n return;\n }\n\n emojiVariations(emoji).forEach(function (variation) {\n var emojiUrl = getEmojiUrl(variation, emojiStyle);\n preloadImage(emojiUrl);\n });\n preloadedEmojs.add(unified);\n}\nvar preloadedEmojs = /*#__PURE__*/new Set();\n\nfunction preloadImage(url) {\n var image = new Image();\n image.src = url;\n}\n\nfunction useOnFocus() {\n var BodyRef = useBodyRef();\n var emojiStyle = useEmojiStyleConfig();\n var getEmojiUrl = useGetEmojiUrlConfig();\n useEffect(function () {\n if (emojiStyle === EmojiStyle.NATIVE) {\n return;\n }\n\n var bodyRef = BodyRef.current;\n bodyRef == null ? void 0 : bodyRef.addEventListener('focusin', onFocus);\n return function () {\n bodyRef == null ? void 0 : bodyRef.removeEventListener('focusin', onFocus);\n };\n\n function onFocus(event) {\n var button = buttonFromTarget(event.target);\n\n if (!button) {\n return;\n }\n\n var _emojiFromElement = emojiFromElement(button),\n emoji = _emojiFromElement[0];\n\n if (!emoji) {\n return;\n }\n\n if (emojiHasVariations(emoji)) {\n preloadEmoji(getEmojiUrl, emoji, emojiStyle);\n }\n }\n }, [BodyRef, emojiStyle, getEmojiUrl]);\n}\n\nvar css_248z$b = \"aside.EmojiPickerReact.epr-main{border-color:var(--epr-picker-border-color);border-radius:var(--epr-picker-border-radius);border-style:solid;border-width:1px;display:flex;flex-direction:column;position:relative}\";\nstyleInject(css_248z$b);\n\nfunction PickerMain(_ref) {\n var children = _ref.children;\n return createElement(PickerContextProvider, null, createElement(PickerRootElement, null, children));\n}\n\nfunction PickerRootElement(_ref2) {\n var _clsx;\n\n var children = _ref2.children;\n var theme = useThemeConfig();\n var searchModeActive = useIsSearchMode();\n var PickerMainRef = usePickerMainRef();\n\n var _usePickerSizeConfig = usePickerSizeConfig(),\n height = _usePickerSizeConfig.height,\n width = _usePickerSizeConfig.width;\n\n useKeyboardNavigation();\n useOnFocus();\n var style = {\n height: height,\n width: width\n };\n return createElement(\"aside\", {\n className: clsx(ClassNames.emojiPicker, 'epr-main', (_clsx = {}, _clsx[ClassNames.searchActive] = searchModeActive, _clsx['epr-dark-theme'] = theme === Theme.DARK, _clsx)),\n ref: PickerMainRef,\n style: style\n }, children);\n}\n\nvar css_248z$c = \".EmojiPickerReact{--epr-highlight-color:#007aeb;--epr-hover-bg-color:#f1f8ff;--epr-focus-bg-color:#e0f0ff;--epr-text-color:#858585;--epr-search-input-bg-color:#f6f6f6;--epr-picker-border-color:#e7e7e7;--epr-bg-color:#fff;--epr-category-icon-active-color:#6aa8de;--epr-skin-tone-picker-menu-color:#ffffff95;--epr-horizontal-padding:10px;--epr-picker-border-radius:8px;--epr-search-border-color:var(--epr-highlight-color);--epr-header-padding:15px var(--epr-horizontal-padding);--epr-active-skin-tone-indicator-border-color:var(--epr-highlight-color);--epr-active-skin-hover-color:var(--epr-hover-bg-color);--epr-search-input-bg-color-active:var(--epr-search-input-bg-color);--epr-search-input-padding:0 30px;--epr-search-input-border-radius:8px;--epr-search-input-height:40px;--epr-search-input-text-color:var(--epr-text-color);--epr-search-input-placeholder-color:var(--epr-text-color);--epr-search-bar-inner-padding:var(--epr-horizontal-padding);--epr-category-navigation-button-size:30px;--epr-emoji-variation-picker-height:45px;--epr-emoji-variation-picker-bg-color:var(--epr-bg-color);--epr-preview-height:70px;--epr-preview-text-size:14px;--epr-preview-text-padding:0 var(--epr-horizontal-padding);--epr-preview-border-color:var(--epr-picker-border-color);--epr-preview-text-color:var(--epr-text-color);--epr-category-padding:0 var(--epr-horizontal-padding);--epr-category-label-bg-color:#ffffffe6;--epr-category-label-text-color:var(--epr-text-color);--epr-category-label-padding:0 var(--epr-horizontal-padding);--epr-category-label-height:40px;--epr-emoji-size:30px;--epr-emoji-padding:5px;--epr-emoji-fullsize:calc(var(--epr-emoji-size) + var(--epr-emoji-padding)*2);--epr-emoji-hover-color:var(--epr-hover-bg-color);--epr-emoji-variation-indicator-color:var(--epr-picker-border-color);--epr-emoji-variation-indicator-color-hover:var(--epr-text-color);--epr-header-overlay-z-index:3;--epr-emoji-variations-indictator-z-index:1;--epr-category-label-z-index:2;--epr-skin-variation-picker-z-index:5;--epr-preview-z-index:6}.EmojiPickerReact.epr-dark-theme{--epr-dark:#000;--epr-emoji-variation-picker-bg-color:var(--epr-dark);--epr-highlight-color:silver;--epr-text-color:var(--epr-highlight-color);--epr-hover-bg-color:#363636f6;--epr-focus-bg-color:#474747;--epr-search-input-bg-color:#333;--epr-category-label-bg-color:#222222e6;--epr-picker-border-color:#151617;--epr-bg-color:#222;--epr-search-input-bg-color-active:var(--epr-dark);--epr-emoji-variation-indicator-color:#444;--epr-category-icon-active-color:#3271b7;--epr-skin-tone-picker-menu-color:#22222295}.EmojiPickerReact{background-color:var(--epr-bg-color);overflow:hidden}.EmojiPickerReact .epr-hidden,.EmojiPickerReact.epr-search-active .epr-hidden-on-search,.EmojiPickerReact:not(.epr-search-active) .epr-visible-on-search-only{display:none!important;opacity:0!important;pointer-events:none!important;visibility:hidden!important}aside.EmojiPickerReact.epr-main:has(input:not(:-moz-placeholder-shown)) .epr-hidden-on-search{display:none!important;opacity:0!important;pointer-events:none!important;visibility:hidden!important}aside.EmojiPickerReact.epr-main:has(input:not(:placeholder-shown)) .epr-hidden-on-search{display:none!important;opacity:0!important;pointer-events:none!important;visibility:hidden!important}aside.EmojiPickerReact.epr-main:has(input:-moz-placeholder-shown) .epr-visible-on-search-only{display:none!important;opacity:0!important;pointer-events:none!important;visibility:hidden!important}aside.EmojiPickerReact.epr-main:has(input:placeholder-shown) .epr-visible-on-search-only{display:none!important;opacity:0!important;pointer-events:none!important;visibility:hidden!important}.EmojiPickerReact *{box-sizing:border-box;font-family:sans-serif}.EmojiPickerReact button.epr-btn{background:none;border:0;cursor:pointer;outline:none}\";\nstyleInject(css_248z$c);\n\nfunction EmojiPicker(props) {\n return createElement(ElementRefContextProvider, null, createElement(PickerConfigProvider, Object.assign({}, props), createElement(PickerMain, null, createElement(Header, null), createElement(Body, null), createElement(Preview, null))));\n}\n\nvar ErrorBoundary = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ErrorBoundary, _React$Component);\n\n function ErrorBoundary(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n hasError: false\n };\n return _this;\n }\n\n ErrorBoundary.getDerivedStateFromError = function getDerivedStateFromError() {\n return {\n hasError: true\n };\n };\n\n var _proto = ErrorBoundary.prototype;\n\n _proto.componentDidCatch = function componentDidCatch(error, errorInfo) {\n // eslint-disable-next-line no-console\n console.error('Emoji Picker React failed to render:', error, errorInfo);\n };\n\n _proto.render = function render() {\n if (this.state.hasError) {\n return null;\n }\n\n return this.props.children;\n };\n\n return ErrorBoundary;\n}(Component);\n\nfunction ExportedEmoji(_ref) {\n var unified = _ref.unified,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 32 : _ref$size,\n _ref$emojiStyle = _ref.emojiStyle,\n emojiStyle = _ref$emojiStyle === void 0 ? EmojiStyle.APPLE : _ref$emojiStyle,\n _ref$lazyLoad = _ref.lazyLoad,\n lazyLoad = _ref$lazyLoad === void 0 ? false : _ref$lazyLoad,\n getEmojiUrl = _ref.getEmojiUrl;\n\n if (!unified) {\n return null;\n }\n\n return createElement(ViewOnlyEmoji, {\n unified: unified,\n size: size,\n emojiStyle: emojiStyle,\n lazyLoad: lazyLoad,\n getEmojiUrl: getEmojiUrl\n });\n}\n\nfunction EmojiPicker$1(props) {\n return createElement(ErrorBoundary, null, createElement(EmojiPicker, Object.assign({}, props)));\n}\n\nexport default EmojiPicker$1;\nexport { Categories, ExportedEmoji as Emoji, EmojiStyle, SkinTonePickerLocation, SkinTones, SuggestionMode, Theme };\n//# sourceMappingURL=emoji-picker-react.esm.js.map\n","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","\"use strict\";var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};Object.defineProperty(exports,\"__esModule\",{value:true});var named_references_1=require(\"./named-references\");var numeric_unicode_map_1=require(\"./numeric-unicode-map\");var surrogate_pairs_1=require(\"./surrogate-pairs\");var allNamedReferences=__assign(__assign({},named_references_1.namedReferences),{all:named_references_1.namedReferences.html5});function replaceUsingRegExp(macroText,macroRegExp,macroReplacer){macroRegExp.lastIndex=0;var replaceMatch=macroRegExp.exec(macroText);var replaceResult;if(replaceMatch){replaceResult=\"\";var replaceLastIndex=0;do{if(replaceLastIndex!==replaceMatch.index){replaceResult+=macroText.substring(replaceLastIndex,replaceMatch.index)}var replaceInput=replaceMatch[0];replaceResult+=macroReplacer(replaceInput);replaceLastIndex=replaceMatch.index+replaceInput.length}while(replaceMatch=macroRegExp.exec(macroText));if(replaceLastIndex!==macroText.length){replaceResult+=macroText.substring(replaceLastIndex)}}else{replaceResult=macroText}return replaceResult}var encodeRegExps={specialChars:/[<>'\"&]/g,nonAscii:/[<>'\"&\\u0080-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/g,nonAsciiPrintable:/[<>'\"&\\x01-\\x08\\x11-\\x15\\x17-\\x1F\\x7f-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/g,nonAsciiPrintableOnly:/[\\x01-\\x08\\x11-\\x15\\x17-\\x1F\\x7f-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/g,extensive:/[\\x01-\\x0c\\x0e-\\x1f\\x21-\\x2c\\x2e-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7d\\x7f-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/g};var defaultEncodeOptions={mode:\"specialChars\",level:\"all\",numeric:\"decimal\"};function encode(text,_a){var _b=_a===void 0?defaultEncodeOptions:_a,_c=_b.mode,mode=_c===void 0?\"specialChars\":_c,_d=_b.numeric,numeric=_d===void 0?\"decimal\":_d,_e=_b.level,level=_e===void 0?\"all\":_e;if(!text){return\"\"}var encodeRegExp=encodeRegExps[mode];var references=allNamedReferences[level].characters;var isHex=numeric===\"hexadecimal\";return replaceUsingRegExp(text,encodeRegExp,(function(input){var result=references[input];if(!result){var code=input.length>1?surrogate_pairs_1.getCodePoint(input,0):input.charCodeAt(0);result=(isHex?\"&#x\"+code.toString(16):\"&#\"+code)+\";\"}return result}))}exports.encode=encode;var defaultDecodeOptions={scope:\"body\",level:\"all\"};var strict=/&(?:#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);/g;var attribute=/&(?:#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g;var baseDecodeRegExps={xml:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.xml},html4:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.html4},html5:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.html5}};var decodeRegExps=__assign(__assign({},baseDecodeRegExps),{all:baseDecodeRegExps.html5});var fromCharCode=String.fromCharCode;var outOfBoundsChar=fromCharCode(65533);var defaultDecodeEntityOptions={level:\"all\"};function getDecodedEntity(entity,references,isAttribute,isStrict){var decodeResult=entity;var decodeEntityLastChar=entity[entity.length-1];if(isAttribute&&decodeEntityLastChar===\"=\"){decodeResult=entity}else if(isStrict&&decodeEntityLastChar!==\";\"){decodeResult=entity}else{var decodeResultByReference=references[entity];if(decodeResultByReference){decodeResult=decodeResultByReference}else if(entity[0]===\"&\"&&entity[1]===\"#\"){var decodeSecondChar=entity[2];var decodeCode=decodeSecondChar==\"x\"||decodeSecondChar==\"X\"?parseInt(entity.substr(3),16):parseInt(entity.substr(2));decodeResult=decodeCode>=1114111?outOfBoundsChar:decodeCode>65535?surrogate_pairs_1.fromCodePoint(decodeCode):fromCharCode(numeric_unicode_map_1.numericUnicodeMap[decodeCode]||decodeCode)}}return decodeResult}function decodeEntity(entity,_a){var _b=(_a===void 0?defaultDecodeEntityOptions:_a).level,level=_b===void 0?\"all\":_b;if(!entity){return\"\"}return getDecodedEntity(entity,allNamedReferences[level].entities,false,false)}exports.decodeEntity=decodeEntity;function decode(text,_a){var _b=_a===void 0?defaultDecodeOptions:_a,_c=_b.level,level=_c===void 0?\"all\":_c,_d=_b.scope,scope=_d===void 0?level===\"xml\"?\"strict\":\"body\":_d;if(!text){return\"\"}var decodeRegExp=decodeRegExps[level][scope];var references=allNamedReferences[level].entities;var isAttribute=scope===\"attribute\";var isStrict=scope===\"strict\";return replaceUsingRegExp(text,decodeRegExp,(function(entity){return getDecodedEntity(entity,references,isAttribute,isStrict)}))}exports.decode=decode;\n//# sourceMappingURL=./index.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.bodyRegExps={xml:/&(?:#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g,html4:/∉|&(?:nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|quot|amp|lt|gt|#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g,html5:/·|℗|⋇|⪧|⩺|⋗|⦕|⩼|⪆|⥸|⋗|⋛|⪌|≷|≳|⪦|⩹|⋖|⋋|⋉|⥶|⩻|⦖|◃|⊴|◂|∉|⋹̸|⋵̸|∉|⋷|⋶|∌|∌|⋾|⋽|∥|⊠|⨱|⨰|&(?:AElig|AMP|Aacute|Acirc|Agrave|Aring|Atilde|Auml|COPY|Ccedil|ETH|Eacute|Ecirc|Egrave|Euml|GT|Iacute|Icirc|Igrave|Iuml|LT|Ntilde|Oacute|Ocirc|Ograve|Oslash|Otilde|Ouml|QUOT|REG|THORN|Uacute|Ucirc|Ugrave|Uuml|Yacute|aacute|acirc|acute|aelig|agrave|amp|aring|atilde|auml|brvbar|ccedil|cedil|cent|copy|curren|deg|divide|eacute|ecirc|egrave|eth|euml|frac12|frac14|frac34|gt|iacute|icirc|iexcl|igrave|iquest|iuml|laquo|lt|macr|micro|middot|nbsp|not|ntilde|oacute|ocirc|ograve|ordf|ordm|oslash|otilde|ouml|para|plusmn|pound|quot|raquo|reg|sect|shy|sup1|sup2|sup3|szlig|thorn|times|uacute|ucirc|ugrave|uml|uuml|yacute|yen|yuml|#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g};exports.namedReferences={xml:{entities:{\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\",\"&\":\"&\"},characters:{\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\",\"&\":\"&\"}},html4:{entities:{\"'\":\"'\",\" \":\" \",\" \":\" \",\"¡\":\"¡\",\"¡\":\"¡\",\"¢\":\"¢\",\"¢\":\"¢\",\"£\":\"£\",\"£\":\"£\",\"¤\":\"¤\",\"¤\":\"¤\",\"¥\":\"Â¥\",\"¥\":\"Â¥\",\"¦\":\"¦\",\"¦\":\"¦\",\"§\":\"§\",\"§\":\"§\",\"¨\":\"¨\",\"¨\":\"¨\",\"©\":\"©\",\"©\":\"©\",\"ª\":\"ª\",\"ª\":\"ª\",\"«\":\"«\",\"«\":\"«\",\"¬\":\"¬\",\"¬\":\"¬\",\"­\":\"Â\",\"­\":\"Â\",\"®\":\"®\",\"®\":\"®\",\"¯\":\"¯\",\"¯\":\"¯\",\"°\":\"°\",\"°\":\"°\",\"±\":\"±\",\"±\":\"±\",\"²\":\"²\",\"²\":\"²\",\"³\":\"³\",\"³\":\"³\",\"´\":\"´\",\"´\":\"´\",\"µ\":\"µ\",\"µ\":\"µ\",\"¶\":\"¶\",\"¶\":\"¶\",\"·\":\"·\",\"·\":\"·\",\"¸\":\"¸\",\"¸\":\"¸\",\"¹\":\"¹\",\"¹\":\"¹\",\"º\":\"º\",\"º\":\"º\",\"»\":\"»\",\"»\":\"»\",\"¼\":\"¼\",\"¼\":\"¼\",\"½\":\"½\",\"½\":\"½\",\"¾\":\"¾\",\"¾\":\"¾\",\"¿\":\"¿\",\"¿\":\"¿\",\"À\":\"À\",\"À\":\"À\",\"Á\":\"Ã\",\"Á\":\"Ã\",\"Â\":\"Â\",\"Â\":\"Â\",\"Ã\":\"Ã\",\"Ã\":\"Ã\",\"Ä\":\"Ä\",\"Ä\":\"Ä\",\"Å\":\"Ã…\",\"Å\":\"Ã…\",\"Æ\":\"Æ\",\"Æ\":\"Æ\",\"Ç\":\"Ç\",\"Ç\":\"Ç\",\"È\":\"È\",\"È\":\"È\",\"É\":\"É\",\"É\":\"É\",\"Ê\":\"Ê\",\"Ê\":\"Ê\",\"Ë\":\"Ë\",\"Ë\":\"Ë\",\"Ì\":\"ÃŒ\",\"Ì\":\"ÃŒ\",\"Í\":\"Ã\",\"Í\":\"Ã\",\"Î\":\"ÃŽ\",\"Î\":\"ÃŽ\",\"Ï\":\"Ã\",\"Ï\":\"Ã\",\"Ð\":\"Ã\",\"Ð\":\"Ã\",\"Ñ\":\"Ñ\",\"Ñ\":\"Ñ\",\"Ò\":\"Ã’\",\"Ò\":\"Ã’\",\"Ó\":\"Ó\",\"Ó\":\"Ó\",\"Ô\":\"Ô\",\"Ô\":\"Ô\",\"Õ\":\"Õ\",\"Õ\":\"Õ\",\"Ö\":\"Ö\",\"Ö\":\"Ö\",\"×\":\"×\",\"×\":\"×\",\"Ø\":\"Ø\",\"Ø\":\"Ø\",\"Ù\":\"Ù\",\"Ù\":\"Ù\",\"Ú\":\"Ú\",\"Ú\":\"Ú\",\"Û\":\"Û\",\"Û\":\"Û\",\"Ü\":\"Ãœ\",\"Ü\":\"Ãœ\",\"Ý\":\"Ã\",\"Ý\":\"Ã\",\"Þ\":\"Þ\",\"Þ\":\"Þ\",\"ß\":\"ß\",\"ß\":\"ß\",\"à\":\"à \",\"à\":\"à \",\"á\":\"á\",\"á\":\"á\",\"â\":\"â\",\"â\":\"â\",\"ã\":\"ã\",\"ã\":\"ã\",\"ä\":\"ä\",\"ä\":\"ä\",\"å\":\"Ã¥\",\"å\":\"Ã¥\",\"æ\":\"æ\",\"æ\":\"æ\",\"ç\":\"ç\",\"ç\":\"ç\",\"è\":\"è\",\"è\":\"è\",\"é\":\"é\",\"é\":\"é\",\"ê\":\"ê\",\"ê\":\"ê\",\"ë\":\"ë\",\"ë\":\"ë\",\"ì\":\"ì\",\"ì\":\"ì\",\"í\":\"Ã\",\"í\":\"Ã\",\"î\":\"î\",\"î\":\"î\",\"ï\":\"ï\",\"ï\":\"ï\",\"ð\":\"ð\",\"ð\":\"ð\",\"ñ\":\"ñ\",\"ñ\":\"ñ\",\"ò\":\"ò\",\"ò\":\"ò\",\"ó\":\"ó\",\"ó\":\"ó\",\"ô\":\"ô\",\"ô\":\"ô\",\"õ\":\"õ\",\"õ\":\"õ\",\"ö\":\"ö\",\"ö\":\"ö\",\"÷\":\"÷\",\"÷\":\"÷\",\"ø\":\"ø\",\"ø\":\"ø\",\"ù\":\"ù\",\"ù\":\"ù\",\"ú\":\"ú\",\"ú\":\"ú\",\"û\":\"û\",\"û\":\"û\",\"ü\":\"ü\",\"ü\":\"ü\",\"ý\":\"ý\",\"ý\":\"ý\",\"þ\":\"þ\",\"þ\":\"þ\",\"ÿ\":\"ÿ\",\"ÿ\":\"ÿ\",\""\":'\"',\""\":'\"',\"&\":\"&\",\"&\":\"&\",\"<\":\"<\",\"<\":\"<\",\">\":\">\",\">\":\">\",\"Œ\":\"Å’\",\"œ\":\"Å“\",\"Š\":\"Å \",\"š\":\"Å¡\",\"Ÿ\":\"Ÿ\",\"ˆ\":\"ˆ\",\"˜\":\"Ëœ\",\" \":\" \",\" \":\" \",\" \":\" \",\"‌\":\"‌\",\"‍\":\"â€\",\"‎\":\"‎\",\"‏\":\"â€\",\"–\":\"–\",\"—\":\"—\",\"‘\":\"‘\",\"’\":\"’\",\"‚\":\"‚\",\"“\":\"“\",\"”\":\"â€\",\"„\":\"„\",\"†\":\"†\",\"‡\":\"‡\",\"‰\":\"‰\",\"‹\":\"‹\",\"›\":\"›\",\"€\":\"€\",\"ƒ\":\"Æ’\",\"Α\":\"Α\",\"Β\":\"Î’\",\"Γ\":\"Γ\",\"Δ\":\"Δ\",\"Ε\":\"Ε\",\"Ζ\":\"Ζ\",\"Η\":\"Η\",\"Θ\":\"Θ\",\"Ι\":\"Ι\",\"Κ\":\"Κ\",\"Λ\":\"Λ\",\"Μ\":\"Îœ\",\"Ν\":\"Î\",\"Ξ\":\"Ξ\",\"Ο\":\"Ο\",\"Π\":\"Î \",\"Ρ\":\"Ρ\",\"Σ\":\"Σ\",\"Τ\":\"Τ\",\"Υ\":\"Î¥\",\"Φ\":\"Φ\",\"Χ\":\"Χ\",\"Ψ\":\"Ψ\",\"Ω\":\"Ω\",\"α\":\"α\",\"β\":\"β\",\"γ\":\"γ\",\"δ\":\"δ\",\"ε\":\"ε\",\"ζ\":\"ζ\",\"η\":\"η\",\"θ\":\"θ\",\"ι\":\"ι\",\"κ\":\"κ\",\"λ\":\"λ\",\"μ\":\"μ\",\"ν\":\"ν\",\"ξ\":\"ξ\",\"ο\":\"ο\",\"π\":\"Ï€\",\"ρ\":\"Ï\",\"ς\":\"Ï‚\",\"σ\":\"σ\",\"τ\":\"Ï„\",\"υ\":\"Ï…\",\"φ\":\"φ\",\"χ\":\"χ\",\"ψ\":\"ψ\",\"ω\":\"ω\",\"ϑ\":\"Ï‘\",\"ϒ\":\"Ï’\",\"ϖ\":\"Ï–\",\"•\":\"•\",\"…\":\"…\",\"′\":\"′\",\"″\":\"″\",\"‾\":\"‾\",\"⁄\":\"â„\",\"℘\":\"℘\",\"ℑ\":\"â„‘\",\"ℜ\":\"â„œ\",\"™\":\"â„¢\",\"ℵ\":\"ℵ\",\"←\":\"â†\",\"↑\":\"↑\",\"→\":\"→\",\"↓\":\"↓\",\"↔\":\"↔\",\"↵\":\"↵\",\"⇐\":\"â‡\",\"⇑\":\"⇑\",\"⇒\":\"⇒\",\"⇓\":\"⇓\",\"⇔\":\"⇔\",\"∀\":\"∀\",\"∂\":\"∂\",\"∃\":\"∃\",\"∅\":\"∅\",\"∇\":\"∇\",\"∈\":\"∈\",\"∉\":\"∉\",\"∋\":\"∋\",\"∏\":\"âˆ\",\"∑\":\"∑\",\"−\":\"−\",\"∗\":\"∗\",\"√\":\"√\",\"∝\":\"âˆ\",\"∞\":\"∞\",\"∠\":\"∠\",\"∧\":\"∧\",\"∨\":\"∨\",\"∩\":\"∩\",\"∪\":\"∪\",\"∫\":\"∫\",\"∴\":\"∴\",\"∼\":\"∼\",\"≅\":\"≅\",\"≈\":\"≈\",\"≠\":\"≠\",\"≡\":\"≡\",\"≤\":\"≤\",\"≥\":\"≥\",\"⊂\":\"⊂\",\"⊃\":\"⊃\",\"⊄\":\"⊄\",\"⊆\":\"⊆\",\"⊇\":\"⊇\",\"⊕\":\"⊕\",\"⊗\":\"⊗\",\"⊥\":\"⊥\",\"⋅\":\"â‹…\",\"⌈\":\"⌈\",\"⌉\":\"⌉\",\"⌊\":\"⌊\",\"⌋\":\"⌋\",\"⟨\":\"〈\",\"⟩\":\"〉\",\"◊\":\"â—Š\",\"♠\":\"â™ \",\"♣\":\"♣\",\"♥\":\"♥\",\"♦\":\"♦\"},characters:{\"'\":\"'\",\" \":\" \",\"¡\":\"¡\",\"¢\":\"¢\",\"£\":\"£\",\"¤\":\"¤\",\"Â¥\":\"¥\",\"¦\":\"¦\",\"§\":\"§\",\"¨\":\"¨\",\"©\":\"©\",\"ª\":\"ª\",\"«\":\"«\",\"¬\":\"¬\",\"Â\":\"­\",\"®\":\"®\",\"¯\":\"¯\",\"°\":\"°\",\"±\":\"±\",\"²\":\"²\",\"³\":\"³\",\"´\":\"´\",\"µ\":\"µ\",\"¶\":\"¶\",\"·\":\"·\",\"¸\":\"¸\",\"¹\":\"¹\",\"º\":\"º\",\"»\":\"»\",\"¼\":\"¼\",\"½\":\"½\",\"¾\":\"¾\",\"¿\":\"¿\",\"À\":\"À\",\"Ã\":\"Á\",\"Â\":\"Â\",\"Ã\":\"Ã\",\"Ä\":\"Ä\",\"Ã…\":\"Å\",\"Æ\":\"Æ\",\"Ç\":\"Ç\",\"È\":\"È\",\"É\":\"É\",\"Ê\":\"Ê\",\"Ë\":\"Ë\",\"ÃŒ\":\"Ì\",\"Ã\":\"Í\",\"ÃŽ\":\"Î\",\"Ã\":\"Ï\",\"Ã\":\"Ð\",\"Ñ\":\"Ñ\",\"Ã’\":\"Ò\",\"Ó\":\"Ó\",\"Ô\":\"Ô\",\"Õ\":\"Õ\",\"Ö\":\"Ö\",\"×\":\"×\",\"Ø\":\"Ø\",\"Ù\":\"Ù\",\"Ú\":\"Ú\",\"Û\":\"Û\",\"Ãœ\":\"Ü\",\"Ã\":\"Ý\",\"Þ\":\"Þ\",\"ß\":\"ß\",\"à \":\"à\",\"á\":\"á\",\"â\":\"â\",\"ã\":\"ã\",\"ä\":\"ä\",\"Ã¥\":\"å\",\"æ\":\"æ\",\"ç\":\"ç\",\"è\":\"è\",\"é\":\"é\",\"ê\":\"ê\",\"ë\":\"ë\",\"ì\":\"ì\",\"Ã\":\"í\",\"î\":\"î\",\"ï\":\"ï\",\"ð\":\"ð\",\"ñ\":\"ñ\",\"ò\":\"ò\",\"ó\":\"ó\",\"ô\":\"ô\",\"õ\":\"õ\",\"ö\":\"ö\",\"÷\":\"÷\",\"ø\":\"ø\",\"ù\":\"ù\",\"ú\":\"ú\",\"û\":\"û\",\"ü\":\"ü\",\"ý\":\"ý\",\"þ\":\"þ\",\"ÿ\":\"ÿ\",'\"':\""\",\"&\":\"&\",\"<\":\"<\",\">\":\">\",\"Å’\":\"Œ\",\"Å“\":\"œ\",\"Å \":\"Š\",\"Å¡\":\"š\",\"Ÿ\":\"Ÿ\",\"ˆ\":\"ˆ\",\"Ëœ\":\"˜\",\" \":\" \",\" \":\" \",\" \":\" \",\"‌\":\"‌\",\"â€\":\"‍\",\"‎\":\"‎\",\"â€\":\"‏\",\"–\":\"–\",\"—\":\"—\",\"‘\":\"‘\",\"’\":\"’\",\"‚\":\"‚\",\"“\":\"“\",\"â€\":\"”\",\"„\":\"„\",\"†\":\"†\",\"‡\":\"‡\",\"‰\":\"‰\",\"‹\":\"‹\",\"›\":\"›\",\"€\":\"€\",\"Æ’\":\"ƒ\",\"Α\":\"Α\",\"Î’\":\"Β\",\"Γ\":\"Γ\",\"Δ\":\"Δ\",\"Ε\":\"Ε\",\"Ζ\":\"Ζ\",\"Η\":\"Η\",\"Θ\":\"Θ\",\"Ι\":\"Ι\",\"Κ\":\"Κ\",\"Λ\":\"Λ\",\"Îœ\":\"Μ\",\"Î\":\"Ν\",\"Ξ\":\"Ξ\",\"Ο\":\"Ο\",\"Î \":\"Π\",\"Ρ\":\"Ρ\",\"Σ\":\"Σ\",\"Τ\":\"Τ\",\"Î¥\":\"Υ\",\"Φ\":\"Φ\",\"Χ\":\"Χ\",\"Ψ\":\"Ψ\",\"Ω\":\"Ω\",\"α\":\"α\",\"β\":\"β\",\"γ\":\"γ\",\"δ\":\"δ\",\"ε\":\"ε\",\"ζ\":\"ζ\",\"η\":\"η\",\"θ\":\"θ\",\"ι\":\"ι\",\"κ\":\"κ\",\"λ\":\"λ\",\"μ\":\"μ\",\"ν\":\"ν\",\"ξ\":\"ξ\",\"ο\":\"ο\",\"Ï€\":\"π\",\"Ï\":\"ρ\",\"Ï‚\":\"ς\",\"σ\":\"σ\",\"Ï„\":\"τ\",\"Ï…\":\"υ\",\"φ\":\"φ\",\"χ\":\"χ\",\"ψ\":\"ψ\",\"ω\":\"ω\",\"Ï‘\":\"ϑ\",\"Ï’\":\"ϒ\",\"Ï–\":\"ϖ\",\"•\":\"•\",\"…\":\"…\",\"′\":\"′\",\"″\":\"″\",\"‾\":\"‾\",\"â„\":\"⁄\",\"℘\":\"℘\",\"â„‘\":\"ℑ\",\"â„œ\":\"ℜ\",\"â„¢\":\"™\",\"ℵ\":\"ℵ\",\"â†\":\"←\",\"↑\":\"↑\",\"→\":\"→\",\"↓\":\"↓\",\"↔\":\"↔\",\"↵\":\"↵\",\"â‡\":\"⇐\",\"⇑\":\"⇑\",\"⇒\":\"⇒\",\"⇓\":\"⇓\",\"⇔\":\"⇔\",\"∀\":\"∀\",\"∂\":\"∂\",\"∃\":\"∃\",\"∅\":\"∅\",\"∇\":\"∇\",\"∈\":\"∈\",\"∉\":\"∉\",\"∋\":\"∋\",\"âˆ\":\"∏\",\"∑\":\"∑\",\"−\":\"−\",\"∗\":\"∗\",\"√\":\"√\",\"âˆ\":\"∝\",\"∞\":\"∞\",\"∠\":\"∠\",\"∧\":\"∧\",\"∨\":\"∨\",\"∩\":\"∩\",\"∪\":\"∪\",\"∫\":\"∫\",\"∴\":\"∴\",\"∼\":\"∼\",\"≅\":\"≅\",\"≈\":\"≈\",\"≠\":\"≠\",\"≡\":\"≡\",\"≤\":\"≤\",\"≥\":\"≥\",\"⊂\":\"⊂\",\"⊃\":\"⊃\",\"⊄\":\"⊄\",\"⊆\":\"⊆\",\"⊇\":\"⊇\",\"⊕\":\"⊕\",\"⊗\":\"⊗\",\"⊥\":\"⊥\",\"â‹…\":\"⋅\",\"⌈\":\"⌈\",\"⌉\":\"⌉\",\"⌊\":\"⌊\",\"⌋\":\"⌋\",\"〈\":\"⟨\",\"〉\":\"⟩\",\"â—Š\":\"◊\",\"â™ \":\"♠\",\"♣\":\"♣\",\"♥\":\"♥\",\"♦\":\"♦\"}},html5:{entities:{\"Æ\":\"Æ\",\"Æ\":\"Æ\",\"&\":\"&\",\"&\":\"&\",\"Á\":\"Ã\",\"Á\":\"Ã\",\"Ă\":\"Ä‚\",\"Â\":\"Â\",\"Â\":\"Â\",\"А\":\"Ð\",\"𝔄\":\"ð”„\",\"À\":\"À\",\"À\":\"À\",\"Α\":\"Α\",\"Ā\":\"Ä€\",\"⩓\":\"â©“\",\"Ą\":\"Ä„\",\"𝔸\":\"ð”¸\",\"⁡\":\"â¡\",\"Å\":\"Ã…\",\"Å\":\"Ã…\",\"𝒜\":\"ð’œ\",\"≔\":\"≔\",\"Ã\":\"Ã\",\"Ã\":\"Ã\",\"Ä\":\"Ä\",\"Ä\":\"Ä\",\"∖\":\"∖\",\"⫧\":\"⫧\",\"⌆\":\"⌆\",\"Б\":\"Б\",\"∵\":\"∵\",\"ℬ\":\"ℬ\",\"Β\":\"Î’\",\"𝔅\":\"ð”…\",\"𝔹\":\"ð”¹\",\"˘\":\"˘\",\"ℬ\":\"ℬ\",\"≎\":\"≎\",\"Ч\":\"Ч\",\"©\":\"©\",\"©\":\"©\",\"Ć\":\"Ć\",\"⋒\":\"â‹’\",\"ⅅ\":\"â……\",\"ℭ\":\"â„\",\"Č\":\"ÄŒ\",\"Ç\":\"Ç\",\"Ç\":\"Ç\",\"Ĉ\":\"Ĉ\",\"∰\":\"∰\",\"Ċ\":\"ÄŠ\",\"¸\":\"¸\",\"·\":\"·\",\"ℭ\":\"â„\",\"Χ\":\"Χ\",\"⊙\":\"⊙\",\"⊖\":\"⊖\",\"⊕\":\"⊕\",\"⊗\":\"⊗\",\"∲\":\"∲\",\"”\":\"â€\",\"’\":\"’\",\"∷\":\"∷\",\"⩴\":\"â©´\",\"≡\":\"≡\",\"∯\":\"∯\",\"∮\":\"∮\",\"ℂ\":\"â„‚\",\"∐\":\"âˆ\",\"∳\":\"∳\",\"⨯\":\"⨯\",\"𝒞\":\"ð’ž\",\"⋓\":\"â‹“\",\"≍\":\"â‰\",\"ⅅ\":\"â……\",\"⤑\":\"⤑\",\"Ђ\":\"Ђ\",\"Ѕ\":\"Ð…\",\"Џ\":\"Ð\",\"‡\":\"‡\",\"↡\":\"↡\",\"⫤\":\"⫤\",\"Ď\":\"ÄŽ\",\"Д\":\"Д\",\"∇\":\"∇\",\"Δ\":\"Δ\",\"𝔇\":\"ð”‡\",\"´\":\"´\",\"˙\":\"Ë™\",\"˝\":\"Ë\",\"`\":\"`\",\"˜\":\"Ëœ\",\"⋄\":\"â‹„\",\"ⅆ\":\"â…†\",\"𝔻\":\"ð”»\",\"¨\":\"¨\",\"⃜\":\"⃜\",\"≐\":\"â‰\",\"∯\":\"∯\",\"¨\":\"¨\",\"⇓\":\"⇓\",\"⇐\":\"â‡\",\"⇔\":\"⇔\",\"⫤\":\"⫤\",\"⟸\":\"⟸\",\"⟺\":\"⟺\",\"⟹\":\"⟹\",\"⇒\":\"⇒\",\"⊨\":\"⊨\",\"⇑\":\"⇑\",\"⇕\":\"⇕\",\"∥\":\"∥\",\"↓\":\"↓\",\"⤓\":\"⤓\",\"⇵\":\"⇵\",\"̑\":\"Ì‘\",\"⥐\":\"â¥\",\"⥞\":\"⥞\",\"↽\":\"↽\",\"⥖\":\"⥖\",\"⥟\":\"⥟\",\"⇁\":\"â‡\",\"⥗\":\"⥗\",\"⊤\":\"⊤\",\"↧\":\"↧\",\"⇓\":\"⇓\",\"𝒟\":\"ð’Ÿ\",\"Đ\":\"Ä\",\"Ŋ\":\"ÅŠ\",\"Ð\":\"Ã\",\"Ð\":\"Ã\",\"É\":\"É\",\"É\":\"É\",\"Ě\":\"Äš\",\"Ê\":\"Ê\",\"Ê\":\"Ê\",\"Э\":\"Ð\",\"Ė\":\"Ä–\",\"𝔈\":\"ð”ˆ\",\"È\":\"È\",\"È\":\"È\",\"∈\":\"∈\",\"Ē\":\"Ä’\",\"◻\":\"â—»\",\"▫\":\"â–«\",\"Ę\":\"Ę\",\"𝔼\":\"ð”¼\",\"Ε\":\"Ε\",\"⩵\":\"⩵\",\"≂\":\"≂\",\"⇌\":\"⇌\",\"ℰ\":\"â„°\",\"⩳\":\"⩳\",\"Η\":\"Η\",\"Ë\":\"Ë\",\"Ë\":\"Ë\",\"∃\":\"∃\",\"ⅇ\":\"â…‡\",\"Ф\":\"Ф\",\"𝔉\":\"ð”‰\",\"◼\":\"â—¼\",\"▪\":\"â–ª\",\"𝔽\":\"ð”½\",\"∀\":\"∀\",\"ℱ\":\"ℱ\",\"ℱ\":\"ℱ\",\"Ѓ\":\"Ѓ\",\">\":\">\",\">\":\">\",\"Γ\":\"Γ\",\"Ϝ\":\"Ïœ\",\"Ğ\":\"Äž\",\"Ģ\":\"Ä¢\",\"Ĝ\":\"Äœ\",\"Г\":\"Г\",\"Ġ\":\"Ä \",\"𝔊\":\"ð”Š\",\"⋙\":\"â‹™\",\"𝔾\":\"ð”¾\",\"≥\":\"≥\",\"⋛\":\"â‹›\",\"≧\":\"≧\",\"⪢\":\"⪢\",\"≷\":\"≷\",\"⩾\":\"⩾\",\"≳\":\"≳\",\"𝒢\":\"ð’¢\",\"≫\":\"≫\",\"Ъ\":\"Ъ\",\"ˇ\":\"ˇ\",\"^\":\"^\",\"Ĥ\":\"Ĥ\",\"ℌ\":\"â„Œ\",\"ℋ\":\"â„‹\",\"ℍ\":\"â„\",\"─\":\"─\",\"ℋ\":\"â„‹\",\"Ħ\":\"Ħ\",\"≎\":\"≎\",\"≏\":\"â‰\",\"Е\":\"Е\",\"IJ\":\"IJ\",\"Ё\":\"Ð\",\"Í\":\"Ã\",\"Í\":\"Ã\",\"Î\":\"ÃŽ\",\"Î\":\"ÃŽ\",\"И\":\"И\",\"İ\":\"Ä°\",\"ℑ\":\"â„‘\",\"Ì\":\"ÃŒ\",\"Ì\":\"ÃŒ\",\"ℑ\":\"â„‘\",\"Ī\":\"Ī\",\"ⅈ\":\"â…ˆ\",\"⇒\":\"⇒\",\"∬\":\"∬\",\"∫\":\"∫\",\"⋂\":\"â‹‚\",\"⁣\":\"â£\",\"⁢\":\"â¢\",\"Į\":\"Ä®\",\"𝕀\":\"ð•€\",\"Ι\":\"Ι\",\"ℐ\":\"â„\",\"Ĩ\":\"Ĩ\",\"І\":\"І\",\"Ï\":\"Ã\",\"Ï\":\"Ã\",\"Ĵ\":\"Ä´\",\"Й\":\"Й\",\"𝔍\":\"ð”\",\"𝕁\":\"ð•\",\"𝒥\":\"ð’¥\",\"Ј\":\"Ј\",\"Є\":\"Є\",\"Х\":\"Ð¥\",\"Ќ\":\"ÐŒ\",\"Κ\":\"Κ\",\"Ķ\":\"Ķ\",\"К\":\"К\",\"𝔎\":\"ð”Ž\",\"𝕂\":\"ð•‚\",\"𝒦\":\"ð’¦\",\"Љ\":\"Љ\",\"<\":\"<\",\"<\":\"<\",\"Ĺ\":\"Ĺ\",\"Λ\":\"Λ\",\"⟪\":\"⟪\",\"ℒ\":\"â„’\",\"↞\":\"↞\",\"Ľ\":\"Ľ\",\"Ļ\":\"Ä»\",\"Л\":\"Л\",\"⟨\":\"⟨\",\"←\":\"â†\",\"⇤\":\"⇤\",\"⇆\":\"⇆\",\"⌈\":\"⌈\",\"⟦\":\"⟦\",\"⥡\":\"⥡\",\"⇃\":\"⇃\",\"⥙\":\"⥙\",\"⌊\":\"⌊\",\"↔\":\"↔\",\"⥎\":\"⥎\",\"⊣\":\"⊣\",\"↤\":\"↤\",\"⥚\":\"⥚\",\"⊲\":\"⊲\",\"⧏\":\"â§\",\"⊴\":\"⊴\",\"⥑\":\"⥑\",\"⥠\":\"⥠\",\"↿\":\"↿\",\"⥘\":\"⥘\",\"↼\":\"↼\",\"⥒\":\"⥒\",\"⇐\":\"â‡\",\"⇔\":\"⇔\",\"⋚\":\"â‹š\",\"≦\":\"≦\",\"≶\":\"≶\",\"⪡\":\"⪡\",\"⩽\":\"⩽\",\"≲\":\"≲\",\"𝔏\":\"ð”\",\"⋘\":\"⋘\",\"⇚\":\"⇚\",\"Ŀ\":\"Ä¿\",\"⟵\":\"⟵\",\"⟷\":\"⟷\",\"⟶\":\"⟶\",\"⟸\":\"⟸\",\"⟺\":\"⟺\",\"⟹\":\"⟹\",\"𝕃\":\"ð•ƒ\",\"↙\":\"↙\",\"↘\":\"↘\",\"ℒ\":\"â„’\",\"↰\":\"↰\",\"Ł\":\"Å\",\"≪\":\"≪\",\"⤅\":\"⤅\",\"М\":\"Ðœ\",\" \":\"âŸ\",\"ℳ\":\"ℳ\",\"𝔐\":\"ð”\",\"∓\":\"∓\",\"𝕄\":\"ð•„\",\"ℳ\":\"ℳ\",\"Μ\":\"Îœ\",\"Њ\":\"Њ\",\"Ń\":\"Ń\",\"Ň\":\"Ň\",\"Ņ\":\"Å…\",\"Н\":\"Ð\",\"​\":\"​\",\"​\":\"​\",\"​\":\"​\",\"​\":\"​\",\"≫\":\"≫\",\"≪\":\"≪\",\"
\":\"\\n\",\"𝔑\":\"ð”‘\",\"⁠\":\"â \",\" \":\" \",\"ℕ\":\"â„•\",\"⫬\":\"⫬\",\"≢\":\"≢\",\"≭\":\"â‰\",\"∦\":\"∦\",\"∉\":\"∉\",\"≠\":\"≠\",\"≂̸\":\"≂̸\",\"∄\":\"∄\",\"≯\":\"≯\",\"≱\":\"≱\",\"≧̸\":\"≧̸\",\"≫̸\":\"≫̸\",\"≹\":\"≹\",\"⩾̸\":\"⩾̸\",\"≵\":\"≵\",\"≎̸\":\"≎̸\",\"≏̸\":\"â‰Ì¸\",\"⋪\":\"⋪\",\"⧏̸\":\"â§Ì¸\",\"⋬\":\"⋬\",\"≮\":\"≮\",\"≰\":\"≰\",\"≸\":\"≸\",\"≪̸\":\"≪̸\",\"⩽̸\":\"⩽̸\",\"≴\":\"≴\",\"⪢̸\":\"⪢̸\",\"⪡̸\":\"⪡̸\",\"⊀\":\"⊀\",\"⪯̸\":\"⪯̸\",\"⋠\":\"â‹ \",\"∌\":\"∌\",\"⋫\":\"â‹«\",\"⧐̸\":\"â§Ì¸\",\"⋭\":\"â‹\",\"⊏̸\":\"âŠÌ¸\",\"⋢\":\"â‹¢\",\"⊐̸\":\"âŠÌ¸\",\"⋣\":\"â‹£\",\"⊂⃒\":\"⊂⃒\",\"⊈\":\"⊈\",\"⊁\":\"âŠ\",\"⪰̸\":\"⪰̸\",\"⋡\":\"â‹¡\",\"≿̸\":\"≿̸\",\"⊃⃒\":\"⊃⃒\",\"⊉\":\"⊉\",\"≁\":\"â‰\",\"≄\":\"≄\",\"≇\":\"≇\",\"≉\":\"≉\",\"∤\":\"∤\",\"𝒩\":\"ð’©\",\"Ñ\":\"Ñ\",\"Ñ\":\"Ñ\",\"Ν\":\"Î\",\"Œ\":\"Å’\",\"Ó\":\"Ó\",\"Ó\":\"Ó\",\"Ô\":\"Ô\",\"Ô\":\"Ô\",\"О\":\"О\",\"Ő\":\"Å\",\"𝔒\":\"ð”’\",\"Ò\":\"Ã’\",\"Ò\":\"Ã’\",\"Ō\":\"ÅŒ\",\"Ω\":\"Ω\",\"Ο\":\"Ο\",\"𝕆\":\"ð•†\",\"“\":\"“\",\"‘\":\"‘\",\"⩔\":\"â©”\",\"𝒪\":\"ð’ª\",\"Ø\":\"Ø\",\"Ø\":\"Ø\",\"Õ\":\"Õ\",\"Õ\":\"Õ\",\"⨷\":\"⨷\",\"Ö\":\"Ö\",\"Ö\":\"Ö\",\"‾\":\"‾\",\"⏞\":\"âž\",\"⎴\":\"⎴\",\"⏜\":\"âœ\",\"∂\":\"∂\",\"П\":\"П\",\"𝔓\":\"ð”“\",\"Φ\":\"Φ\",\"Π\":\"Î \",\"±\":\"±\",\"ℌ\":\"â„Œ\",\"ℙ\":\"â„™\",\"⪻\":\"⪻\",\"≺\":\"≺\",\"⪯\":\"⪯\",\"≼\":\"≼\",\"≾\":\"≾\",\"″\":\"″\",\"∏\":\"âˆ\",\"∷\":\"∷\",\"∝\":\"âˆ\",\"𝒫\":\"ð’«\",\"Ψ\":\"Ψ\",\""\":'\"',\""\":'\"',\"𝔔\":\"ð””\",\"ℚ\":\"â„š\",\"𝒬\":\"ð’¬\",\"⤐\":\"â¤\",\"®\":\"®\",\"®\":\"®\",\"Ŕ\":\"Å”\",\"⟫\":\"⟫\",\"↠\":\"↠\",\"⤖\":\"⤖\",\"Ř\":\"Ř\",\"Ŗ\":\"Å–\",\"Р\":\"Ð \",\"ℜ\":\"â„œ\",\"∋\":\"∋\",\"⇋\":\"⇋\",\"⥯\":\"⥯\",\"ℜ\":\"â„œ\",\"Ρ\":\"Ρ\",\"⟩\":\"⟩\",\"→\":\"→\",\"⇥\":\"⇥\",\"⇄\":\"⇄\",\"⌉\":\"⌉\",\"⟧\":\"⟧\",\"⥝\":\"â¥\",\"⇂\":\"⇂\",\"⥕\":\"⥕\",\"⌋\":\"⌋\",\"⊢\":\"⊢\",\"↦\":\"↦\",\"⥛\":\"⥛\",\"⊳\":\"⊳\",\"⧐\":\"â§\",\"⊵\":\"⊵\",\"⥏\":\"â¥\",\"⥜\":\"⥜\",\"↾\":\"↾\",\"⥔\":\"⥔\",\"⇀\":\"⇀\",\"⥓\":\"⥓\",\"⇒\":\"⇒\",\"ℝ\":\"â„\",\"⥰\":\"⥰\",\"⇛\":\"⇛\",\"ℛ\":\"â„›\",\"↱\":\"↱\",\"⧴\":\"⧴\",\"Щ\":\"Щ\",\"Ш\":\"Ш\",\"Ь\":\"Ь\",\"Ś\":\"Åš\",\"⪼\":\"⪼\",\"Š\":\"Å \",\"Ş\":\"Åž\",\"Ŝ\":\"Åœ\",\"С\":\"С\",\"𝔖\":\"ð”–\",\"↓\":\"↓\",\"←\":\"â†\",\"→\":\"→\",\"↑\":\"↑\",\"Σ\":\"Σ\",\"∘\":\"∘\",\"𝕊\":\"ð•Š\",\"√\":\"√\",\"□\":\"â–¡\",\"⊓\":\"⊓\",\"⊏\":\"âŠ\",\"⊑\":\"⊑\",\"⊐\":\"âŠ\",\"⊒\":\"⊒\",\"⊔\":\"⊔\",\"𝒮\":\"ð’®\",\"⋆\":\"⋆\",\"⋐\":\"â‹\",\"⋐\":\"â‹\",\"⊆\":\"⊆\",\"≻\":\"≻\",\"⪰\":\"⪰\",\"≽\":\"≽\",\"≿\":\"≿\",\"∋\":\"∋\",\"∑\":\"∑\",\"⋑\":\"â‹‘\",\"⊃\":\"⊃\",\"⊇\":\"⊇\",\"⋑\":\"â‹‘\",\"Þ\":\"Þ\",\"Þ\":\"Þ\",\"™\":\"â„¢\",\"Ћ\":\"Ћ\",\"Ц\":\"Ц\",\"	\":\"\\t\",\"Τ\":\"Τ\",\"Ť\":\"Ť\",\"Ţ\":\"Å¢\",\"Т\":\"Т\",\"𝔗\":\"ð”—\",\"∴\":\"∴\",\"Θ\":\"Θ\",\"  \":\"âŸâ€Š\",\" \":\" \",\"∼\":\"∼\",\"≃\":\"≃\",\"≅\":\"≅\",\"≈\":\"≈\",\"𝕋\":\"ð•‹\",\"⃛\":\"⃛\",\"𝒯\":\"ð’¯\",\"Ŧ\":\"Ŧ\",\"Ú\":\"Ú\",\"Ú\":\"Ú\",\"↟\":\"↟\",\"⥉\":\"⥉\",\"Ў\":\"ÐŽ\",\"Ŭ\":\"Ŭ\",\"Û\":\"Û\",\"Û\":\"Û\",\"У\":\"У\",\"Ű\":\"Å°\",\"𝔘\":\"ð”˜\",\"Ù\":\"Ù\",\"Ù\":\"Ù\",\"Ū\":\"Ū\",\"_\":\"_\",\"⏟\":\"âŸ\",\"⎵\":\"⎵\",\"⏝\":\"â\",\"⋃\":\"⋃\",\"⊎\":\"⊎\",\"Ų\":\"Ų\",\"𝕌\":\"ð•Œ\",\"↑\":\"↑\",\"⤒\":\"⤒\",\"⇅\":\"⇅\",\"↕\":\"↕\",\"⥮\":\"⥮\",\"⊥\":\"⊥\",\"↥\":\"↥\",\"⇑\":\"⇑\",\"⇕\":\"⇕\",\"↖\":\"↖\",\"↗\":\"↗\",\"ϒ\":\"Ï’\",\"Υ\":\"Î¥\",\"Ů\":\"Å®\",\"𝒰\":\"ð’°\",\"Ũ\":\"Ũ\",\"Ü\":\"Ãœ\",\"Ü\":\"Ãœ\",\"⊫\":\"⊫\",\"⫫\":\"â««\",\"В\":\"Ð’\",\"⊩\":\"⊩\",\"⫦\":\"⫦\",\"⋁\":\"â‹\",\"‖\":\"‖\",\"‖\":\"‖\",\"∣\":\"∣\",\"|\":\"|\",\"❘\":\"â˜\",\"≀\":\"≀\",\" \":\" \",\"𝔙\":\"ð”™\",\"𝕍\":\"ð•\",\"𝒱\":\"ð’±\",\"⊪\":\"⊪\",\"Ŵ\":\"Å´\",\"⋀\":\"â‹€\",\"𝔚\":\"ð”š\",\"𝕎\":\"ð•Ž\",\"𝒲\":\"ð’²\",\"𝔛\":\"ð”›\",\"Ξ\":\"Ξ\",\"𝕏\":\"ð•\",\"𝒳\":\"ð’³\",\"Я\":\"Я\",\"Ї\":\"Ї\",\"Ю\":\"Ю\",\"Ý\":\"Ã\",\"Ý\":\"Ã\",\"Ŷ\":\"Ŷ\",\"Ы\":\"Ы\",\"𝔜\":\"ð”œ\",\"𝕐\":\"ð•\",\"𝒴\":\"ð’´\",\"Ÿ\":\"Ÿ\",\"Ж\":\"Ж\",\"Ź\":\"Ź\",\"Ž\":\"Ž\",\"З\":\"З\",\"Ż\":\"Å»\",\"​\":\"​\",\"Ζ\":\"Ζ\",\"ℨ\":\"ℨ\",\"ℤ\":\"ℤ\",\"𝒵\":\"ð’µ\",\"á\":\"á\",\"á\":\"á\",\"ă\":\"ă\",\"∾\":\"∾\",\"∾̳\":\"∾̳\",\"∿\":\"∿\",\"â\":\"â\",\"â\":\"â\",\"´\":\"´\",\"´\":\"´\",\"а\":\"а\",\"æ\":\"æ\",\"æ\":\"æ\",\"⁡\":\"â¡\",\"𝔞\":\"ð”ž\",\"à\":\"à \",\"à\":\"à \",\"ℵ\":\"ℵ\",\"ℵ\":\"ℵ\",\"α\":\"α\",\"ā\":\"Ä\",\"⨿\":\"⨿\",\"&\":\"&\",\"&\":\"&\",\"∧\":\"∧\",\"⩕\":\"â©•\",\"⩜\":\"â©œ\",\"⩘\":\"⩘\",\"⩚\":\"â©š\",\"∠\":\"∠\",\"⦤\":\"⦤\",\"∠\":\"∠\",\"∡\":\"∡\",\"⦨\":\"⦨\",\"⦩\":\"⦩\",\"⦪\":\"⦪\",\"⦫\":\"⦫\",\"⦬\":\"⦬\",\"⦭\":\"â¦\",\"⦮\":\"⦮\",\"⦯\":\"⦯\",\"∟\":\"∟\",\"⊾\":\"⊾\",\"⦝\":\"â¦\",\"∢\":\"∢\",\"Å\":\"Ã…\",\"⍼\":\"â¼\",\"ą\":\"Ä…\",\"𝕒\":\"ð•’\",\"≈\":\"≈\",\"⩰\":\"â©°\",\"⩯\":\"⩯\",\"≊\":\"≊\",\"≋\":\"≋\",\"'\":\"'\",\"≈\":\"≈\",\"≊\":\"≊\",\"å\":\"Ã¥\",\"å\":\"Ã¥\",\"𝒶\":\"ð’¶\",\"*\":\"*\",\"≈\":\"≈\",\"≍\":\"â‰\",\"ã\":\"ã\",\"ã\":\"ã\",\"ä\":\"ä\",\"ä\":\"ä\",\"∳\":\"∳\",\"⨑\":\"⨑\",\"⫭\":\"â«\",\"≌\":\"≌\",\"϶\":\"϶\",\"‵\":\"‵\",\"∽\":\"∽\",\"⋍\":\"â‹\",\"⊽\":\"⊽\",\"⌅\":\"⌅\",\"⌅\":\"⌅\",\"⎵\":\"⎵\",\"⎶\":\"⎶\",\"≌\":\"≌\",\"б\":\"б\",\"„\":\"„\",\"∵\":\"∵\",\"∵\":\"∵\",\"⦰\":\"⦰\",\"϶\":\"϶\",\"ℬ\":\"ℬ\",\"β\":\"β\",\"ℶ\":\"ℶ\",\"≬\":\"≬\",\"𝔟\":\"ð”Ÿ\",\"⋂\":\"â‹‚\",\"◯\":\"â—¯\",\"⋃\":\"⋃\",\"⨀\":\"⨀\",\"⨁\":\"â¨\",\"⨂\":\"⨂\",\"⨆\":\"⨆\",\"★\":\"★\",\"▽\":\"â–½\",\"△\":\"â–³\",\"⨄\":\"⨄\",\"⋁\":\"â‹\",\"⋀\":\"â‹€\",\"⤍\":\"â¤\",\"⧫\":\"⧫\",\"▪\":\"â–ª\",\"▴\":\"â–´\",\"▾\":\"â–¾\",\"◂\":\"â—‚\",\"▸\":\"â–¸\",\"␣\":\"â£\",\"▒\":\"â–’\",\"░\":\"â–‘\",\"▓\":\"â–“\",\"█\":\"â–ˆ\",\"=⃥\":\"=⃥\",\"≡⃥\":\"≡⃥\",\"⌐\":\"âŒ\",\"𝕓\":\"ð•“\",\"⊥\":\"⊥\",\"⊥\":\"⊥\",\"⋈\":\"⋈\",\"╗\":\"â•—\",\"╔\":\"â•”\",\"╖\":\"â•–\",\"╓\":\"â•“\",\"═\":\"â•\",\"╦\":\"╦\",\"╩\":\"â•©\",\"╤\":\"╤\",\"╧\":\"╧\",\"╝\":\"â•\",\"╚\":\"â•š\",\"╜\":\"â•œ\",\"╙\":\"â•™\",\"║\":\"â•‘\",\"╬\":\"╬\",\"╣\":\"â•£\",\"╠\":\"â• \",\"╫\":\"â•«\",\"╢\":\"â•¢\",\"╟\":\"â•Ÿ\",\"⧉\":\"⧉\",\"╕\":\"â••\",\"╒\":\"â•’\",\"┐\":\"â”\",\"┌\":\"┌\",\"─\":\"─\",\"╥\":\"â•¥\",\"╨\":\"╨\",\"┬\":\"┬\",\"┴\":\"â”´\",\"⊟\":\"⊟\",\"⊞\":\"⊞\",\"⊠\":\"⊠\",\"╛\":\"â•›\",\"╘\":\"╘\",\"┘\":\"┘\",\"└\":\"â””\",\"│\":\"│\",\"╪\":\"╪\",\"╡\":\"â•¡\",\"╞\":\"â•ž\",\"┼\":\"┼\",\"┤\":\"┤\",\"├\":\"├\",\"‵\":\"‵\",\"˘\":\"˘\",\"¦\":\"¦\",\"¦\":\"¦\",\"𝒷\":\"ð’·\",\"⁏\":\"â\",\"∽\":\"∽\",\"⋍\":\"â‹\",\"\\":\"\\\\\",\"⧅\":\"⧅\",\"⟈\":\"⟈\",\"•\":\"•\",\"•\":\"•\",\"≎\":\"≎\",\"⪮\":\"⪮\",\"≏\":\"â‰\",\"≏\":\"â‰\",\"ć\":\"ć\",\"∩\":\"∩\",\"⩄\":\"â©„\",\"⩉\":\"⩉\",\"⩋\":\"â©‹\",\"⩇\":\"⩇\",\"⩀\":\"â©€\",\"∩︀\":\"∩︀\",\"⁁\":\"â\",\"ˇ\":\"ˇ\",\"⩍\":\"â©\",\"č\":\"Ä\",\"ç\":\"ç\",\"ç\":\"ç\",\"ĉ\":\"ĉ\",\"⩌\":\"â©Œ\",\"⩐\":\"â©\",\"ċ\":\"Ä‹\",\"¸\":\"¸\",\"¸\":\"¸\",\"⦲\":\"⦲\",\"¢\":\"¢\",\"¢\":\"¢\",\"·\":\"·\",\"𝔠\":\"ð” \",\"ч\":\"ч\",\"✓\":\"✓\",\"✓\":\"✓\",\"χ\":\"χ\",\"○\":\"â—‹\",\"⧃\":\"⧃\",\"ˆ\":\"ˆ\",\"≗\":\"≗\",\"↺\":\"↺\",\"↻\":\"↻\",\"®\":\"®\",\"Ⓢ\":\"Ⓢ\",\"⊛\":\"⊛\",\"⊚\":\"⊚\",\"⊝\":\"âŠ\",\"≗\":\"≗\",\"⨐\":\"â¨\",\"⫯\":\"⫯\",\"⧂\":\"⧂\",\"♣\":\"♣\",\"♣\":\"♣\",\":\":\":\",\"≔\":\"≔\",\"≔\":\"≔\",\",\":\",\",\"@\":\"@\",\"∁\":\"âˆ\",\"∘\":\"∘\",\"∁\":\"âˆ\",\"ℂ\":\"â„‚\",\"≅\":\"≅\",\"⩭\":\"â©\",\"∮\":\"∮\",\"𝕔\":\"ð•”\",\"∐\":\"âˆ\",\"©\":\"©\",\"©\":\"©\",\"℗\":\"â„—\",\"↵\":\"↵\",\"✗\":\"✗\",\"𝒸\":\"ð’¸\",\"⫏\":\"â«\",\"⫑\":\"â«‘\",\"⫐\":\"â«\",\"⫒\":\"â«’\",\"⋯\":\"⋯\",\"⤸\":\"⤸\",\"⤵\":\"⤵\",\"⋞\":\"â‹ž\",\"⋟\":\"â‹Ÿ\",\"↶\":\"↶\",\"⤽\":\"⤽\",\"∪\":\"∪\",\"⩈\":\"⩈\",\"⩆\":\"⩆\",\"⩊\":\"â©Š\",\"⊍\":\"âŠ\",\"⩅\":\"â©…\",\"∪︀\":\"∪︀\",\"↷\":\"↷\",\"⤼\":\"⤼\",\"⋞\":\"â‹ž\",\"⋟\":\"â‹Ÿ\",\"⋎\":\"â‹Ž\",\"⋏\":\"â‹\",\"¤\":\"¤\",\"¤\":\"¤\",\"↶\":\"↶\",\"↷\":\"↷\",\"⋎\":\"â‹Ž\",\"⋏\":\"â‹\",\"∲\":\"∲\",\"∱\":\"∱\",\"⌭\":\"âŒ\",\"⇓\":\"⇓\",\"⥥\":\"⥥\",\"†\":\"†\",\"ℸ\":\"ℸ\",\"↓\":\"↓\",\"‐\":\"â€\",\"⊣\":\"⊣\",\"⤏\":\"â¤\",\"˝\":\"Ë\",\"ď\":\"Ä\",\"д\":\"д\",\"ⅆ\":\"â…†\",\"‡\":\"‡\",\"⇊\":\"⇊\",\"⩷\":\"â©·\",\"°\":\"°\",\"°\":\"°\",\"δ\":\"δ\",\"⦱\":\"⦱\",\"⥿\":\"⥿\",\"𝔡\":\"ð”¡\",\"⇃\":\"⇃\",\"⇂\":\"⇂\",\"⋄\":\"â‹„\",\"⋄\":\"â‹„\",\"♦\":\"♦\",\"♦\":\"♦\",\"¨\":\"¨\",\"ϝ\":\"Ï\",\"⋲\":\"⋲\",\"÷\":\"÷\",\"÷\":\"÷\",\"÷\":\"÷\",\"⋇\":\"⋇\",\"⋇\":\"⋇\",\"ђ\":\"Ñ’\",\"⌞\":\"⌞\",\"⌍\":\"âŒ\",\"$\":\"$\",\"𝕕\":\"ð••\",\"˙\":\"Ë™\",\"≐\":\"â‰\",\"≑\":\"≑\",\"∸\":\"∸\",\"∔\":\"∔\",\"⊡\":\"⊡\",\"⌆\":\"⌆\",\"↓\":\"↓\",\"⇊\":\"⇊\",\"⇃\":\"⇃\",\"⇂\":\"⇂\",\"⤐\":\"â¤\",\"⌟\":\"⌟\",\"⌌\":\"⌌\",\"𝒹\":\"ð’¹\",\"ѕ\":\"Ñ•\",\"⧶\":\"⧶\",\"đ\":\"Ä‘\",\"⋱\":\"⋱\",\"▿\":\"â–¿\",\"▾\":\"â–¾\",\"⇵\":\"⇵\",\"⥯\":\"⥯\",\"⦦\":\"⦦\",\"џ\":\"ÑŸ\",\"⟿\":\"⟿\",\"⩷\":\"â©·\",\"≑\":\"≑\",\"é\":\"é\",\"é\":\"é\",\"⩮\":\"â©®\",\"ě\":\"Ä›\",\"≖\":\"≖\",\"ê\":\"ê\",\"ê\":\"ê\",\"≕\":\"≕\",\"э\":\"Ñ\",\"ė\":\"Ä—\",\"ⅇ\":\"â…‡\",\"≒\":\"≒\",\"𝔢\":\"ð”¢\",\"⪚\":\"⪚\",\"è\":\"è\",\"è\":\"è\",\"⪖\":\"⪖\",\"⪘\":\"⪘\",\"⪙\":\"⪙\",\"⏧\":\"â§\",\"ℓ\":\"â„“\",\"⪕\":\"⪕\",\"⪗\":\"⪗\",\"ē\":\"Ä“\",\"∅\":\"∅\",\"∅\":\"∅\",\"∅\":\"∅\",\" \":\" \",\" \":\" \",\" \":\" \",\"ŋ\":\"Å‹\",\" \":\" \",\"ę\":\"Ä™\",\"𝕖\":\"ð•–\",\"⋕\":\"â‹•\",\"⧣\":\"⧣\",\"⩱\":\"⩱\",\"ε\":\"ε\",\"ε\":\"ε\",\"ϵ\":\"ϵ\",\"≖\":\"≖\",\"≕\":\"≕\",\"≂\":\"≂\",\"⪖\":\"⪖\",\"⪕\":\"⪕\",\"=\":\"=\",\"≟\":\"≟\",\"≡\":\"≡\",\"⩸\":\"⩸\",\"⧥\":\"⧥\",\"≓\":\"≓\",\"⥱\":\"⥱\",\"ℯ\":\"ℯ\",\"≐\":\"â‰\",\"≂\":\"≂\",\"η\":\"η\",\"ð\":\"ð\",\"ð\":\"ð\",\"ë\":\"ë\",\"ë\":\"ë\",\"€\":\"€\",\"!\":\"!\",\"∃\":\"∃\",\"ℰ\":\"â„°\",\"ⅇ\":\"â…‡\",\"≒\":\"≒\",\"ф\":\"Ñ„\",\"♀\":\"♀\",\"ffi\":\"ffi\",\"ff\":\"ff\",\"ffl\":\"ffl\",\"𝔣\":\"ð”£\",\"fi\":\"ï¬\",\"fj\":\"fj\",\"♭\":\"â™\",\"fl\":\"fl\",\"▱\":\"â–±\",\"ƒ\":\"Æ’\",\"𝕗\":\"ð•—\",\"∀\":\"∀\",\"⋔\":\"â‹”\",\"⫙\":\"â«™\",\"⨍\":\"â¨\",\"½\":\"½\",\"½\":\"½\",\"⅓\":\"â…“\",\"¼\":\"¼\",\"¼\":\"¼\",\"⅕\":\"â…•\",\"⅙\":\"â…™\",\"⅛\":\"â…›\",\"⅔\":\"â…”\",\"⅖\":\"â…–\",\"¾\":\"¾\",\"¾\":\"¾\",\"⅗\":\"â…—\",\"⅜\":\"â…œ\",\"⅘\":\"â…˜\",\"⅚\":\"â…š\",\"⅝\":\"â…\",\"⅞\":\"â…ž\",\"⁄\":\"â„\",\"⌢\":\"⌢\",\"𝒻\":\"ð’»\",\"≧\":\"≧\",\"⪌\":\"⪌\",\"ǵ\":\"ǵ\",\"γ\":\"γ\",\"ϝ\":\"Ï\",\"⪆\":\"⪆\",\"ğ\":\"ÄŸ\",\"ĝ\":\"Ä\",\"г\":\"г\",\"ġ\":\"Ä¡\",\"≥\":\"≥\",\"⋛\":\"â‹›\",\"≥\":\"≥\",\"≧\":\"≧\",\"⩾\":\"⩾\",\"⩾\":\"⩾\",\"⪩\":\"⪩\",\"⪀\":\"⪀\",\"⪂\":\"⪂\",\"⪄\":\"⪄\",\"⋛︀\":\"⋛︀\",\"⪔\":\"⪔\",\"𝔤\":\"ð”¤\",\"≫\":\"≫\",\"⋙\":\"â‹™\",\"ℷ\":\"â„·\",\"ѓ\":\"Ñ“\",\"≷\":\"≷\",\"⪒\":\"⪒\",\"⪥\":\"⪥\",\"⪤\":\"⪤\",\"≩\":\"≩\",\"⪊\":\"⪊\",\"⪊\":\"⪊\",\"⪈\":\"⪈\",\"⪈\":\"⪈\",\"≩\":\"≩\",\"⋧\":\"⋧\",\"𝕘\":\"ð•˜\",\"`\":\"`\",\"ℊ\":\"â„Š\",\"≳\":\"≳\",\"⪎\":\"⪎\",\"⪐\":\"âª\",\">\":\">\",\">\":\">\",\"⪧\":\"⪧\",\"⩺\":\"⩺\",\"⋗\":\"â‹—\",\"⦕\":\"⦕\",\"⩼\":\"⩼\",\"⪆\":\"⪆\",\"⥸\":\"⥸\",\"⋗\":\"â‹—\",\"⋛\":\"â‹›\",\"⪌\":\"⪌\",\"≷\":\"≷\",\"≳\":\"≳\",\"≩︀\":\"≩︀\",\"≩︀\":\"≩︀\",\"⇔\":\"⇔\",\" \":\" \",\"½\":\"½\",\"ℋ\":\"â„‹\",\"ъ\":\"ÑŠ\",\"↔\":\"↔\",\"⥈\":\"⥈\",\"↭\":\"â†\",\"ℏ\":\"â„\",\"ĥ\":\"Ä¥\",\"♥\":\"♥\",\"♥\":\"♥\",\"…\":\"…\",\"⊹\":\"⊹\",\"𝔥\":\"ð”¥\",\"⤥\":\"⤥\",\"⤦\":\"⤦\",\"⇿\":\"⇿\",\"∻\":\"∻\",\"↩\":\"↩\",\"↪\":\"↪\",\"𝕙\":\"ð•™\",\"―\":\"―\",\"𝒽\":\"ð’½\",\"ℏ\":\"â„\",\"ħ\":\"ħ\",\"⁃\":\"âƒ\",\"‐\":\"â€\",\"í\":\"Ã\",\"í\":\"Ã\",\"⁣\":\"â£\",\"î\":\"î\",\"î\":\"î\",\"и\":\"и\",\"е\":\"е\",\"¡\":\"¡\",\"¡\":\"¡\",\"⇔\":\"⇔\",\"𝔦\":\"ð”¦\",\"ì\":\"ì\",\"ì\":\"ì\",\"ⅈ\":\"â…ˆ\",\"⨌\":\"⨌\",\"∭\":\"âˆ\",\"⧜\":\"⧜\",\"℩\":\"â„©\",\"ij\":\"ij\",\"ī\":\"Ä«\",\"ℑ\":\"â„‘\",\"ℐ\":\"â„\",\"ℑ\":\"â„‘\",\"ı\":\"ı\",\"⊷\":\"⊷\",\"Ƶ\":\"Ƶ\",\"∈\":\"∈\",\"℅\":\"â„…\",\"∞\":\"∞\",\"⧝\":\"â§\",\"ı\":\"ı\",\"∫\":\"∫\",\"⊺\":\"⊺\",\"ℤ\":\"ℤ\",\"⊺\":\"⊺\",\"⨗\":\"⨗\",\"⨼\":\"⨼\",\"ё\":\"Ñ‘\",\"į\":\"į\",\"𝕚\":\"ð•š\",\"ι\":\"ι\",\"⨼\":\"⨼\",\"¿\":\"¿\",\"¿\":\"¿\",\"𝒾\":\"ð’¾\",\"∈\":\"∈\",\"⋹\":\"⋹\",\"⋵\":\"⋵\",\"⋴\":\"â‹´\",\"⋳\":\"⋳\",\"∈\":\"∈\",\"⁢\":\"â¢\",\"ĩ\":\"Ä©\",\"і\":\"Ñ–\",\"ï\":\"ï\",\"ï\":\"ï\",\"ĵ\":\"ĵ\",\"й\":\"й\",\"𝔧\":\"ð”§\",\"ȷ\":\"È·\",\"𝕛\":\"ð•›\",\"𝒿\":\"ð’¿\",\"ј\":\"ј\",\"є\":\"Ñ”\",\"κ\":\"κ\",\"ϰ\":\"Ï°\",\"ķ\":\"Ä·\",\"к\":\"к\",\"𝔨\":\"ð”¨\",\"ĸ\":\"ĸ\",\"х\":\"Ñ…\",\"ќ\":\"Ñœ\",\"𝕜\":\"ð•œ\",\"𝓀\":\"ð“€\",\"⇚\":\"⇚\",\"⇐\":\"â‡\",\"⤛\":\"⤛\",\"⤎\":\"⤎\",\"≦\":\"≦\",\"⪋\":\"⪋\",\"⥢\":\"⥢\",\"ĺ\":\"ĺ\",\"⦴\":\"⦴\",\"ℒ\":\"â„’\",\"λ\":\"λ\",\"⟨\":\"⟨\",\"⦑\":\"⦑\",\"⟨\":\"⟨\",\"⪅\":\"⪅\",\"«\":\"«\",\"«\":\"«\",\"←\":\"â†\",\"⇤\":\"⇤\",\"⤟\":\"⤟\",\"⤝\":\"â¤\",\"↩\":\"↩\",\"↫\":\"↫\",\"⤹\":\"⤹\",\"⥳\":\"⥳\",\"↢\":\"↢\",\"⪫\":\"⪫\",\"⤙\":\"⤙\",\"⪭\":\"âª\",\"⪭︀\":\"âªï¸€\",\"⤌\":\"⤌\",\"❲\":\"â²\",\"{\":\"{\",\"[\":\"[\",\"⦋\":\"⦋\",\"⦏\":\"â¦\",\"⦍\":\"â¦\",\"ľ\":\"ľ\",\"ļ\":\"ļ\",\"⌈\":\"⌈\",\"{\":\"{\",\"л\":\"л\",\"⤶\":\"⤶\",\"“\":\"“\",\"„\":\"„\",\"⥧\":\"⥧\",\"⥋\":\"⥋\",\"↲\":\"↲\",\"≤\":\"≤\",\"←\":\"â†\",\"↢\":\"↢\",\"↽\":\"↽\",\"↼\":\"↼\",\"⇇\":\"⇇\",\"↔\":\"↔\",\"⇆\":\"⇆\",\"⇋\":\"⇋\",\"↭\":\"â†\",\"⋋\":\"â‹‹\",\"⋚\":\"â‹š\",\"≤\":\"≤\",\"≦\":\"≦\",\"⩽\":\"⩽\",\"⩽\":\"⩽\",\"⪨\":\"⪨\",\"⩿\":\"â©¿\",\"⪁\":\"âª\",\"⪃\":\"⪃\",\"⋚︀\":\"⋚︀\",\"⪓\":\"⪓\",\"⪅\":\"⪅\",\"⋖\":\"â‹–\",\"⋚\":\"â‹š\",\"⪋\":\"⪋\",\"≶\":\"≶\",\"≲\":\"≲\",\"⥼\":\"⥼\",\"⌊\":\"⌊\",\"𝔩\":\"ð”©\",\"≶\":\"≶\",\"⪑\":\"⪑\",\"↽\":\"↽\",\"↼\":\"↼\",\"⥪\":\"⥪\",\"▄\":\"â–„\",\"љ\":\"Ñ™\",\"≪\":\"≪\",\"⇇\":\"⇇\",\"⌞\":\"⌞\",\"⥫\":\"⥫\",\"◺\":\"â—º\",\"ŀ\":\"Å€\",\"⎰\":\"⎰\",\"⎰\":\"⎰\",\"≨\":\"≨\",\"⪉\":\"⪉\",\"⪉\":\"⪉\",\"⪇\":\"⪇\",\"⪇\":\"⪇\",\"≨\":\"≨\",\"⋦\":\"⋦\",\"⟬\":\"⟬\",\"⇽\":\"⇽\",\"⟦\":\"⟦\",\"⟵\":\"⟵\",\"⟷\":\"⟷\",\"⟼\":\"⟼\",\"⟶\":\"⟶\",\"↫\":\"↫\",\"↬\":\"↬\",\"⦅\":\"⦅\",\"𝕝\":\"ð•\",\"⨭\":\"â¨\",\"⨴\":\"⨴\",\"∗\":\"∗\",\"_\":\"_\",\"◊\":\"â—Š\",\"◊\":\"â—Š\",\"⧫\":\"⧫\",\"(\":\"(\",\"⦓\":\"⦓\",\"⇆\":\"⇆\",\"⌟\":\"⌟\",\"⇋\":\"⇋\",\"⥭\":\"â¥\",\"‎\":\"‎\",\"⊿\":\"⊿\",\"‹\":\"‹\",\"𝓁\":\"ð“\",\"↰\":\"↰\",\"≲\":\"≲\",\"⪍\":\"âª\",\"⪏\":\"âª\",\"[\":\"[\",\"‘\":\"‘\",\"‚\":\"‚\",\"ł\":\"Å‚\",\"<\":\"<\",\"<\":\"<\",\"⪦\":\"⪦\",\"⩹\":\"⩹\",\"⋖\":\"â‹–\",\"⋋\":\"â‹‹\",\"⋉\":\"⋉\",\"⥶\":\"⥶\",\"⩻\":\"â©»\",\"⦖\":\"⦖\",\"◃\":\"â—ƒ\",\"⊴\":\"⊴\",\"◂\":\"â—‚\",\"⥊\":\"⥊\",\"⥦\":\"⥦\",\"≨︀\":\"≨︀\",\"≨︀\":\"≨︀\",\"∺\":\"∺\",\"¯\":\"¯\",\"¯\":\"¯\",\"♂\":\"♂\",\"✠\":\"✠\",\"✠\":\"✠\",\"↦\":\"↦\",\"↦\":\"↦\",\"↧\":\"↧\",\"↤\":\"↤\",\"↥\":\"↥\",\"▮\":\"â–®\",\"⨩\":\"⨩\",\"м\":\"м\",\"—\":\"—\",\"∡\":\"∡\",\"𝔪\":\"ð”ª\",\"℧\":\"℧\",\"µ\":\"µ\",\"µ\":\"µ\",\"∣\":\"∣\",\"*\":\"*\",\"⫰\":\"â«°\",\"·\":\"·\",\"·\":\"·\",\"−\":\"−\",\"⊟\":\"⊟\",\"∸\":\"∸\",\"⨪\":\"⨪\",\"⫛\":\"â«›\",\"…\":\"…\",\"∓\":\"∓\",\"⊧\":\"⊧\",\"𝕞\":\"ð•ž\",\"∓\":\"∓\",\"𝓂\":\"ð“‚\",\"∾\":\"∾\",\"μ\":\"μ\",\"⊸\":\"⊸\",\"⊸\":\"⊸\",\"⋙̸\":\"⋙̸\",\"≫⃒\":\"≫⃒\",\"≫̸\":\"≫̸\",\"⇍\":\"â‡\",\"⇎\":\"⇎\",\"⋘̸\":\"⋘̸\",\"≪⃒\":\"≪⃒\",\"≪̸\":\"≪̸\",\"⇏\":\"â‡\",\"⊯\":\"⊯\",\"⊮\":\"⊮\",\"∇\":\"∇\",\"ń\":\"Å„\",\"∠⃒\":\"∠⃒\",\"≉\":\"≉\",\"⩰̸\":\"⩰̸\",\"≋̸\":\"≋̸\",\"ʼn\":\"ʼn\",\"≉\":\"≉\",\"♮\":\"â™®\",\"♮\":\"â™®\",\"ℕ\":\"â„•\",\" \":\" \",\" \":\" \",\"≎̸\":\"≎̸\",\"≏̸\":\"â‰Ì¸\",\"⩃\":\"⩃\",\"ň\":\"ň\",\"ņ\":\"ņ\",\"≇\":\"≇\",\"⩭̸\":\"â©Ì¸\",\"⩂\":\"â©‚\",\"н\":\"н\",\"–\":\"–\",\"≠\":\"≠\",\"⇗\":\"⇗\",\"⤤\":\"⤤\",\"↗\":\"↗\",\"↗\":\"↗\",\"≐̸\":\"â‰Ì¸\",\"≢\":\"≢\",\"⤨\":\"⤨\",\"≂̸\":\"≂̸\",\"∄\":\"∄\",\"∄\":\"∄\",\"𝔫\":\"ð”«\",\"≧̸\":\"≧̸\",\"≱\":\"≱\",\"≱\":\"≱\",\"≧̸\":\"≧̸\",\"⩾̸\":\"⩾̸\",\"⩾̸\":\"⩾̸\",\"≵\":\"≵\",\"≯\":\"≯\",\"≯\":\"≯\",\"⇎\":\"⇎\",\"↮\":\"↮\",\"⫲\":\"⫲\",\"∋\":\"∋\",\"⋼\":\"⋼\",\"⋺\":\"⋺\",\"∋\":\"∋\",\"њ\":\"Ñš\",\"⇍\":\"â‡\",\"≦̸\":\"≦̸\",\"↚\":\"↚\",\"‥\":\"‥\",\"≰\":\"≰\",\"↚\":\"↚\",\"↮\":\"↮\",\"≰\":\"≰\",\"≦̸\":\"≦̸\",\"⩽̸\":\"⩽̸\",\"⩽̸\":\"⩽̸\",\"≮\":\"≮\",\"≴\":\"≴\",\"≮\":\"≮\",\"⋪\":\"⋪\",\"⋬\":\"⋬\",\"∤\":\"∤\",\"𝕟\":\"ð•Ÿ\",\"¬\":\"¬\",\"¬\":\"¬\",\"∉\":\"∉\",\"⋹̸\":\"⋹̸\",\"⋵̸\":\"⋵̸\",\"∉\":\"∉\",\"⋷\":\"â‹·\",\"⋶\":\"⋶\",\"∌\":\"∌\",\"∌\":\"∌\",\"⋾\":\"⋾\",\"⋽\":\"⋽\",\"∦\":\"∦\",\"∦\":\"∦\",\"⫽⃥\":\"⫽⃥\",\"∂̸\":\"∂̸\",\"⨔\":\"⨔\",\"⊀\":\"⊀\",\"⋠\":\"â‹ \",\"⪯̸\":\"⪯̸\",\"⊀\":\"⊀\",\"⪯̸\":\"⪯̸\",\"⇏\":\"â‡\",\"↛\":\"↛\",\"⤳̸\":\"⤳̸\",\"↝̸\":\"â†Ì¸\",\"↛\":\"↛\",\"⋫\":\"â‹«\",\"⋭\":\"â‹\",\"⊁\":\"âŠ\",\"⋡\":\"â‹¡\",\"⪰̸\":\"⪰̸\",\"𝓃\":\"ð“ƒ\",\"∤\":\"∤\",\"∦\":\"∦\",\"≁\":\"â‰\",\"≄\":\"≄\",\"≄\":\"≄\",\"∤\":\"∤\",\"∦\":\"∦\",\"⋢\":\"â‹¢\",\"⋣\":\"â‹£\",\"⊄\":\"⊄\",\"⫅̸\":\"⫅̸\",\"⊈\":\"⊈\",\"⊂⃒\":\"⊂⃒\",\"⊈\":\"⊈\",\"⫅̸\":\"⫅̸\",\"⊁\":\"âŠ\",\"⪰̸\":\"⪰̸\",\"⊅\":\"⊅\",\"⫆̸\":\"⫆̸\",\"⊉\":\"⊉\",\"⊃⃒\":\"⊃⃒\",\"⊉\":\"⊉\",\"⫆̸\":\"⫆̸\",\"≹\":\"≹\",\"ñ\":\"ñ\",\"ñ\":\"ñ\",\"≸\":\"≸\",\"⋪\":\"⋪\",\"⋬\":\"⋬\",\"⋫\":\"â‹«\",\"⋭\":\"â‹\",\"ν\":\"ν\",\"#\":\"#\",\"№\":\"â„–\",\" \":\" \",\"⊭\":\"âŠ\",\"⤄\":\"⤄\",\"≍⃒\":\"â‰âƒ’\",\"⊬\":\"⊬\",\"≥⃒\":\"≥⃒\",\">⃒\":\">⃒\",\"⧞\":\"⧞\",\"⤂\":\"⤂\",\"≤⃒\":\"≤⃒\",\"<⃒\":\"<⃒\",\"⊴⃒\":\"⊴⃒\",\"⤃\":\"⤃\",\"⊵⃒\":\"⊵⃒\",\"∼⃒\":\"∼⃒\",\"⇖\":\"⇖\",\"⤣\":\"⤣\",\"↖\":\"↖\",\"↖\":\"↖\",\"⤧\":\"⤧\",\"Ⓢ\":\"Ⓢ\",\"ó\":\"ó\",\"ó\":\"ó\",\"⊛\":\"⊛\",\"⊚\":\"⊚\",\"ô\":\"ô\",\"ô\":\"ô\",\"о\":\"о\",\"⊝\":\"âŠ\",\"ő\":\"Å‘\",\"⨸\":\"⨸\",\"⊙\":\"⊙\",\"⦼\":\"⦼\",\"œ\":\"Å“\",\"⦿\":\"⦿\",\"𝔬\":\"ð”¬\",\"˛\":\"Ë›\",\"ò\":\"ò\",\"ò\":\"ò\",\"⧁\":\"â§\",\"⦵\":\"⦵\",\"Ω\":\"Ω\",\"∮\":\"∮\",\"↺\":\"↺\",\"⦾\":\"⦾\",\"⦻\":\"⦻\",\"‾\":\"‾\",\"⧀\":\"⧀\",\"ō\":\"Å\",\"ω\":\"ω\",\"ο\":\"ο\",\"⦶\":\"⦶\",\"⊖\":\"⊖\",\"𝕠\":\"ð• \",\"⦷\":\"⦷\",\"⦹\":\"⦹\",\"⊕\":\"⊕\",\"∨\":\"∨\",\"↻\":\"↻\",\"⩝\":\"â©\",\"ℴ\":\"â„´\",\"ℴ\":\"â„´\",\"ª\":\"ª\",\"ª\":\"ª\",\"º\":\"º\",\"º\":\"º\",\"⊶\":\"⊶\",\"⩖\":\"â©–\",\"⩗\":\"â©—\",\"⩛\":\"â©›\",\"ℴ\":\"â„´\",\"ø\":\"ø\",\"ø\":\"ø\",\"⊘\":\"⊘\",\"õ\":\"õ\",\"õ\":\"õ\",\"⊗\":\"⊗\",\"⨶\":\"⨶\",\"ö\":\"ö\",\"ö\":\"ö\",\"⌽\":\"⌽\",\"∥\":\"∥\",\"¶\":\"¶\",\"¶\":\"¶\",\"∥\":\"∥\",\"⫳\":\"⫳\",\"⫽\":\"⫽\",\"∂\":\"∂\",\"п\":\"п\",\"%\":\"%\",\".\":\".\",\"‰\":\"‰\",\"⊥\":\"⊥\",\"‱\":\"‱\",\"𝔭\":\"ð”\",\"φ\":\"φ\",\"ϕ\":\"Ï•\",\"ℳ\":\"ℳ\",\"☎\":\"☎\",\"π\":\"Ï€\",\"⋔\":\"â‹”\",\"ϖ\":\"Ï–\",\"ℏ\":\"â„\",\"ℎ\":\"â„Ž\",\"ℏ\":\"â„\",\"+\":\"+\",\"⨣\":\"⨣\",\"⊞\":\"⊞\",\"⨢\":\"⨢\",\"∔\":\"∔\",\"⨥\":\"⨥\",\"⩲\":\"⩲\",\"±\":\"±\",\"±\":\"±\",\"⨦\":\"⨦\",\"⨧\":\"⨧\",\"±\":\"±\",\"⨕\":\"⨕\",\"𝕡\":\"ð•¡\",\"£\":\"£\",\"£\":\"£\",\"≺\":\"≺\",\"⪳\":\"⪳\",\"⪷\":\"⪷\",\"≼\":\"≼\",\"⪯\":\"⪯\",\"≺\":\"≺\",\"⪷\":\"⪷\",\"≼\":\"≼\",\"⪯\":\"⪯\",\"⪹\":\"⪹\",\"⪵\":\"⪵\",\"⋨\":\"⋨\",\"≾\":\"≾\",\"′\":\"′\",\"ℙ\":\"â„™\",\"⪵\":\"⪵\",\"⪹\":\"⪹\",\"⋨\":\"⋨\",\"∏\":\"âˆ\",\"⌮\":\"⌮\",\"⌒\":\"⌒\",\"⌓\":\"⌓\",\"∝\":\"âˆ\",\"∝\":\"âˆ\",\"≾\":\"≾\",\"⊰\":\"⊰\",\"𝓅\":\"ð“…\",\"ψ\":\"ψ\",\" \":\" \",\"𝔮\":\"ð”®\",\"⨌\":\"⨌\",\"𝕢\":\"ð•¢\",\"⁗\":\"â—\",\"𝓆\":\"ð“†\",\"ℍ\":\"â„\",\"⨖\":\"⨖\",\"?\":\"?\",\"≟\":\"≟\",\""\":'\"',\""\":'\"',\"⇛\":\"⇛\",\"⇒\":\"⇒\",\"⤜\":\"⤜\",\"⤏\":\"â¤\",\"⥤\":\"⥤\",\"∽̱\":\"∽̱\",\"ŕ\":\"Å•\",\"√\":\"√\",\"⦳\":\"⦳\",\"⟩\":\"⟩\",\"⦒\":\"⦒\",\"⦥\":\"⦥\",\"⟩\":\"⟩\",\"»\":\"»\",\"»\":\"»\",\"→\":\"→\",\"⥵\":\"⥵\",\"⇥\":\"⇥\",\"⤠\":\"⤠\",\"⤳\":\"⤳\",\"⤞\":\"⤞\",\"↪\":\"↪\",\"↬\":\"↬\",\"⥅\":\"⥅\",\"⥴\":\"⥴\",\"↣\":\"↣\",\"↝\":\"â†\",\"⤚\":\"⤚\",\"∶\":\"∶\",\"ℚ\":\"â„š\",\"⤍\":\"â¤\",\"❳\":\"â³\",\"}\":\"}\",\"]\":\"]\",\"⦌\":\"⦌\",\"⦎\":\"⦎\",\"⦐\":\"â¦\",\"ř\":\"Å™\",\"ŗ\":\"Å—\",\"⌉\":\"⌉\",\"}\":\"}\",\"р\":\"Ñ€\",\"⤷\":\"⤷\",\"⥩\":\"⥩\",\"”\":\"â€\",\"”\":\"â€\",\"↳\":\"↳\",\"ℜ\":\"â„œ\",\"ℛ\":\"â„›\",\"ℜ\":\"â„œ\",\"ℝ\":\"â„\",\"▭\":\"â–\",\"®\":\"®\",\"®\":\"®\",\"⥽\":\"⥽\",\"⌋\":\"⌋\",\"𝔯\":\"ð”¯\",\"⇁\":\"â‡\",\"⇀\":\"⇀\",\"⥬\":\"⥬\",\"ρ\":\"Ï\",\"ϱ\":\"ϱ\",\"→\":\"→\",\"↣\":\"↣\",\"⇁\":\"â‡\",\"⇀\":\"⇀\",\"⇄\":\"⇄\",\"⇌\":\"⇌\",\"⇉\":\"⇉\",\"↝\":\"â†\",\"⋌\":\"â‹Œ\",\"˚\":\"Ëš\",\"≓\":\"≓\",\"⇄\":\"⇄\",\"⇌\":\"⇌\",\"‏\":\"â€\",\"⎱\":\"⎱\",\"⎱\":\"⎱\",\"⫮\":\"â«®\",\"⟭\":\"âŸ\",\"⇾\":\"⇾\",\"⟧\":\"⟧\",\"⦆\":\"⦆\",\"𝕣\":\"ð•£\",\"⨮\":\"⨮\",\"⨵\":\"⨵\",\")\":\")\",\"⦔\":\"⦔\",\"⨒\":\"⨒\",\"⇉\":\"⇉\",\"›\":\"›\",\"𝓇\":\"ð“‡\",\"↱\":\"↱\",\"]\":\"]\",\"’\":\"’\",\"’\":\"’\",\"⋌\":\"â‹Œ\",\"⋊\":\"â‹Š\",\"▹\":\"â–¹\",\"⊵\":\"⊵\",\"▸\":\"â–¸\",\"⧎\":\"⧎\",\"⥨\":\"⥨\",\"℞\":\"â„ž\",\"ś\":\"Å›\",\"‚\":\"‚\",\"≻\":\"≻\",\"⪴\":\"⪴\",\"⪸\":\"⪸\",\"š\":\"Å¡\",\"≽\":\"≽\",\"⪰\":\"⪰\",\"ş\":\"ÅŸ\",\"ŝ\":\"Å\",\"⪶\":\"⪶\",\"⪺\":\"⪺\",\"⋩\":\"â‹©\",\"⨓\":\"⨓\",\"≿\":\"≿\",\"с\":\"Ñ\",\"⋅\":\"â‹…\",\"⊡\":\"⊡\",\"⩦\":\"⩦\",\"⇘\":\"⇘\",\"⤥\":\"⤥\",\"↘\":\"↘\",\"↘\":\"↘\",\"§\":\"§\",\"§\":\"§\",\";\":\";\",\"⤩\":\"⤩\",\"∖\":\"∖\",\"∖\":\"∖\",\"✶\":\"✶\",\"𝔰\":\"ð”°\",\"⌢\":\"⌢\",\"♯\":\"♯\",\"щ\":\"щ\",\"ш\":\"ш\",\"∣\":\"∣\",\"∥\":\"∥\",\"­\":\"Â\",\"­\":\"Â\",\"σ\":\"σ\",\"ς\":\"Ï‚\",\"ς\":\"Ï‚\",\"∼\":\"∼\",\"⩪\":\"⩪\",\"≃\":\"≃\",\"≃\":\"≃\",\"⪞\":\"⪞\",\"⪠\":\"⪠\",\"⪝\":\"âª\",\"⪟\":\"⪟\",\"≆\":\"≆\",\"⨤\":\"⨤\",\"⥲\":\"⥲\",\"←\":\"â†\",\"∖\":\"∖\",\"⨳\":\"⨳\",\"⧤\":\"⧤\",\"∣\":\"∣\",\"⌣\":\"⌣\",\"⪪\":\"⪪\",\"⪬\":\"⪬\",\"⪬︀\":\"⪬︀\",\"ь\":\"ÑŒ\",\"/\":\"/\",\"⧄\":\"⧄\",\"⌿\":\"⌿\",\"𝕤\":\"ð•¤\",\"♠\":\"â™ \",\"♠\":\"â™ \",\"∥\":\"∥\",\"⊓\":\"⊓\",\"⊓︀\":\"⊓︀\",\"⊔\":\"⊔\",\"⊔︀\":\"⊔︀\",\"⊏\":\"âŠ\",\"⊑\":\"⊑\",\"⊏\":\"âŠ\",\"⊑\":\"⊑\",\"⊐\":\"âŠ\",\"⊒\":\"⊒\",\"⊐\":\"âŠ\",\"⊒\":\"⊒\",\"□\":\"â–¡\",\"□\":\"â–¡\",\"▪\":\"â–ª\",\"▪\":\"â–ª\",\"→\":\"→\",\"𝓈\":\"ð“ˆ\",\"∖\":\"∖\",\"⌣\":\"⌣\",\"⋆\":\"⋆\",\"☆\":\"☆\",\"★\":\"★\",\"ϵ\":\"ϵ\",\"ϕ\":\"Ï•\",\"¯\":\"¯\",\"⊂\":\"⊂\",\"⫅\":\"â«…\",\"⪽\":\"⪽\",\"⊆\":\"⊆\",\"⫃\":\"⫃\",\"⫁\":\"â«\",\"⫋\":\"â«‹\",\"⊊\":\"⊊\",\"⪿\":\"⪿\",\"⥹\":\"⥹\",\"⊂\":\"⊂\",\"⊆\":\"⊆\",\"⫅\":\"â«…\",\"⊊\":\"⊊\",\"⫋\":\"â«‹\",\"⫇\":\"⫇\",\"⫕\":\"â«•\",\"⫓\":\"â«“\",\"≻\":\"≻\",\"⪸\":\"⪸\",\"≽\":\"≽\",\"⪰\":\"⪰\",\"⪺\":\"⪺\",\"⪶\":\"⪶\",\"⋩\":\"â‹©\",\"≿\":\"≿\",\"∑\":\"∑\",\"♪\":\"♪\",\"¹\":\"¹\",\"¹\":\"¹\",\"²\":\"²\",\"²\":\"²\",\"³\":\"³\",\"³\":\"³\",\"⊃\":\"⊃\",\"⫆\":\"⫆\",\"⪾\":\"⪾\",\"⫘\":\"⫘\",\"⊇\":\"⊇\",\"⫄\":\"â«„\",\"⟉\":\"⟉\",\"⫗\":\"â«—\",\"⥻\":\"⥻\",\"⫂\":\"â«‚\",\"⫌\":\"â«Œ\",\"⊋\":\"⊋\",\"⫀\":\"â«€\",\"⊃\":\"⊃\",\"⊇\":\"⊇\",\"⫆\":\"⫆\",\"⊋\":\"⊋\",\"⫌\":\"â«Œ\",\"⫈\":\"⫈\",\"⫔\":\"â«”\",\"⫖\":\"â«–\",\"⇙\":\"⇙\",\"⤦\":\"⤦\",\"↙\":\"↙\",\"↙\":\"↙\",\"⤪\":\"⤪\",\"ß\":\"ß\",\"ß\":\"ß\",\"⌖\":\"⌖\",\"τ\":\"Ï„\",\"⎴\":\"⎴\",\"ť\":\"Å¥\",\"ţ\":\"Å£\",\"т\":\"Ñ‚\",\"⃛\":\"⃛\",\"⌕\":\"⌕\",\"𝔱\":\"ð”±\",\"∴\":\"∴\",\"∴\":\"∴\",\"θ\":\"θ\",\"ϑ\":\"Ï‘\",\"ϑ\":\"Ï‘\",\"≈\":\"≈\",\"∼\":\"∼\",\" \":\" \",\"≈\":\"≈\",\"∼\":\"∼\",\"þ\":\"þ\",\"þ\":\"þ\",\"˜\":\"Ëœ\",\"×\":\"×\",\"×\":\"×\",\"⊠\":\"⊠\",\"⨱\":\"⨱\",\"⨰\":\"⨰\",\"∭\":\"âˆ\",\"⤨\":\"⤨\",\"⊤\":\"⊤\",\"⌶\":\"⌶\",\"⫱\":\"⫱\",\"𝕥\":\"ð•¥\",\"⫚\":\"â«š\",\"⤩\":\"⤩\",\"‴\":\"‴\",\"™\":\"â„¢\",\"▵\":\"â–µ\",\"▿\":\"â–¿\",\"◃\":\"â—ƒ\",\"⊴\":\"⊴\",\"≜\":\"≜\",\"▹\":\"â–¹\",\"⊵\":\"⊵\",\"◬\":\"â—¬\",\"≜\":\"≜\",\"⨺\":\"⨺\",\"⨹\":\"⨹\",\"⧍\":\"â§\",\"⨻\":\"⨻\",\"⏢\":\"â¢\",\"𝓉\":\"ð“‰\",\"ц\":\"ц\",\"ћ\":\"Ñ›\",\"ŧ\":\"ŧ\",\"≬\":\"≬\",\"↞\":\"↞\",\"↠\":\"↠\",\"⇑\":\"⇑\",\"⥣\":\"⥣\",\"ú\":\"ú\",\"ú\":\"ú\",\"↑\":\"↑\",\"ў\":\"Ñž\",\"ŭ\":\"Å\",\"û\":\"û\",\"û\":\"û\",\"у\":\"у\",\"⇅\":\"⇅\",\"ű\":\"ű\",\"⥮\":\"⥮\",\"⥾\":\"⥾\",\"𝔲\":\"ð”²\",\"ù\":\"ù\",\"ù\":\"ù\",\"↿\":\"↿\",\"↾\":\"↾\",\"▀\":\"â–€\",\"⌜\":\"⌜\",\"⌜\":\"⌜\",\"⌏\":\"âŒ\",\"◸\":\"â—¸\",\"ū\":\"Å«\",\"¨\":\"¨\",\"¨\":\"¨\",\"ų\":\"ų\",\"𝕦\":\"ð•¦\",\"↑\":\"↑\",\"↕\":\"↕\",\"↿\":\"↿\",\"↾\":\"↾\",\"⊎\":\"⊎\",\"υ\":\"Ï…\",\"ϒ\":\"Ï’\",\"υ\":\"Ï…\",\"⇈\":\"⇈\",\"⌝\":\"âŒ\",\"⌝\":\"âŒ\",\"⌎\":\"⌎\",\"ů\":\"ů\",\"◹\":\"â—¹\",\"𝓊\":\"ð“Š\",\"⋰\":\"â‹°\",\"ũ\":\"Å©\",\"▵\":\"â–µ\",\"▴\":\"â–´\",\"⇈\":\"⇈\",\"ü\":\"ü\",\"ü\":\"ü\",\"⦧\":\"⦧\",\"⇕\":\"⇕\",\"⫨\":\"⫨\",\"⫩\":\"â«©\",\"⊨\":\"⊨\",\"⦜\":\"⦜\",\"ϵ\":\"ϵ\",\"ϰ\":\"Ï°\",\"∅\":\"∅\",\"ϕ\":\"Ï•\",\"ϖ\":\"Ï–\",\"∝\":\"âˆ\",\"↕\":\"↕\",\"ϱ\":\"ϱ\",\"ς\":\"Ï‚\",\"⊊︀\":\"⊊︀\",\"⫋︀\":\"⫋︀\",\"⊋︀\":\"⊋︀\",\"⫌︀\":\"⫌︀\",\"ϑ\":\"Ï‘\",\"⊲\":\"⊲\",\"⊳\":\"⊳\",\"в\":\"в\",\"⊢\":\"⊢\",\"∨\":\"∨\",\"⊻\":\"⊻\",\"≚\":\"≚\",\"⋮\":\"â‹®\",\"|\":\"|\",\"|\":\"|\",\"𝔳\":\"ð”³\",\"⊲\":\"⊲\",\"⊂⃒\":\"⊂⃒\",\"⊃⃒\":\"⊃⃒\",\"𝕧\":\"ð•§\",\"∝\":\"âˆ\",\"⊳\":\"⊳\",\"𝓋\":\"ð“‹\",\"⫋︀\":\"⫋︀\",\"⊊︀\":\"⊊︀\",\"⫌︀\":\"⫌︀\",\"⊋︀\":\"⊋︀\",\"⦚\":\"⦚\",\"ŵ\":\"ŵ\",\"⩟\":\"â©Ÿ\",\"∧\":\"∧\",\"≙\":\"≙\",\"℘\":\"℘\",\"𝔴\":\"ð”´\",\"𝕨\":\"ð•¨\",\"℘\":\"℘\",\"≀\":\"≀\",\"≀\":\"≀\",\"𝓌\":\"ð“Œ\",\"⋂\":\"â‹‚\",\"◯\":\"â—¯\",\"⋃\":\"⋃\",\"▽\":\"â–½\",\"𝔵\":\"ð”µ\",\"⟺\":\"⟺\",\"⟷\":\"⟷\",\"ξ\":\"ξ\",\"⟸\":\"⟸\",\"⟵\":\"⟵\",\"⟼\":\"⟼\",\"⋻\":\"â‹»\",\"⨀\":\"⨀\",\"𝕩\":\"ð•©\",\"⨁\":\"â¨\",\"⨂\":\"⨂\",\"⟹\":\"⟹\",\"⟶\":\"⟶\",\"𝓍\":\"ð“\",\"⨆\":\"⨆\",\"⨄\":\"⨄\",\"△\":\"â–³\",\"⋁\":\"â‹\",\"⋀\":\"â‹€\",\"ý\":\"ý\",\"ý\":\"ý\",\"я\":\"Ñ\",\"ŷ\":\"Å·\",\"ы\":\"Ñ‹\",\"¥\":\"Â¥\",\"¥\":\"Â¥\",\"𝔶\":\"ð”¶\",\"ї\":\"Ñ—\",\"𝕪\":\"ð•ª\",\"𝓎\":\"ð“Ž\",\"ю\":\"ÑŽ\",\"ÿ\":\"ÿ\",\"ÿ\":\"ÿ\",\"ź\":\"ź\",\"ž\":\"ž\",\"з\":\"з\",\"ż\":\"ż\",\"ℨ\":\"ℨ\",\"ζ\":\"ζ\",\"𝔷\":\"ð”·\",\"ж\":\"ж\",\"⇝\":\"â‡\",\"𝕫\":\"ð•«\",\"𝓏\":\"ð“\",\"‍\":\"â€\",\"‌\":\"‌\"},characters:{\"Æ\":\"Æ\",\"&\":\"&\",\"Ã\":\"Á\",\"Ä‚\":\"Ă\",\"Â\":\"Â\",\"Ð\":\"А\",\"ð”„\":\"𝔄\",\"À\":\"À\",\"Α\":\"Α\",\"Ä€\":\"Ā\",\"â©“\":\"⩓\",\"Ä„\":\"Ą\",\"ð”¸\":\"𝔸\",\"â¡\":\"⁡\",\"Ã…\":\"Å\",\"ð’œ\":\"𝒜\",\"≔\":\"≔\",\"Ã\":\"Ã\",\"Ä\":\"Ä\",\"∖\":\"∖\",\"⫧\":\"⫧\",\"⌆\":\"⌆\",\"Б\":\"Б\",\"∵\":\"∵\",\"ℬ\":\"ℬ\",\"Î’\":\"Β\",\"ð”…\":\"𝔅\",\"ð”¹\":\"𝔹\",\"˘\":\"˘\",\"≎\":\"≎\",\"Ч\":\"Ч\",\"©\":\"©\",\"Ć\":\"Ć\",\"â‹’\":\"⋒\",\"â……\":\"ⅅ\",\"â„\":\"ℭ\",\"ÄŒ\":\"Č\",\"Ç\":\"Ç\",\"Ĉ\":\"Ĉ\",\"∰\":\"∰\",\"ÄŠ\":\"Ċ\",\"¸\":\"¸\",\"·\":\"·\",\"Χ\":\"Χ\",\"⊙\":\"⊙\",\"⊖\":\"⊖\",\"⊕\":\"⊕\",\"⊗\":\"⊗\",\"∲\":\"∲\",\"â€\":\"”\",\"’\":\"’\",\"∷\":\"∷\",\"â©´\":\"⩴\",\"≡\":\"≡\",\"∯\":\"∯\",\"∮\":\"∮\",\"â„‚\":\"ℂ\",\"âˆ\":\"∐\",\"∳\":\"∳\",\"⨯\":\"⨯\",\"ð’ž\":\"𝒞\",\"â‹“\":\"⋓\",\"â‰\":\"≍\",\"⤑\":\"⤑\",\"Ђ\":\"Ђ\",\"Ð…\":\"Ѕ\",\"Ð\":\"Џ\",\"‡\":\"‡\",\"↡\":\"↡\",\"⫤\":\"⫤\",\"ÄŽ\":\"Ď\",\"Д\":\"Д\",\"∇\":\"∇\",\"Δ\":\"Δ\",\"ð”‡\":\"𝔇\",\"´\":\"´\",\"Ë™\":\"˙\",\"Ë\":\"˝\",\"`\":\"`\",\"Ëœ\":\"˜\",\"â‹„\":\"⋄\",\"â…†\":\"ⅆ\",\"ð”»\":\"𝔻\",\"¨\":\"¨\",\"⃜\":\"⃜\",\"â‰\":\"≐\",\"⇓\":\"⇓\",\"â‡\":\"⇐\",\"⇔\":\"⇔\",\"⟸\":\"⟸\",\"⟺\":\"⟺\",\"⟹\":\"⟹\",\"⇒\":\"⇒\",\"⊨\":\"⊨\",\"⇑\":\"⇑\",\"⇕\":\"⇕\",\"∥\":\"∥\",\"↓\":\"↓\",\"⤓\":\"⤓\",\"⇵\":\"⇵\",\"Ì‘\":\"̑\",\"â¥\":\"⥐\",\"⥞\":\"⥞\",\"↽\":\"↽\",\"⥖\":\"⥖\",\"⥟\":\"⥟\",\"â‡\":\"⇁\",\"⥗\":\"⥗\",\"⊤\":\"⊤\",\"↧\":\"↧\",\"ð’Ÿ\":\"𝒟\",\"Ä\":\"Đ\",\"ÅŠ\":\"Ŋ\",\"Ã\":\"Ð\",\"É\":\"É\",\"Äš\":\"Ě\",\"Ê\":\"Ê\",\"Ð\":\"Э\",\"Ä–\":\"Ė\",\"ð”ˆ\":\"𝔈\",\"È\":\"È\",\"∈\":\"∈\",\"Ä’\":\"Ē\",\"â—»\":\"◻\",\"â–«\":\"▫\",\"Ę\":\"Ę\",\"ð”¼\":\"𝔼\",\"Ε\":\"Ε\",\"⩵\":\"⩵\",\"≂\":\"≂\",\"⇌\":\"⇌\",\"â„°\":\"ℰ\",\"⩳\":\"⩳\",\"Η\":\"Η\",\"Ë\":\"Ë\",\"∃\":\"∃\",\"â…‡\":\"ⅇ\",\"Ф\":\"Ф\",\"ð”‰\":\"𝔉\",\"â—¼\":\"◼\",\"â–ª\":\"▪\",\"ð”½\":\"𝔽\",\"∀\":\"∀\",\"ℱ\":\"ℱ\",\"Ѓ\":\"Ѓ\",\">\":\">\",\"Γ\":\"Γ\",\"Ïœ\":\"Ϝ\",\"Äž\":\"Ğ\",\"Ä¢\":\"Ģ\",\"Äœ\":\"Ĝ\",\"Г\":\"Г\",\"Ä \":\"Ġ\",\"ð”Š\":\"𝔊\",\"â‹™\":\"⋙\",\"ð”¾\":\"𝔾\",\"≥\":\"≥\",\"â‹›\":\"⋛\",\"≧\":\"≧\",\"⪢\":\"⪢\",\"≷\":\"≷\",\"⩾\":\"⩾\",\"≳\":\"≳\",\"ð’¢\":\"𝒢\",\"≫\":\"≫\",\"Ъ\":\"Ъ\",\"ˇ\":\"ˇ\",\"^\":\"^\",\"Ĥ\":\"Ĥ\",\"â„Œ\":\"ℌ\",\"â„‹\":\"ℋ\",\"â„\":\"ℍ\",\"─\":\"─\",\"Ħ\":\"Ħ\",\"â‰\":\"≏\",\"Е\":\"Е\",\"IJ\":\"IJ\",\"Ð\":\"Ё\",\"Ã\":\"Í\",\"ÃŽ\":\"Î\",\"И\":\"И\",\"Ä°\":\"İ\",\"â„‘\":\"ℑ\",\"ÃŒ\":\"Ì\",\"Ī\":\"Ī\",\"â…ˆ\":\"ⅈ\",\"∬\":\"∬\",\"∫\":\"∫\",\"â‹‚\":\"⋂\",\"â£\":\"⁣\",\"â¢\":\"⁢\",\"Ä®\":\"Į\",\"ð•€\":\"𝕀\",\"Ι\":\"Ι\",\"â„\":\"ℐ\",\"Ĩ\":\"Ĩ\",\"І\":\"І\",\"Ã\":\"Ï\",\"Ä´\":\"Ĵ\",\"Й\":\"Й\",\"ð”\":\"𝔍\",\"ð•\":\"𝕁\",\"ð’¥\":\"𝒥\",\"Ј\":\"Ј\",\"Є\":\"Є\",\"Ð¥\":\"Х\",\"ÐŒ\":\"Ќ\",\"Κ\":\"Κ\",\"Ķ\":\"Ķ\",\"К\":\"К\",\"ð”Ž\":\"𝔎\",\"ð•‚\":\"𝕂\",\"ð’¦\":\"𝒦\",\"Љ\":\"Љ\",\"<\":\"<\",\"Ĺ\":\"Ĺ\",\"Λ\":\"Λ\",\"⟪\":\"⟪\",\"â„’\":\"ℒ\",\"↞\":\"↞\",\"Ľ\":\"Ľ\",\"Ä»\":\"Ļ\",\"Л\":\"Л\",\"⟨\":\"⟨\",\"â†\":\"←\",\"⇤\":\"⇤\",\"⇆\":\"⇆\",\"⌈\":\"⌈\",\"⟦\":\"⟦\",\"⥡\":\"⥡\",\"⇃\":\"⇃\",\"⥙\":\"⥙\",\"⌊\":\"⌊\",\"↔\":\"↔\",\"⥎\":\"⥎\",\"⊣\":\"⊣\",\"↤\":\"↤\",\"⥚\":\"⥚\",\"⊲\":\"⊲\",\"â§\":\"⧏\",\"⊴\":\"⊴\",\"⥑\":\"⥑\",\"⥠\":\"⥠\",\"↿\":\"↿\",\"⥘\":\"⥘\",\"↼\":\"↼\",\"⥒\":\"⥒\",\"â‹š\":\"⋚\",\"≦\":\"≦\",\"≶\":\"≶\",\"⪡\":\"⪡\",\"⩽\":\"⩽\",\"≲\":\"≲\",\"ð”\":\"𝔏\",\"⋘\":\"⋘\",\"⇚\":\"⇚\",\"Ä¿\":\"Ŀ\",\"⟵\":\"⟵\",\"⟷\":\"⟷\",\"⟶\":\"⟶\",\"ð•ƒ\":\"𝕃\",\"↙\":\"↙\",\"↘\":\"↘\",\"↰\":\"↰\",\"Å\":\"Ł\",\"≪\":\"≪\",\"⤅\":\"⤅\",\"Ðœ\":\"М\",\"âŸ\":\" \",\"ℳ\":\"ℳ\",\"ð”\":\"𝔐\",\"∓\":\"∓\",\"ð•„\":\"𝕄\",\"Îœ\":\"Μ\",\"Њ\":\"Њ\",\"Ń\":\"Ń\",\"Ň\":\"Ň\",\"Å…\":\"Ņ\",\"Ð\":\"Н\",\"​\":\"​\",\"\\n\":\"
\",\"ð”‘\":\"𝔑\",\"â \":\"⁠\",\" \":\" \",\"â„•\":\"ℕ\",\"⫬\":\"⫬\",\"≢\":\"≢\",\"â‰\":\"≭\",\"∦\":\"∦\",\"∉\":\"∉\",\"≠\":\"≠\",\"≂̸\":\"≂̸\",\"∄\":\"∄\",\"≯\":\"≯\",\"≱\":\"≱\",\"≧̸\":\"≧̸\",\"≫̸\":\"≫̸\",\"≹\":\"≹\",\"⩾̸\":\"⩾̸\",\"≵\":\"≵\",\"≎̸\":\"≎̸\",\"â‰Ì¸\":\"≏̸\",\"⋪\":\"⋪\",\"â§Ì¸\":\"⧏̸\",\"⋬\":\"⋬\",\"≮\":\"≮\",\"≰\":\"≰\",\"≸\":\"≸\",\"≪̸\":\"≪̸\",\"⩽̸\":\"⩽̸\",\"≴\":\"≴\",\"⪢̸\":\"⪢̸\",\"⪡̸\":\"⪡̸\",\"⊀\":\"⊀\",\"⪯̸\":\"⪯̸\",\"â‹ \":\"⋠\",\"∌\":\"∌\",\"â‹«\":\"⋫\",\"â§Ì¸\":\"⧐̸\",\"â‹\":\"⋭\",\"âŠÌ¸\":\"⊏̸\",\"â‹¢\":\"⋢\",\"âŠÌ¸\":\"⊐̸\",\"â‹£\":\"⋣\",\"⊂⃒\":\"⊂⃒\",\"⊈\":\"⊈\",\"âŠ\":\"⊁\",\"⪰̸\":\"⪰̸\",\"â‹¡\":\"⋡\",\"≿̸\":\"≿̸\",\"⊃⃒\":\"⊃⃒\",\"⊉\":\"⊉\",\"â‰\":\"≁\",\"≄\":\"≄\",\"≇\":\"≇\",\"≉\":\"≉\",\"∤\":\"∤\",\"ð’©\":\"𝒩\",\"Ñ\":\"Ñ\",\"Î\":\"Ν\",\"Å’\":\"Œ\",\"Ó\":\"Ó\",\"Ô\":\"Ô\",\"О\":\"О\",\"Å\":\"Ő\",\"ð”’\":\"𝔒\",\"Ã’\":\"Ò\",\"ÅŒ\":\"Ō\",\"Ω\":\"Ω\",\"Ο\":\"Ο\",\"ð•†\":\"𝕆\",\"“\":\"“\",\"‘\":\"‘\",\"â©”\":\"⩔\",\"ð’ª\":\"𝒪\",\"Ø\":\"Ø\",\"Õ\":\"Õ\",\"⨷\":\"⨷\",\"Ö\":\"Ö\",\"‾\":\"‾\",\"âž\":\"⏞\",\"⎴\":\"⎴\",\"âœ\":\"⏜\",\"∂\":\"∂\",\"П\":\"П\",\"ð”“\":\"𝔓\",\"Φ\":\"Φ\",\"Î \":\"Π\",\"±\":\"±\",\"â„™\":\"ℙ\",\"⪻\":\"⪻\",\"≺\":\"≺\",\"⪯\":\"⪯\",\"≼\":\"≼\",\"≾\":\"≾\",\"″\":\"″\",\"âˆ\":\"∏\",\"âˆ\":\"∝\",\"ð’«\":\"𝒫\",\"Ψ\":\"Ψ\",'\"':\""\",\"ð””\":\"𝔔\",\"â„š\":\"ℚ\",\"ð’¬\":\"𝒬\",\"â¤\":\"⤐\",\"®\":\"®\",\"Å”\":\"Ŕ\",\"⟫\":\"⟫\",\"↠\":\"↠\",\"⤖\":\"⤖\",\"Ř\":\"Ř\",\"Å–\":\"Ŗ\",\"Ð \":\"Р\",\"â„œ\":\"ℜ\",\"∋\":\"∋\",\"⇋\":\"⇋\",\"⥯\":\"⥯\",\"Ρ\":\"Ρ\",\"⟩\":\"⟩\",\"→\":\"→\",\"⇥\":\"⇥\",\"⇄\":\"⇄\",\"⌉\":\"⌉\",\"⟧\":\"⟧\",\"â¥\":\"⥝\",\"⇂\":\"⇂\",\"⥕\":\"⥕\",\"⌋\":\"⌋\",\"⊢\":\"⊢\",\"↦\":\"↦\",\"⥛\":\"⥛\",\"⊳\":\"⊳\",\"â§\":\"⧐\",\"⊵\":\"⊵\",\"â¥\":\"⥏\",\"⥜\":\"⥜\",\"↾\":\"↾\",\"⥔\":\"⥔\",\"⇀\":\"⇀\",\"⥓\":\"⥓\",\"â„\":\"ℝ\",\"⥰\":\"⥰\",\"⇛\":\"⇛\",\"â„›\":\"ℛ\",\"↱\":\"↱\",\"⧴\":\"⧴\",\"Щ\":\"Щ\",\"Ш\":\"Ш\",\"Ь\":\"Ь\",\"Åš\":\"Ś\",\"⪼\":\"⪼\",\"Å \":\"Š\",\"Åž\":\"Ş\",\"Åœ\":\"Ŝ\",\"С\":\"С\",\"ð”–\":\"𝔖\",\"↑\":\"↑\",\"Σ\":\"Σ\",\"∘\":\"∘\",\"ð•Š\":\"𝕊\",\"√\":\"√\",\"â–¡\":\"□\",\"⊓\":\"⊓\",\"âŠ\":\"⊏\",\"⊑\":\"⊑\",\"âŠ\":\"⊐\",\"⊒\":\"⊒\",\"⊔\":\"⊔\",\"ð’®\":\"𝒮\",\"⋆\":\"⋆\",\"â‹\":\"⋐\",\"⊆\":\"⊆\",\"≻\":\"≻\",\"⪰\":\"⪰\",\"≽\":\"≽\",\"≿\":\"≿\",\"∑\":\"∑\",\"â‹‘\":\"⋑\",\"⊃\":\"⊃\",\"⊇\":\"⊇\",\"Þ\":\"Þ\",\"â„¢\":\"™\",\"Ћ\":\"Ћ\",\"Ц\":\"Ц\",\"\\t\":\"	\",\"Τ\":\"Τ\",\"Ť\":\"Ť\",\"Å¢\":\"Ţ\",\"Т\":\"Т\",\"ð”—\":\"𝔗\",\"∴\":\"∴\",\"Θ\":\"Θ\",\"âŸâ€Š\":\"  \",\" \":\" \",\"∼\":\"∼\",\"≃\":\"≃\",\"≅\":\"≅\",\"≈\":\"≈\",\"ð•‹\":\"𝕋\",\"⃛\":\"⃛\",\"ð’¯\":\"𝒯\",\"Ŧ\":\"Ŧ\",\"Ú\":\"Ú\",\"↟\":\"↟\",\"⥉\":\"⥉\",\"ÐŽ\":\"Ў\",\"Ŭ\":\"Ŭ\",\"Û\":\"Û\",\"У\":\"У\",\"Å°\":\"Ű\",\"ð”˜\":\"𝔘\",\"Ù\":\"Ù\",\"Ū\":\"Ū\",_:\"_\",\"âŸ\":\"⏟\",\"⎵\":\"⎵\",\"â\":\"⏝\",\"⋃\":\"⋃\",\"⊎\":\"⊎\",\"Ų\":\"Ų\",\"ð•Œ\":\"𝕌\",\"⤒\":\"⤒\",\"⇅\":\"⇅\",\"↕\":\"↕\",\"⥮\":\"⥮\",\"⊥\":\"⊥\",\"↥\":\"↥\",\"↖\":\"↖\",\"↗\":\"↗\",\"Ï’\":\"ϒ\",\"Î¥\":\"Υ\",\"Å®\":\"Ů\",\"ð’°\":\"𝒰\",\"Ũ\":\"Ũ\",\"Ãœ\":\"Ü\",\"⊫\":\"⊫\",\"â««\":\"⫫\",\"Ð’\":\"В\",\"⊩\":\"⊩\",\"⫦\":\"⫦\",\"â‹\":\"⋁\",\"‖\":\"‖\",\"∣\":\"∣\",\"|\":\"|\",\"â˜\":\"❘\",\"≀\":\"≀\",\" \":\" \",\"ð”™\":\"𝔙\",\"ð•\":\"𝕍\",\"ð’±\":\"𝒱\",\"⊪\":\"⊪\",\"Å´\":\"Ŵ\",\"â‹€\":\"⋀\",\"ð”š\":\"𝔚\",\"ð•Ž\":\"𝕎\",\"ð’²\":\"𝒲\",\"ð”›\":\"𝔛\",\"Ξ\":\"Ξ\",\"ð•\":\"𝕏\",\"ð’³\":\"𝒳\",\"Я\":\"Я\",\"Ї\":\"Ї\",\"Ю\":\"Ю\",\"Ã\":\"Ý\",\"Ŷ\":\"Ŷ\",\"Ы\":\"Ы\",\"ð”œ\":\"𝔜\",\"ð•\":\"𝕐\",\"ð’´\":\"𝒴\",\"Ÿ\":\"Ÿ\",\"Ж\":\"Ж\",\"Ź\":\"Ź\",\"Ž\":\"Ž\",\"З\":\"З\",\"Å»\":\"Ż\",\"Ζ\":\"Ζ\",\"ℨ\":\"ℨ\",\"ℤ\":\"ℤ\",\"ð’µ\":\"𝒵\",\"á\":\"á\",\"ă\":\"ă\",\"∾\":\"∾\",\"∾̳\":\"∾̳\",\"∿\":\"∿\",\"â\":\"â\",\"а\":\"а\",\"æ\":\"æ\",\"ð”ž\":\"𝔞\",\"à \":\"à\",\"ℵ\":\"ℵ\",\"α\":\"α\",\"Ä\":\"ā\",\"⨿\":\"⨿\",\"∧\":\"∧\",\"â©•\":\"⩕\",\"â©œ\":\"⩜\",\"⩘\":\"⩘\",\"â©š\":\"⩚\",\"∠\":\"∠\",\"⦤\":\"⦤\",\"∡\":\"∡\",\"⦨\":\"⦨\",\"⦩\":\"⦩\",\"⦪\":\"⦪\",\"⦫\":\"⦫\",\"⦬\":\"⦬\",\"â¦\":\"⦭\",\"⦮\":\"⦮\",\"⦯\":\"⦯\",\"∟\":\"∟\",\"⊾\":\"⊾\",\"â¦\":\"⦝\",\"∢\":\"∢\",\"â¼\":\"⍼\",\"Ä…\":\"ą\",\"ð•’\":\"𝕒\",\"â©°\":\"⩰\",\"⩯\":\"⩯\",\"≊\":\"≊\",\"≋\":\"≋\",\"'\":\"'\",\"Ã¥\":\"å\",\"ð’¶\":\"𝒶\",\"*\":\"*\",\"ã\":\"ã\",\"ä\":\"ä\",\"⨑\":\"⨑\",\"â«\":\"⫭\",\"≌\":\"≌\",\"϶\":\"϶\",\"‵\":\"‵\",\"∽\":\"∽\",\"â‹\":\"⋍\",\"⊽\":\"⊽\",\"⌅\":\"⌅\",\"⎶\":\"⎶\",\"б\":\"б\",\"„\":\"„\",\"⦰\":\"⦰\",\"β\":\"β\",\"ℶ\":\"ℶ\",\"≬\":\"≬\",\"ð”Ÿ\":\"𝔟\",\"â—¯\":\"◯\",\"⨀\":\"⨀\",\"â¨\":\"⨁\",\"⨂\":\"⨂\",\"⨆\":\"⨆\",\"★\":\"★\",\"â–½\":\"▽\",\"â–³\":\"△\",\"⨄\":\"⨄\",\"â¤\":\"⤍\",\"⧫\":\"⧫\",\"â–´\":\"▴\",\"â–¾\":\"▾\",\"â—‚\":\"◂\",\"â–¸\":\"▸\",\"â£\":\"␣\",\"â–’\":\"▒\",\"â–‘\":\"░\",\"â–“\":\"▓\",\"â–ˆ\":\"█\",\"=⃥\":\"=⃥\",\"≡⃥\":\"≡⃥\",\"âŒ\":\"⌐\",\"ð•“\":\"𝕓\",\"⋈\":\"⋈\",\"â•—\":\"╗\",\"â•”\":\"╔\",\"â•–\":\"╖\",\"â•“\":\"╓\",\"â•\":\"═\",\"╦\":\"╦\",\"â•©\":\"╩\",\"╤\":\"╤\",\"╧\":\"╧\",\"â•\":\"╝\",\"â•š\":\"╚\",\"â•œ\":\"╜\",\"â•™\":\"╙\",\"â•‘\":\"║\",\"╬\":\"╬\",\"â•£\":\"╣\",\"â• \":\"╠\",\"â•«\":\"╫\",\"â•¢\":\"╢\",\"â•Ÿ\":\"╟\",\"⧉\":\"⧉\",\"â••\":\"╕\",\"â•’\":\"╒\",\"â”\":\"┐\",\"┌\":\"┌\",\"â•¥\":\"╥\",\"╨\":\"╨\",\"┬\":\"┬\",\"â”´\":\"┴\",\"⊟\":\"⊟\",\"⊞\":\"⊞\",\"⊠\":\"⊠\",\"â•›\":\"╛\",\"╘\":\"╘\",\"┘\":\"┘\",\"â””\":\"└\",\"│\":\"│\",\"╪\":\"╪\",\"â•¡\":\"╡\",\"â•ž\":\"╞\",\"┼\":\"┼\",\"┤\":\"┤\",\"├\":\"├\",\"¦\":\"¦\",\"ð’·\":\"𝒷\",\"â\":\"⁏\",\"\\\\\":\"\\",\"⧅\":\"⧅\",\"⟈\":\"⟈\",\"•\":\"•\",\"⪮\":\"⪮\",\"ć\":\"ć\",\"∩\":\"∩\",\"â©„\":\"⩄\",\"⩉\":\"⩉\",\"â©‹\":\"⩋\",\"⩇\":\"⩇\",\"â©€\":\"⩀\",\"∩︀\":\"∩︀\",\"â\":\"⁁\",\"â©\":\"⩍\",\"Ä\":\"č\",\"ç\":\"ç\",\"ĉ\":\"ĉ\",\"â©Œ\":\"⩌\",\"â©\":\"⩐\",\"Ä‹\":\"ċ\",\"⦲\":\"⦲\",\"¢\":\"¢\",\"ð” \":\"𝔠\",\"ч\":\"ч\",\"✓\":\"✓\",\"χ\":\"χ\",\"â—‹\":\"○\",\"⧃\":\"⧃\",\"ˆ\":\"ˆ\",\"≗\":\"≗\",\"↺\":\"↺\",\"↻\":\"↻\",\"Ⓢ\":\"Ⓢ\",\"⊛\":\"⊛\",\"⊚\":\"⊚\",\"âŠ\":\"⊝\",\"â¨\":\"⨐\",\"⫯\":\"⫯\",\"⧂\":\"⧂\",\"♣\":\"♣\",\":\":\":\",\",\":\",\",\"@\":\"@\",\"âˆ\":\"∁\",\"â©\":\"⩭\",\"ð•”\":\"𝕔\",\"â„—\":\"℗\",\"↵\":\"↵\",\"✗\":\"✗\",\"ð’¸\":\"𝒸\",\"â«\":\"⫏\",\"â«‘\":\"⫑\",\"â«\":\"⫐\",\"â«’\":\"⫒\",\"⋯\":\"⋯\",\"⤸\":\"⤸\",\"⤵\":\"⤵\",\"â‹ž\":\"⋞\",\"â‹Ÿ\":\"⋟\",\"↶\":\"↶\",\"⤽\":\"⤽\",\"∪\":\"∪\",\"⩈\":\"⩈\",\"⩆\":\"⩆\",\"â©Š\":\"⩊\",\"âŠ\":\"⊍\",\"â©…\":\"⩅\",\"∪︀\":\"∪︀\",\"↷\":\"↷\",\"⤼\":\"⤼\",\"â‹Ž\":\"⋎\",\"â‹\":\"⋏\",\"¤\":\"¤\",\"∱\":\"∱\",\"âŒ\":\"⌭\",\"⥥\":\"⥥\",\"†\":\"†\",\"ℸ\":\"ℸ\",\"â€\":\"‐\",\"â¤\":\"⤏\",\"Ä\":\"ď\",\"д\":\"д\",\"⇊\":\"⇊\",\"â©·\":\"⩷\",\"°\":\"°\",\"δ\":\"δ\",\"⦱\":\"⦱\",\"⥿\":\"⥿\",\"ð”¡\":\"𝔡\",\"♦\":\"♦\",\"Ï\":\"ϝ\",\"⋲\":\"⋲\",\"÷\":\"÷\",\"⋇\":\"⋇\",\"Ñ’\":\"ђ\",\"⌞\":\"⌞\",\"âŒ\":\"⌍\",$:\"$\",\"ð••\":\"𝕕\",\"≑\":\"≑\",\"∸\":\"∸\",\"∔\":\"∔\",\"⊡\":\"⊡\",\"⌟\":\"⌟\",\"⌌\":\"⌌\",\"ð’¹\":\"𝒹\",\"Ñ•\":\"ѕ\",\"⧶\":\"⧶\",\"Ä‘\":\"đ\",\"⋱\":\"⋱\",\"â–¿\":\"▿\",\"⦦\":\"⦦\",\"ÑŸ\":\"џ\",\"⟿\":\"⟿\",\"é\":\"é\",\"â©®\":\"⩮\",\"Ä›\":\"ě\",\"≖\":\"≖\",\"ê\":\"ê\",\"≕\":\"≕\",\"Ñ\":\"э\",\"Ä—\":\"ė\",\"≒\":\"≒\",\"ð”¢\":\"𝔢\",\"⪚\":\"⪚\",\"è\":\"è\",\"⪖\":\"⪖\",\"⪘\":\"⪘\",\"⪙\":\"⪙\",\"â§\":\"⏧\",\"â„“\":\"ℓ\",\"⪕\":\"⪕\",\"⪗\":\"⪗\",\"Ä“\":\"ē\",\"∅\":\"∅\",\" \":\" \",\" \":\" \",\" \":\" \",\"Å‹\":\"ŋ\",\" \":\" \",\"Ä™\":\"ę\",\"ð•–\":\"𝕖\",\"â‹•\":\"⋕\",\"⧣\":\"⧣\",\"⩱\":\"⩱\",\"ε\":\"ε\",\"ϵ\":\"ϵ\",\"=\":\"=\",\"≟\":\"≟\",\"⩸\":\"⩸\",\"⧥\":\"⧥\",\"≓\":\"≓\",\"⥱\":\"⥱\",\"ℯ\":\"ℯ\",\"η\":\"η\",\"ð\":\"ð\",\"ë\":\"ë\",\"€\":\"€\",\"!\":\"!\",\"Ñ„\":\"ф\",\"♀\":\"♀\",\"ffi\":\"ffi\",\"ff\":\"ff\",\"ffl\":\"ffl\",\"ð”£\":\"𝔣\",\"ï¬\":\"fi\",fj:\"fj\",\"â™\":\"♭\",\"fl\":\"fl\",\"â–±\":\"▱\",\"Æ’\":\"ƒ\",\"ð•—\":\"𝕗\",\"â‹”\":\"⋔\",\"â«™\":\"⫙\",\"â¨\":\"⨍\",\"½\":\"½\",\"â…“\":\"⅓\",\"¼\":\"¼\",\"â…•\":\"⅕\",\"â…™\":\"⅙\",\"â…›\":\"⅛\",\"â…”\":\"⅔\",\"â…–\":\"⅖\",\"¾\":\"¾\",\"â…—\":\"⅗\",\"â…œ\":\"⅜\",\"â…˜\":\"⅘\",\"â…š\":\"⅚\",\"â…\":\"⅝\",\"â…ž\":\"⅞\",\"â„\":\"⁄\",\"⌢\":\"⌢\",\"ð’»\":\"𝒻\",\"⪌\":\"⪌\",\"ǵ\":\"ǵ\",\"γ\":\"γ\",\"⪆\":\"⪆\",\"ÄŸ\":\"ğ\",\"Ä\":\"ĝ\",\"г\":\"г\",\"Ä¡\":\"ġ\",\"⪩\":\"⪩\",\"⪀\":\"⪀\",\"⪂\":\"⪂\",\"⪄\":\"⪄\",\"⋛︀\":\"⋛︀\",\"⪔\":\"⪔\",\"ð”¤\":\"𝔤\",\"â„·\":\"ℷ\",\"Ñ“\":\"ѓ\",\"⪒\":\"⪒\",\"⪥\":\"⪥\",\"⪤\":\"⪤\",\"≩\":\"≩\",\"⪊\":\"⪊\",\"⪈\":\"⪈\",\"⋧\":\"⋧\",\"ð•˜\":\"𝕘\",\"â„Š\":\"ℊ\",\"⪎\":\"⪎\",\"âª\":\"⪐\",\"⪧\":\"⪧\",\"⩺\":\"⩺\",\"â‹—\":\"⋗\",\"⦕\":\"⦕\",\"⩼\":\"⩼\",\"⥸\":\"⥸\",\"≩︀\":\"≩︀\",\"ÑŠ\":\"ъ\",\"⥈\":\"⥈\",\"â†\":\"↭\",\"â„\":\"ℏ\",\"Ä¥\":\"ĥ\",\"♥\":\"♥\",\"…\":\"…\",\"⊹\":\"⊹\",\"ð”¥\":\"𝔥\",\"⤥\":\"⤥\",\"⤦\":\"⤦\",\"⇿\":\"⇿\",\"∻\":\"∻\",\"↩\":\"↩\",\"↪\":\"↪\",\"ð•™\":\"𝕙\",\"―\":\"―\",\"ð’½\":\"𝒽\",\"ħ\":\"ħ\",\"âƒ\":\"⁃\",\"Ã\":\"í\",\"î\":\"î\",\"и\":\"и\",\"е\":\"е\",\"¡\":\"¡\",\"ð”¦\":\"𝔦\",\"ì\":\"ì\",\"⨌\":\"⨌\",\"âˆ\":\"∭\",\"⧜\":\"⧜\",\"â„©\":\"℩\",\"ij\":\"ij\",\"Ä«\":\"ī\",\"ı\":\"ı\",\"⊷\":\"⊷\",\"Ƶ\":\"Ƶ\",\"â„…\":\"℅\",\"∞\":\"∞\",\"â§\":\"⧝\",\"⊺\":\"⊺\",\"⨗\":\"⨗\",\"⨼\":\"⨼\",\"Ñ‘\":\"ё\",\"į\":\"į\",\"ð•š\":\"𝕚\",\"ι\":\"ι\",\"¿\":\"¿\",\"ð’¾\":\"𝒾\",\"⋹\":\"⋹\",\"⋵\":\"⋵\",\"â‹´\":\"⋴\",\"⋳\":\"⋳\",\"Ä©\":\"ĩ\",\"Ñ–\":\"і\",\"ï\":\"ï\",\"ĵ\":\"ĵ\",\"й\":\"й\",\"ð”§\":\"𝔧\",\"È·\":\"ȷ\",\"ð•›\":\"𝕛\",\"ð’¿\":\"𝒿\",\"ј\":\"ј\",\"Ñ”\":\"є\",\"κ\":\"κ\",\"Ï°\":\"ϰ\",\"Ä·\":\"ķ\",\"к\":\"к\",\"ð”¨\":\"𝔨\",\"ĸ\":\"ĸ\",\"Ñ…\":\"х\",\"Ñœ\":\"ќ\",\"ð•œ\":\"𝕜\",\"ð“€\":\"𝓀\",\"⤛\":\"⤛\",\"⤎\":\"⤎\",\"⪋\":\"⪋\",\"⥢\":\"⥢\",\"ĺ\":\"ĺ\",\"⦴\":\"⦴\",\"λ\":\"λ\",\"⦑\":\"⦑\",\"⪅\":\"⪅\",\"«\":\"«\",\"⤟\":\"⤟\",\"â¤\":\"⤝\",\"↫\":\"↫\",\"⤹\":\"⤹\",\"⥳\":\"⥳\",\"↢\":\"↢\",\"⪫\":\"⪫\",\"⤙\":\"⤙\",\"âª\":\"⪭\",\"âªï¸€\":\"⪭︀\",\"⤌\":\"⤌\",\"â²\":\"❲\",\"{\":\"{\",\"[\":\"[\",\"⦋\":\"⦋\",\"â¦\":\"⦏\",\"â¦\":\"⦍\",\"ľ\":\"ľ\",\"ļ\":\"ļ\",\"л\":\"л\",\"⤶\":\"⤶\",\"⥧\":\"⥧\",\"⥋\":\"⥋\",\"↲\":\"↲\",\"≤\":\"≤\",\"⇇\":\"⇇\",\"â‹‹\":\"⋋\",\"⪨\":\"⪨\",\"â©¿\":\"⩿\",\"âª\":\"⪁\",\"⪃\":\"⪃\",\"⋚︀\":\"⋚︀\",\"⪓\":\"⪓\",\"â‹–\":\"⋖\",\"⥼\":\"⥼\",\"ð”©\":\"𝔩\",\"⪑\":\"⪑\",\"⥪\":\"⥪\",\"â–„\":\"▄\",\"Ñ™\":\"љ\",\"⥫\":\"⥫\",\"â—º\":\"◺\",\"Å€\":\"ŀ\",\"⎰\":\"⎰\",\"≨\":\"≨\",\"⪉\":\"⪉\",\"⪇\":\"⪇\",\"⋦\":\"⋦\",\"⟬\":\"⟬\",\"⇽\":\"⇽\",\"⟼\":\"⟼\",\"↬\":\"↬\",\"⦅\":\"⦅\",\"ð•\":\"𝕝\",\"â¨\":\"⨭\",\"⨴\":\"⨴\",\"∗\":\"∗\",\"â—Š\":\"◊\",\"(\":\"(\",\"⦓\":\"⦓\",\"â¥\":\"⥭\",\"‎\":\"‎\",\"⊿\":\"⊿\",\"‹\":\"‹\",\"ð“\":\"𝓁\",\"âª\":\"⪍\",\"âª\":\"⪏\",\"‚\":\"‚\",\"Å‚\":\"ł\",\"⪦\":\"⪦\",\"⩹\":\"⩹\",\"⋉\":\"⋉\",\"⥶\":\"⥶\",\"â©»\":\"⩻\",\"⦖\":\"⦖\",\"â—ƒ\":\"◃\",\"⥊\":\"⥊\",\"⥦\":\"⥦\",\"≨︀\":\"≨︀\",\"∺\":\"∺\",\"¯\":\"¯\",\"♂\":\"♂\",\"✠\":\"✠\",\"â–®\":\"▮\",\"⨩\":\"⨩\",\"м\":\"м\",\"—\":\"—\",\"ð”ª\":\"𝔪\",\"℧\":\"℧\",\"µ\":\"µ\",\"â«°\":\"⫰\",\"−\":\"−\",\"⨪\":\"⨪\",\"â«›\":\"⫛\",\"⊧\":\"⊧\",\"ð•ž\":\"𝕞\",\"ð“‚\":\"𝓂\",\"μ\":\"μ\",\"⊸\":\"⊸\",\"⋙̸\":\"⋙̸\",\"≫⃒\":\"≫⃒\",\"â‡\":\"⇍\",\"⇎\":\"⇎\",\"⋘̸\":\"⋘̸\",\"≪⃒\":\"≪⃒\",\"â‡\":\"⇏\",\"⊯\":\"⊯\",\"⊮\":\"⊮\",\"Å„\":\"ń\",\"∠⃒\":\"∠⃒\",\"⩰̸\":\"⩰̸\",\"≋̸\":\"≋̸\",\"ʼn\":\"ʼn\",\"â™®\":\"♮\",\"⩃\":\"⩃\",\"ň\":\"ň\",\"ņ\":\"ņ\",\"â©Ì¸\":\"⩭̸\",\"â©‚\":\"⩂\",\"н\":\"н\",\"–\":\"–\",\"⇗\":\"⇗\",\"⤤\":\"⤤\",\"â‰Ì¸\":\"≐̸\",\"⤨\":\"⤨\",\"ð”«\":\"𝔫\",\"↮\":\"↮\",\"⫲\":\"⫲\",\"⋼\":\"⋼\",\"⋺\":\"⋺\",\"Ñš\":\"њ\",\"≦̸\":\"≦̸\",\"↚\":\"↚\",\"‥\":\"‥\",\"ð•Ÿ\":\"𝕟\",\"¬\":\"¬\",\"⋹̸\":\"⋹̸\",\"⋵̸\":\"⋵̸\",\"â‹·\":\"⋷\",\"⋶\":\"⋶\",\"⋾\":\"⋾\",\"⋽\":\"⋽\",\"⫽⃥\":\"⫽⃥\",\"∂̸\":\"∂̸\",\"⨔\":\"⨔\",\"↛\":\"↛\",\"⤳̸\":\"⤳̸\",\"â†Ì¸\":\"↝̸\",\"ð“ƒ\":\"𝓃\",\"⊄\":\"⊄\",\"⫅̸\":\"⫅̸\",\"⊅\":\"⊅\",\"⫆̸\":\"⫆̸\",\"ñ\":\"ñ\",\"ν\":\"ν\",\"#\":\"#\",\"â„–\":\"№\",\" \":\" \",\"âŠ\":\"⊭\",\"⤄\":\"⤄\",\"â‰âƒ’\":\"≍⃒\",\"⊬\":\"⊬\",\"≥⃒\":\"≥⃒\",\">⃒\":\">⃒\",\"⧞\":\"⧞\",\"⤂\":\"⤂\",\"≤⃒\":\"≤⃒\",\"<⃒\":\"<⃒\",\"⊴⃒\":\"⊴⃒\",\"⤃\":\"⤃\",\"⊵⃒\":\"⊵⃒\",\"∼⃒\":\"∼⃒\",\"⇖\":\"⇖\",\"⤣\":\"⤣\",\"⤧\":\"⤧\",\"ó\":\"ó\",\"ô\":\"ô\",\"о\":\"о\",\"Å‘\":\"ő\",\"⨸\":\"⨸\",\"⦼\":\"⦼\",\"Å“\":\"œ\",\"⦿\":\"⦿\",\"ð”¬\":\"𝔬\",\"Ë›\":\"˛\",\"ò\":\"ò\",\"â§\":\"⧁\",\"⦵\":\"⦵\",\"⦾\":\"⦾\",\"⦻\":\"⦻\",\"⧀\":\"⧀\",\"Å\":\"ō\",\"ω\":\"ω\",\"ο\":\"ο\",\"⦶\":\"⦶\",\"ð• \":\"𝕠\",\"⦷\":\"⦷\",\"⦹\":\"⦹\",\"∨\":\"∨\",\"â©\":\"⩝\",\"â„´\":\"ℴ\",\"ª\":\"ª\",\"º\":\"º\",\"⊶\":\"⊶\",\"â©–\":\"⩖\",\"â©—\":\"⩗\",\"â©›\":\"⩛\",\"ø\":\"ø\",\"⊘\":\"⊘\",\"õ\":\"õ\",\"⨶\":\"⨶\",\"ö\":\"ö\",\"⌽\":\"⌽\",\"¶\":\"¶\",\"⫳\":\"⫳\",\"⫽\":\"⫽\",\"п\":\"п\",\"%\":\"%\",\".\":\".\",\"‰\":\"‰\",\"‱\":\"‱\",\"ð”\":\"𝔭\",\"φ\":\"φ\",\"Ï•\":\"ϕ\",\"☎\":\"☎\",\"Ï€\":\"π\",\"Ï–\":\"ϖ\",\"â„Ž\":\"ℎ\",\"+\":\"+\",\"⨣\":\"⨣\",\"⨢\":\"⨢\",\"⨥\":\"⨥\",\"⩲\":\"⩲\",\"⨦\":\"⨦\",\"⨧\":\"⨧\",\"⨕\":\"⨕\",\"ð•¡\":\"𝕡\",\"£\":\"£\",\"⪳\":\"⪳\",\"⪷\":\"⪷\",\"⪹\":\"⪹\",\"⪵\":\"⪵\",\"⋨\":\"⋨\",\"′\":\"′\",\"⌮\":\"⌮\",\"⌒\":\"⌒\",\"⌓\":\"⌓\",\"⊰\":\"⊰\",\"ð“…\":\"𝓅\",\"ψ\":\"ψ\",\" \":\" \",\"ð”®\":\"𝔮\",\"ð•¢\":\"𝕢\",\"â—\":\"⁗\",\"ð“†\":\"𝓆\",\"⨖\":\"⨖\",\"?\":\"?\",\"⤜\":\"⤜\",\"⥤\":\"⥤\",\"∽̱\":\"∽̱\",\"Å•\":\"ŕ\",\"⦳\":\"⦳\",\"⦒\":\"⦒\",\"⦥\":\"⦥\",\"»\":\"»\",\"⥵\":\"⥵\",\"⤠\":\"⤠\",\"⤳\":\"⤳\",\"⤞\":\"⤞\",\"⥅\":\"⥅\",\"⥴\":\"⥴\",\"↣\":\"↣\",\"â†\":\"↝\",\"⤚\":\"⤚\",\"∶\":\"∶\",\"â³\":\"❳\",\"}\":\"}\",\"]\":\"]\",\"⦌\":\"⦌\",\"⦎\":\"⦎\",\"â¦\":\"⦐\",\"Å™\":\"ř\",\"Å—\":\"ŗ\",\"Ñ€\":\"р\",\"⤷\":\"⤷\",\"⥩\":\"⥩\",\"↳\":\"↳\",\"â–\":\"▭\",\"⥽\":\"⥽\",\"ð”¯\":\"𝔯\",\"⥬\":\"⥬\",\"Ï\":\"ρ\",\"ϱ\":\"ϱ\",\"⇉\":\"⇉\",\"â‹Œ\":\"⋌\",\"Ëš\":\"˚\",\"â€\":\"‏\",\"⎱\":\"⎱\",\"â«®\":\"⫮\",\"âŸ\":\"⟭\",\"⇾\":\"⇾\",\"⦆\":\"⦆\",\"ð•£\":\"𝕣\",\"⨮\":\"⨮\",\"⨵\":\"⨵\",\")\":\")\",\"⦔\":\"⦔\",\"⨒\":\"⨒\",\"›\":\"›\",\"ð“‡\":\"𝓇\",\"â‹Š\":\"⋊\",\"â–¹\":\"▹\",\"⧎\":\"⧎\",\"⥨\":\"⥨\",\"â„ž\":\"℞\",\"Å›\":\"ś\",\"⪴\":\"⪴\",\"⪸\":\"⪸\",\"Å¡\":\"š\",\"ÅŸ\":\"ş\",\"Å\":\"ŝ\",\"⪶\":\"⪶\",\"⪺\":\"⪺\",\"â‹©\":\"⋩\",\"⨓\":\"⨓\",\"Ñ\":\"с\",\"â‹…\":\"⋅\",\"⩦\":\"⩦\",\"⇘\":\"⇘\",\"§\":\"§\",\";\":\";\",\"⤩\":\"⤩\",\"✶\":\"✶\",\"ð”°\":\"𝔰\",\"♯\":\"♯\",\"щ\":\"щ\",\"ш\":\"ш\",\"Â\":\"­\",\"σ\":\"σ\",\"Ï‚\":\"ς\",\"⩪\":\"⩪\",\"⪞\":\"⪞\",\"⪠\":\"⪠\",\"âª\":\"⪝\",\"⪟\":\"⪟\",\"≆\":\"≆\",\"⨤\":\"⨤\",\"⥲\":\"⥲\",\"⨳\":\"⨳\",\"⧤\":\"⧤\",\"⌣\":\"⌣\",\"⪪\":\"⪪\",\"⪬\":\"⪬\",\"⪬︀\":\"⪬︀\",\"ÑŒ\":\"ь\",\"/\":\"/\",\"⧄\":\"⧄\",\"⌿\":\"⌿\",\"ð•¤\":\"𝕤\",\"â™ \":\"♠\",\"⊓︀\":\"⊓︀\",\"⊔︀\":\"⊔︀\",\"ð“ˆ\":\"𝓈\",\"☆\":\"☆\",\"⊂\":\"⊂\",\"â«…\":\"⫅\",\"⪽\":\"⪽\",\"⫃\":\"⫃\",\"â«\":\"⫁\",\"â«‹\":\"⫋\",\"⊊\":\"⊊\",\"⪿\":\"⪿\",\"⥹\":\"⥹\",\"⫇\":\"⫇\",\"â«•\":\"⫕\",\"â«“\":\"⫓\",\"♪\":\"♪\",\"¹\":\"¹\",\"²\":\"²\",\"³\":\"³\",\"⫆\":\"⫆\",\"⪾\":\"⪾\",\"⫘\":\"⫘\",\"â«„\":\"⫄\",\"⟉\":\"⟉\",\"â«—\":\"⫗\",\"⥻\":\"⥻\",\"â«‚\":\"⫂\",\"â«Œ\":\"⫌\",\"⊋\":\"⊋\",\"â«€\":\"⫀\",\"⫈\":\"⫈\",\"â«”\":\"⫔\",\"â«–\":\"⫖\",\"⇙\":\"⇙\",\"⤪\":\"⤪\",\"ß\":\"ß\",\"⌖\":\"⌖\",\"Ï„\":\"τ\",\"Å¥\":\"ť\",\"Å£\":\"ţ\",\"Ñ‚\":\"т\",\"⌕\":\"⌕\",\"ð”±\":\"𝔱\",\"θ\":\"θ\",\"Ï‘\":\"ϑ\",\"þ\":\"þ\",\"×\":\"×\",\"⨱\":\"⨱\",\"⨰\":\"⨰\",\"⌶\":\"⌶\",\"⫱\":\"⫱\",\"ð•¥\":\"𝕥\",\"â«š\":\"⫚\",\"‴\":\"‴\",\"â–µ\":\"▵\",\"≜\":\"≜\",\"â—¬\":\"◬\",\"⨺\":\"⨺\",\"⨹\":\"⨹\",\"â§\":\"⧍\",\"⨻\":\"⨻\",\"â¢\":\"⏢\",\"ð“‰\":\"𝓉\",\"ц\":\"ц\",\"Ñ›\":\"ћ\",\"ŧ\":\"ŧ\",\"⥣\":\"⥣\",\"ú\":\"ú\",\"Ñž\":\"ў\",\"Å\":\"ŭ\",\"û\":\"û\",\"у\":\"у\",\"ű\":\"ű\",\"⥾\":\"⥾\",\"ð”²\":\"𝔲\",\"ù\":\"ù\",\"â–€\":\"▀\",\"⌜\":\"⌜\",\"âŒ\":\"⌏\",\"â—¸\":\"◸\",\"Å«\":\"ū\",\"ų\":\"ų\",\"ð•¦\":\"𝕦\",\"Ï…\":\"υ\",\"⇈\":\"⇈\",\"âŒ\":\"⌝\",\"⌎\":\"⌎\",\"ů\":\"ů\",\"â—¹\":\"◹\",\"ð“Š\":\"𝓊\",\"â‹°\":\"⋰\",\"Å©\":\"ũ\",\"ü\":\"ü\",\"⦧\":\"⦧\",\"⫨\":\"⫨\",\"â«©\":\"⫩\",\"⦜\":\"⦜\",\"⊊︀\":\"⊊︀\",\"⫋︀\":\"⫋︀\",\"⊋︀\":\"⊋︀\",\"⫌︀\":\"⫌︀\",\"в\":\"в\",\"⊻\":\"⊻\",\"≚\":\"≚\",\"â‹®\":\"⋮\",\"ð”³\":\"𝔳\",\"ð•§\":\"𝕧\",\"ð“‹\":\"𝓋\",\"⦚\":\"⦚\",\"ŵ\":\"ŵ\",\"â©Ÿ\":\"⩟\",\"≙\":\"≙\",\"℘\":\"℘\",\"ð”´\":\"𝔴\",\"ð•¨\":\"𝕨\",\"ð“Œ\":\"𝓌\",\"ð”µ\":\"𝔵\",\"ξ\":\"ξ\",\"â‹»\":\"⋻\",\"ð•©\":\"𝕩\",\"ð“\":\"𝓍\",\"ý\":\"ý\",\"Ñ\":\"я\",\"Å·\":\"ŷ\",\"Ñ‹\":\"ы\",\"Â¥\":\"¥\",\"ð”¶\":\"𝔶\",\"Ñ—\":\"ї\",\"ð•ª\":\"𝕪\",\"ð“Ž\":\"𝓎\",\"ÑŽ\":\"ю\",\"ÿ\":\"ÿ\",\"ź\":\"ź\",\"ž\":\"ž\",\"з\":\"з\",\"ż\":\"ż\",\"ζ\":\"ζ\",\"ð”·\":\"𝔷\",\"ж\":\"ж\",\"â‡\":\"⇝\",\"ð•«\":\"𝕫\",\"ð“\":\"𝓏\",\"â€\":\"‍\",\"‌\":\"‌\"}}};\n//# sourceMappingURL=./named-references.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.numericUnicodeMap={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};\n//# sourceMappingURL=./numeric-unicode-map.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.fromCodePoint=String.fromCodePoint||function(astralCodePoint){return String.fromCharCode(Math.floor((astralCodePoint-65536)/1024)+55296,(astralCodePoint-65536)%1024+56320)};exports.getCodePoint=String.prototype.codePointAt?function(input,position){return input.codePointAt(position)}:function(input,position){return(input.charCodeAt(position)-55296)*1024+input.charCodeAt(position+1)-56320+65536};exports.highSurrogateFrom=55296;exports.highSurrogateTo=56319;\n//# sourceMappingURL=./surrogate-pairs.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = void 0;\nvar Tokenizer_js_1 = __importStar(require(\"./Tokenizer.js\"));\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nvar pTag = new Set([\"p\"]);\nvar tableSectionTags = new Set([\"thead\", \"tbody\"]);\nvar ddtTags = new Set([\"dd\", \"dt\"]);\nvar rtpTags = new Set([\"rt\", \"rp\"]);\nvar openImpliesClose = new Map([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\nvar voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nvar foreignContextElements = new Set([\"math\", \"svg\"]);\nvar htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nvar reNameEnd = /\\s|\\//;\nvar Parser = /** @class */ (function () {\n function Parser(cbs, options) {\n if (options === void 0) { options = {}; }\n var _a, _b, _c, _d, _e;\n this.options = options;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n this.openTagStart = 0;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.foreignContext = [];\n this.buffers = [];\n this.bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n this.writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;\n this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_js_1.default)(this.options, this);\n (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n }\n // Tokenizer event handlers\n /** @internal */\n Parser.prototype.ontext = function (start, endIndex) {\n var _a, _b;\n var data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n this.startIndex = endIndex;\n };\n /** @internal */\n Parser.prototype.ontextentity = function (cp) {\n var _a, _b;\n /*\n * Entities can be emitted on the character, or directly after.\n * We use the section start here to get accurate indices.\n */\n var index = this.tokenizer.getSectionStart();\n this.endIndex = index - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, (0, decode_js_1.fromCodePoint)(cp));\n this.startIndex = index;\n };\n Parser.prototype.isVoidElement = function (name) {\n return !this.options.xmlMode && voidElements.has(name);\n };\n /** @internal */\n Parser.prototype.onopentagname = function (start, endIndex) {\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n };\n Parser.prototype.emitOpenTag = function (name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n var impliesClose = !this.options.xmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 &&\n impliesClose.has(this.stack[this.stack.length - 1])) {\n var element = this.stack.pop();\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.push(name);\n if (foreignContextElements.has(name)) {\n this.foreignContext.push(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.push(false);\n }\n }\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n };\n Parser.prototype.endOpenTag = function (isImplied) {\n var _a, _b;\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n this.tagname = \"\";\n };\n /** @internal */\n Parser.prototype.onopentagend = function (endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onclosetag = function (start, endIndex) {\n var _a, _b, _c, _d, _e, _f;\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name)) {\n this.foreignContext.pop();\n }\n if (!this.isVoidElement(name)) {\n var pos = this.stack.lastIndexOf(name);\n if (pos !== -1) {\n if (this.cbs.onclosetag) {\n var count = this.stack.length - pos;\n while (count--) {\n // We know the stack has sufficient elements.\n this.cbs.onclosetag(this.stack.pop(), count !== 0);\n }\n }\n else\n this.stack.length = pos;\n }\n else if (!this.options.xmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (!this.options.xmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, \"br\");\n (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\", {}, true);\n (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onselfclosingtag = function (endIndex) {\n this.endIndex = endIndex;\n if (this.options.xmlMode ||\n this.options.recognizeSelfClosing ||\n this.foreignContext[this.foreignContext.length - 1]) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n };\n Parser.prototype.closeCurrentTag = function (isOpenImplied) {\n var _a, _b;\n var name = this.tagname;\n this.endOpenTag(isOpenImplied);\n // Self-closing tags will be on the top of the stack\n if (this.stack[this.stack.length - 1] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n this.stack.pop();\n }\n };\n /** @internal */\n Parser.prototype.onattribname = function (start, endIndex) {\n this.startIndex = start;\n var name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n };\n /** @internal */\n Parser.prototype.onattribdata = function (start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n };\n /** @internal */\n Parser.prototype.onattribentity = function (cp) {\n this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);\n };\n /** @internal */\n Parser.prototype.onattribend = function (quote, endIndex) {\n var _a, _b;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double\n ? '\"'\n : quote === Tokenizer_js_1.QuoteType.Single\n ? \"'\"\n : quote === Tokenizer_js_1.QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n };\n Parser.prototype.getInstructionName = function (value) {\n var index = value.search(reNameEnd);\n var name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n };\n /** @internal */\n Parser.prototype.ondeclaration = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"!\".concat(name), \"!\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onprocessinginstruction = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"?\".concat(name), \"?\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncomment = function (start, endIndex, offset) {\n var _a, _b, _c, _d;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncdata = function (start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex - offset);\n if (this.options.xmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, \"[CDATA[\".concat(value, \"]]\"));\n (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onend = function () {\n var _a, _b;\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (var index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))\n ;\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n Parser.prototype.reset = function () {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this.buffers.length = 0;\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n };\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n Parser.prototype.parseComplete = function (data) {\n this.reset();\n this.end(data);\n };\n Parser.prototype.getSlice = function (start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n var slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return slice;\n };\n Parser.prototype.shiftBuffer = function () {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n };\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n Parser.prototype.write = function (chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n };\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n Parser.prototype.end = function (chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n };\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n Parser.prototype.pause = function () {\n this.tokenizer.pause();\n };\n /**\n * Resumes parsing after `pause` was called.\n */\n Parser.prototype.resume = function () {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n };\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n Parser.prototype.parseChunk = function (chunk) {\n this.write(chunk);\n };\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n Parser.prototype.done = function (chunk) {\n this.end(chunk);\n };\n return Parser;\n}());\nexports.Parser = Parser;\n//# sourceMappingURL=Parser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuoteType = void 0;\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n // Special tags\n State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n State[State[\"SpecialStartSequence\"] = 23] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 24] = \"InSpecialTag\";\n State[State[\"BeforeEntity\"] = 25] = \"BeforeEntity\";\n State[State[\"BeforeNumericEntity\"] = 26] = \"BeforeNumericEntity\";\n State[State[\"InNamedEntity\"] = 27] = \"InNamedEntity\";\n State[State[\"InNumericEntity\"] = 28] = \"InNumericEntity\";\n State[State[\"InHexEntity\"] = 29] = \"InHexEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isNumber(c) {\n return c >= CharCodes.Zero && c <= CharCodes.Nine;\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nfunction isHexDigit(c) {\n return ((c >= CharCodes.UpperA && c <= CharCodes.UpperF) ||\n (c >= CharCodes.LowerA && c <= CharCodes.LowerF));\n}\nvar QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType = exports.QuoteType || (exports.QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nvar Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]),\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]),\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]),\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]),\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]),\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n};\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(_a, cbs) {\n var _b = _a.xmlMode, xmlMode = _b === void 0 ? false : _b, _c = _a.decodeEntities, decodeEntities = _c === void 0 ? true : _c;\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = State.Text;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n this.isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n this.running = true;\n /** The offset of the current buffer. */\n this.offset = 0;\n this.currentSequence = undefined;\n this.sequenceIndex = 0;\n this.trieIndex = 0;\n this.trieCurrent = 0;\n /** For named entities, the index of the value. For numeric entities, the code point. */\n this.entityResult = 0;\n this.entityExcess = 0;\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.entityTrie = xmlMode ? decode_js_1.xmlDecodeTree : decode_js_1.htmlDecodeTree;\n }\n Tokenizer.prototype.reset = function () {\n this.state = State.Text;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = State.Text;\n this.currentSequence = undefined;\n this.running = true;\n this.offset = 0;\n };\n Tokenizer.prototype.write = function (chunk) {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n };\n Tokenizer.prototype.end = function () {\n if (this.running)\n this.finish();\n };\n Tokenizer.prototype.pause = function () {\n this.running = false;\n };\n Tokenizer.prototype.resume = function () {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n };\n /**\n * The current index within all of the written data.\n */\n Tokenizer.prototype.getIndex = function () {\n return this.index;\n };\n /**\n * The start of the current section.\n */\n Tokenizer.prototype.getSectionStart = function () {\n return this.sectionStart;\n };\n Tokenizer.prototype.stateText = function (c) {\n if (c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateSpecialStartSequence = function (c) {\n var isEnd = this.sequenceIndex === this.currentSequence.length;\n var isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n if (!isMatch) {\n this.isSpecial = false;\n }\n else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n };\n /** Look for an end tag. For <title> tags, also decode entities. */\n Tokenizer.prototype.stateInSpecialTag = function (c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n var endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n var actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n }\n else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n };\n Tokenizer.prototype.stateCDATASequence = function (c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n };\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n Tokenizer.prototype.fastForwardTo = function (c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n };\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n Tokenizer.prototype.stateInCommentLike = function (c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n };\n Tokenizer.prototype.startSpecial = function (sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n var lower = c | 0x20;\n this.sectionStart = this.index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this.state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? State.BeforeSpecialS\n : State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.baseState = this.state;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n var lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeEntity = function (c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n this.entityResult = 0;\n if (c === CharCodes.Number) {\n this.state = State.BeforeNumericEntity;\n }\n else if (c === CharCodes.Amp) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.state = State.InNamedEntity;\n this.stateInNamedEntity(c);\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n this.entityExcess += 1;\n this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this.index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (masked >> 14) - 1;\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n this.trieIndex += valueLength;\n }\n else {\n // Add 1 as we have already incremented the excess\n var entityStart = this.index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n // If this is a surrogate pair, consume the next two bytes\n this.entityResult = this.trieIndex;\n this.trieIndex += valueLength;\n this.entityExcess = 0;\n this.sectionStart = this.index + 1;\n if (valueLength === 0) {\n this.emitNamedEntity();\n }\n }\n }\n };\n Tokenizer.prototype.emitNamedEntity = function () {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1: {\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~decode_js_1.BinTrieFlags.VALUE_LENGTH);\n break;\n }\n case 2: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n break;\n }\n case 3: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n }\n }\n };\n Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n if ((c | 0x20) === CharCodes.LowerX) {\n this.entityExcess++;\n this.state = State.InHexEntity;\n }\n else {\n this.state = State.InNumericEntity;\n this.stateInNumericEntity(c);\n }\n };\n Tokenizer.prototype.emitNumericEntity = function (strict) {\n var entityStart = this.index - this.entityExcess - 1;\n var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n if (numberStart !== this.index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n this.sectionStart = this.index + Number(strict);\n this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));\n }\n this.state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else if (isHexDigit(c)) {\n this.entityResult =\n this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.allowLegacyEntity = function () {\n return (!this.xmlMode &&\n (this.baseState === State.Text ||\n this.baseState === State.InSpecialTag));\n };\n /**\n * Remove data that has already been consumed from the buffer.\n */\n Tokenizer.prototype.cleanup = function () {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n };\n Tokenizer.prototype.shouldContinue = function () {\n return this.index < this.buffer.length + this.offset && this.running;\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this.shouldContinue()) {\n var c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InNamedEntity: {\n this.stateInNamedEntity(c);\n break;\n }\n case State.BeforeEntity: {\n this.stateBeforeEntity(c);\n break;\n }\n case State.InHexEntity: {\n this.stateInHexEntity(c);\n break;\n }\n case State.InNumericEntity: {\n this.stateInNumericEntity(c);\n break;\n }\n default: {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n }\n this.index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n if (this.state === State.InNamedEntity) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this.index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n /** Handle any trailing data. */\n Tokenizer.prototype.handleTrailingData = function () {\n var endIndex = this.buffer.length + this.offset;\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InNumericEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InHexEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n };\n Tokenizer.prototype.emitPartial = function (start, endIndex) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribdata(start, endIndex);\n }\n else {\n this.cbs.ontext(start, endIndex);\n }\n };\n Tokenizer.prototype.emitCodePoint = function (cp) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribentity(cp);\n }\n else {\n this.cbs.ontextentity(cp);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;\nvar Parser_js_1 = require(\"./Parser.js\");\nvar Parser_js_2 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_2.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nvar domhandler_2 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Old name for DomHandler\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_js_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(callback, options, elementCallback) {\n var handler = new domhandler_1.DomHandler(callback, options, elementCallback);\n return new Parser_js_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexports.ElementType = __importStar(require(\"domelementtype\"));\nvar domutils_1 = require(\"domutils\");\nvar domutils_2 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_2.getFeed; } });\nvar parseFeedDefaultOptions = { xmlMode: true };\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = parseFeedDefaultOptions; }\n return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.parseFeed = parseFeed;\nexports.DomUtils = __importStar(require(\"domutils\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(attribs);\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"</\".concat(elem.name, \">\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"<![CDATA[\".concat(elem.children[0].data, \"]]>\");\n}\nfunction renderComment(elem) {\n return \"<!--\".concat(elem.data, \"-->\");\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = void 0;\nvar stringify_js_1 = require(\"./stringify.js\");\nvar legacy_js_1 = require(\"./legacy.js\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @category Feeds\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\nexports.getFeed = getFeed;\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_js_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_js_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children) || fetch(\"dc:date\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_js_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs[\"medium\"],\n isDefault: !!attribs[\"isDefault\"],\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs[\"expression\"]) {\n media.expression = attribs[\"expression\"];\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n//# sourceMappingURL=feeds.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uniqueSort = exports.compareDocumentPosition = exports.DocumentPosition = exports.removeSubsets = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another\n * member.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't contained by other nodes.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\nexports.removeSubsets = removeSubsets;\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nvar DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition = exports.DocumentPosition || (exports.DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document,\n * returning a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\nexports.compareDocumentPosition = compareDocumentPosition;\n/**\n * Sort an array of nodes based on their relative position in the document,\n * removing any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\nexports.uniqueSort = uniqueSort;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify.js\"), exports);\n__exportStar(require(\"./traversal.js\"), exports);\n__exportStar(require(\"./manipulation.js\"), exports);\n__exportStar(require(\"./querying.js\"), exports);\n__exportStar(require(\"./legacy.js\"), exports);\n__exportStar(require(\"./helpers.js\"), exports);\n__exportStar(require(\"./feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getElementsByTagType = exports.getElementsByTagName = exports.getElementById = exports.getElements = exports.testElement = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_js_1 = require(\"./querying.js\");\n/**\n * A map of functions to check nodes against.\n */\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * Returns a function to check whether a node has an attribute with a particular\n * value.\n *\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a\n * particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * Returns a function that returns `true` if either of the input functions\n * returns `true` for a node.\n *\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either of the input\n * functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * Returns a function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n *\n * @param options An object describing nodes to look for.\n * @returns A function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * Checks whether a node matches the description in `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\nexports.testElement = testElement;\n/**\n * Returns all nodes that match `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];\n}\nexports.getElements = getElements;\n/**\n * Returns the node with the supplied ID.\n *\n * @category Legacy Query Functions\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_js_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\nexports.getElementById = getElementById;\n/**\n * Returns all nodes with the supplied `tagName`.\n *\n * @category Legacy Query Functions\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\nexports.getElementsByTagName = getElementsByTagName;\n/**\n * Returns all nodes with the supplied `type`.\n *\n * @category Legacy Query Functions\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\nexports.getElementsByTagType = getElementsByTagType;\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepend = exports.prependChild = exports.append = exports.appendChild = exports.replaceElement = exports.removeElement = void 0;\n/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n var childsIndex = childs.lastIndexOf(elem);\n if (childsIndex >= 0) {\n childs.splice(childsIndex, 1);\n }\n }\n elem.next = null;\n elem.prev = null;\n elem.parent = null;\n}\nexports.removeElement = removeElement;\n/**\n * Replace an element in the dom\n *\n * @category Manipulation\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n elem.parent = null;\n }\n}\nexports.replaceElement = replaceElement;\n/**\n * Append a child to an element.\n *\n * @category Manipulation\n * @param parent The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(parent, child) {\n removeElement(child);\n child.next = null;\n child.parent = parent;\n if (parent.children.push(child) > 1) {\n var sibling = parent.children[parent.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\nexports.appendChild = appendChild;\n/**\n * Append an element after another.\n *\n * @category Manipulation\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\nexports.append = append;\n/**\n * Prepend a child to an element.\n *\n * @category Manipulation\n * @param parent The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(parent, child) {\n removeElement(child);\n child.parent = parent;\n child.prev = null;\n if (parent.children.unshift(child) !== 1) {\n var sibling = parent.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\nexports.prependChild = prependChild;\n/**\n * Prepend an element before another.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\nexports.prepend = prepend;\n//# sourceMappingURL=manipulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findAll = exports.existsOne = exports.findOne = exports.findOneChild = exports.find = exports.filter = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function. If `node` is not an array, it will be wrapped in one.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return find(test, Array.isArray(node) ? node : [node], recurse, limit);\n}\nexports.filter = filter;\n/**\n * Search an array of nodes and their children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n /** Stack of the arrays we are looking at. */\n var nodeStack = [nodes];\n /** Stack of the indices within the arrays. */\n var indexStack = [0];\n for (;;) {\n // First, check if the current array has any more elements to look at.\n if (indexStack[0] >= nodeStack[0].length) {\n // If we have no more arrays to look at, we are done.\n if (indexStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n var elem = nodeStack[0][indexStack[0]++];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n return result;\n }\n if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n /*\n * Add the children to the stack. We are depth-first, so this is\n * the next array we look at.\n */\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\nexports.find = find;\n/**\n * Finds the first element inside of an array that matches a test function. This is an alias for `Array.prototype.find`.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n * @deprecated Use `Array.prototype.find` directly.\n */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\nexports.findOneChild = findOneChild;\n/**\n * Finds one element in a tree that passes a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Node or array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var elem = null;\n for (var i = 0; i < nodes.length && !elem; i++) {\n var node = nodes[i];\n if (!(0, domhandler_1.isTag)(node)) {\n continue;\n }\n else if (test(node)) {\n elem = node;\n }\n else if (recurse && node.children.length > 0) {\n elem = findOne(test, node.children, true);\n }\n }\n return elem;\n}\nexports.findOne = findOne;\n/**\n * Checks if a tree of nodes contains at least one node passing a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing the test.\n */\nfunction existsOne(test, nodes) {\n return nodes.some(function (checked) {\n return (0, domhandler_1.isTag)(checked) &&\n (test(checked) || existsOne(test, checked.children));\n });\n}\nexports.existsOne = existsOne;\n/**\n * Search an array of nodes and their children for elements passing a test function.\n *\n * Same as `find`, but limited to elements and with less options, leading to reduced complexity.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n var result = [];\n var nodeStack = [nodes];\n var indexStack = [0];\n for (;;) {\n if (indexStack[0] >= nodeStack[0].length) {\n if (nodeStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n var elem = nodeStack[0][indexStack[0]++];\n if (!(0, domhandler_1.isTag)(elem))\n continue;\n if (test(elem))\n result.push(elem);\n if (elem.children.length > 0) {\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\nexports.findAll = findAll;\n//# sourceMappingURL=querying.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.innerText = exports.textContent = exports.getText = exports.getInnerHTML = exports.getOuterHTML = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\nexports.getOuterHTML = getOuterHTML;\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\nexports.getInnerHTML = getInnerHTML;\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `<br>` tags. Ignores comments.\n *\n * @category Stringify\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.getText = getText;\n/**\n * Get a node's text content. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.textContent = textContent;\n/**\n * Get a node's inner text, ignoring `<script>` and `<style>` tags. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.innerText = innerText;\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prevElementSibling = exports.nextElementSibling = exports.getName = exports.hasAttrib = exports.getAttributeValue = exports.getSiblings = exports.getParent = exports.getChildren = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Get a node's children.\n *\n * @category Traversal\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];\n}\nexports.getChildren = getChildren;\n/**\n * Get a node's parent.\n *\n * @category Traversal\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node, or `null` if `elem` is a root node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\nexports.getParent = getParent;\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first. If we don't\n * have a parent (the element is a root node), we walk the element's `prev` &\n * `next` to get all remaining nodes.\n *\n * @category Traversal\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings, including `elem`.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\nexports.getSiblings = getSiblings;\n/**\n * Gets an attribute from an element.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\nexports.getAttributeValue = getAttributeValue;\n/**\n * Checks whether an element has an attribute.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\nexports.hasAttrib = hasAttrib;\n/**\n * Get the tag name of an element.\n *\n * @category Traversal\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\nexports.getName = getName;\n/**\n * Returns the next element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag, or `null` if there is no next\n * sibling.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\nexports.nextElementSibling = nextElementSibling;\n/**\n * Returns the previous element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag, or `null` if there is no\n * previous sibling.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\nexports.prevElementSibling = prevElementSibling;\n//# sourceMappingURL=traversal.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n function EntityDecoder(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n EntityDecoder.prototype.startEntity = function (decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n };\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.write = function (str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n };\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n };\n EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n if (start !== end) {\n var digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n };\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n };\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n };\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n };\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n var decodeTree = this.decodeTree;\n var current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n var char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n };\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n var _a;\n var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n };\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n var decodeTree = this.decodeTree;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n };\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.end = function () {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n };\n return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n var ret = \"\";\n var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n return function decodeWithTrie(str, decodeMode) {\n var lastIndex = 0;\n var offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n var len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n var result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n if (mode === void 0) { mode = DecodingMode.Legacy; }\n return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = regExp.exec(str)) !== null) {\n var i = match.index;\n ret += str.substring(lastIdx, i);\n var char = str.charCodeAt(i);\n var next = encode_html_js_1.default.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n var nextChar = str.charCodeAt(i + 1);\n var value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entity.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n var cp = (0, escape_js_1.getCodePoint)(str, i);\n ret += \"&#x\".concat(cp.toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? function (str, index) { return str.codePointAt(index); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c, index) {\n return (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n };\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nfunction encodeXML(str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = exports.xmlReplacer.exec(str)) !== null) {\n var i = match.index;\n var char = str.charCodeAt(i);\n var next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexports.escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n var match;\n var lastIdx = 0;\n var result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexports.escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n for (var i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \"	\"], [0, \"
\"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n var mode = typeof options === \"object\" ? options.mode : undefined;\n return (0, decode_js_1.decodeHTML)(data, mode);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n var _a;\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = decode_js_1.DecodingMode.Strict);\n return decode(data, opts);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return (0, escape_js_1.escapeUTF8)(data);\n if (opts.mode === EncodingMode.Attribute)\n return (0, escape_js_1.escapeAttribute)(data);\n if (opts.mode === EncodingMode.Text)\n return (0, escape_js_1.escapeText)(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return (0, encode_js_1.encodeNonAsciiHTML)(data);\n }\n return (0, encode_js_1.encodeHTML)(data);\n }\n // ASCII and Extensive are equivalent\n return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"EntityDecoder\", { enumerable: true, get: function () { return decode_js_2.EntityDecoder; } });\nObject.defineProperty(exports, \"DecodingMode\", { enumerable: true, get: function () { return decode_js_2.DecodingMode; } });\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTMLAttribute\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLAttribute; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","'use strict';\n\nconst word = '[a-fA-F\\\\d:]';\nconst b = options => options && options.includeBoundaries ?\n\t`(?:(?<=\\\\s|^)(?=${word})|(?<=${word})(?=\\\\s|$))` :\n\t'';\n\nconst v4 = '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n\nconst v6seg = '[a-fA-F\\\\d]{1,4}';\nconst v6 = `\n(?:\n(?:${v6seg}:){7}(?:${v6seg}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${v6seg}:){6}(?:${v4}|:${v6seg}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${v6seg}:){5}(?::${v4}|(?::${v6seg}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${v6seg}:){4}(?:(?::${v6seg}){0,1}:${v4}|(?::${v6seg}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${v6seg}:){3}(?:(?::${v6seg}){0,2}:${v4}|(?::${v6seg}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${v6seg}:){2}(?:(?::${v6seg}){0,3}:${v4}|(?::${v6seg}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${v6seg}:){1}(?:(?::${v6seg}){0,4}:${v4}|(?::${v6seg}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${v6seg}){0,5}:${v4}|(?::${v6seg}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\\s*\\/\\/.*$/gm, '').replace(/\\n/g, '').trim();\n\n// Pre-compile only the exact regexes because adding a global flag make regexes stateful\nconst v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);\nconst v4exact = new RegExp(`^${v4}$`);\nconst v6exact = new RegExp(`^${v6}$`);\n\nconst ip = options => options && options.exact ?\n\tv46Exact :\n\tnew RegExp(`(?:${b(options)}${v4}${b(options)})|(?:${b(options)}${v6}${b(options)})`, 'g');\n\nip.v4 = options => options && options.exact ? v4exact : new RegExp(`${b(options)}${v4}${b(options)}`, 'g');\nip.v6 = options => options && options.exact ? v6exact : new RegExp(`${b(options)}${v6}${b(options)}`, 'g');\n\nmodule.exports = ip;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","/**\n * Srcset Parser\n *\n * By Alex Bell | MIT License\n *\n * JS Parser for the string value that appears in markup <img srcset=\"here\">\n *\n * @returns Array [{url: _, d: _, w: _, h:_}, ...]\n *\n * Based super duper closely on the reference algorithm at:\n * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n *\n * Most comments are copied in directly from the spec\n * (except for comments in parens).\n */\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.parseSrcset = factory();\n\t}\n}(this, function () {\n\n\t// 1. Let input be the value passed to this algorithm.\n\treturn function (input) {\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// Manual is faster than RegEx\n\t\t// http://bjorn.tipling.com/state-and-regular-expressions-in-javascript\n\t\t// http://jsperf.com/whitespace-character/5\n\t\tfunction isSpace(c) {\n\t\t\treturn (c === \"\\u0020\" || // space\n\t\t\tc === \"\\u0009\" || // horizontal tab\n\t\t\tc === \"\\u000A\" || // new line\n\t\t\tc === \"\\u000C\" || // form feed\n\t\t\tc === \"\\u000D\"); // carriage return\n\t\t}\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t\tmatch = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\n\t\t\t// (Don't use \\s, to avoid matching non-breaking space)\n\t\t\tregexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t\t\tregexTrailingCommas = /[,]+$/,\n\t\t\tregexNonNegativeInteger = /^\\d+$/,\n\n\t\t\t// ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t\t\t// Must include at least one digit.\n\t\t\t// According to spec tests any decimal point must be followed by a digit.\n\t\t\t// No leading plus sign is allowed.)\n\t\t\t// https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t\t\tregexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,\n\n\t\t\turl,\n\t\t\tdescriptors,\n\t\t\tcurrentDescriptor,\n\t\t\tstate,\n\t\t\tc,\n\n\t\t\t// 2. Let position be a pointer into input, initially pointing at the start\n\t\t\t// of the string.\n\t\t\tpos = 0,\n\n\t\t\t// 3. Let candidates be an initially empty source set.\n\t\t\tcandidates = [];\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\n\t\t/**\n\t\t * Tokenizes descriptor properties prior to parsing\n\t\t * Returns undefined.\n\t\t */\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t\t// Space character\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors and let current descriptor be the empty string.\n\t\t\t\t\t// Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t/**\n\t\t * Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t * @return undefined\n\t\t */\n\t\t// Declared outside of the while loop so that it's only created once.\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t\t// 10. Let width be absent.\n\t\t\t\t// 11. Let density be absent.\n\t\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t\tw, d, h, i,\n\t\t\t\tcandidate = {},\n\t\t\t\tdesc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tcandidates.push(candidate);\n\t\t\t} else if (console && console.log) {\n\t\t\t\tconsole.log(\"Invalid srcset descriptor found in '\" +\n\t\t\t\t\tinput + \"' at '\" + desc + \"'.\");\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t}\n}));\n","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(this, function() {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.LinkTarget = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = void 0;\nexports.addLinkAttributes = addLinkAttributes;\nexports.deprecated = deprecated;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.getPdfFilenameFromUrl = getPdfFilenameFromUrl;\nexports.getXfaPageViewport = getXfaPageViewport;\nexports.isDataScheme = isDataScheme;\nexports.isPdfFile = isPdfFile;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(4);\n\nvar _base_factory = __w_pdfjs_require__(135);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\nvar SVG_NS = \"http://www.w3.org/2000/svg\";\nvar PixelsPerInch = {\n CSS: 96.0,\n PDF: 72.0,\n\n get PDF_TO_CSS_UNITS() {\n return (0, _util.shadow)(this, \"PDF_TO_CSS_UNITS\", this.CSS / this.PDF);\n }\n\n};\nexports.PixelsPerInch = PixelsPerInch;\n\nvar DOMCanvasFactory = /*#__PURE__*/function (_BaseCanvasFactory) {\n _inherits(DOMCanvasFactory, _BaseCanvasFactory);\n\n var _super = _createSuper(DOMCanvasFactory);\n\n function DOMCanvasFactory() {\n var _this;\n\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$ownerDocument = _ref.ownerDocument,\n ownerDocument = _ref$ownerDocument === void 0 ? globalThis.document : _ref$ownerDocument;\n\n _classCallCheck(this, DOMCanvasFactory);\n\n _this = _super.call(this);\n _this._document = ownerDocument;\n return _this;\n }\n\n _createClass(DOMCanvasFactory, [{\n key: \"_createCanvas\",\n value: function _createCanvas(width, height) {\n var canvas = this._document.createElement(\"canvas\");\n\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n }]);\n\n return DOMCanvasFactory;\n}(_base_factory.BaseCanvasFactory);\n\nexports.DOMCanvasFactory = DOMCanvasFactory;\n\nfunction fetchData(_x) {\n return _fetchData.apply(this, arguments);\n}\n\nfunction _fetchData() {\n _fetchData = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee(url) {\n var asTypedArray,\n response,\n _args = arguments;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n asTypedArray = _args.length > 1 && _args[1] !== undefined ? _args[1] : false;\n\n if (!isValidFetchUrl(url, document.baseURI)) {\n _context.next = 21;\n break;\n }\n\n _context.next = 4;\n return fetch(url);\n\n case 4:\n response = _context.sent;\n\n if (response.ok) {\n _context.next = 7;\n break;\n }\n\n throw new Error(response.statusText);\n\n case 7:\n if (!asTypedArray) {\n _context.next = 15;\n break;\n }\n\n _context.t1 = Uint8Array;\n _context.next = 11;\n return response.arrayBuffer();\n\n case 11:\n _context.t2 = _context.sent;\n _context.t0 = new _context.t1(_context.t2);\n _context.next = 20;\n break;\n\n case 15:\n _context.t3 = _util.stringToBytes;\n _context.next = 18;\n return response.text();\n\n case 18:\n _context.t4 = _context.sent;\n _context.t0 = (0, _context.t3)(_context.t4);\n\n case 20:\n return _context.abrupt(\"return\", _context.t0);\n\n case 21:\n return _context.abrupt(\"return\", new Promise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n\n if (asTypedArray) {\n request.responseType = \"arraybuffer\";\n }\n\n request.onreadystatechange = function () {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n\n if (request.status === 200 || request.status === 0) {\n var data;\n\n if (asTypedArray && request.response) {\n data = new Uint8Array(request.response);\n } else if (!asTypedArray && request.responseText) {\n data = (0, _util.stringToBytes)(request.responseText);\n }\n\n if (data) {\n resolve(data);\n return;\n }\n }\n\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n }));\n\n case 22:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _fetchData.apply(this, arguments);\n}\n\nvar DOMCMapReaderFactory = /*#__PURE__*/function (_BaseCMapReaderFactor) {\n _inherits(DOMCMapReaderFactory, _BaseCMapReaderFactor);\n\n var _super2 = _createSuper(DOMCMapReaderFactory);\n\n function DOMCMapReaderFactory() {\n _classCallCheck(this, DOMCMapReaderFactory);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(DOMCMapReaderFactory, [{\n key: \"_fetchData\",\n value: function _fetchData(url, compressionType) {\n return fetchData(url, this.isCompressed).then(function (data) {\n return {\n cMapData: data,\n compressionType: compressionType\n };\n });\n }\n }]);\n\n return DOMCMapReaderFactory;\n}(_base_factory.BaseCMapReaderFactory);\n\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\n\nvar DOMStandardFontDataFactory = /*#__PURE__*/function (_BaseStandardFontData) {\n _inherits(DOMStandardFontDataFactory, _BaseStandardFontData);\n\n var _super3 = _createSuper(DOMStandardFontDataFactory);\n\n function DOMStandardFontDataFactory() {\n _classCallCheck(this, DOMStandardFontDataFactory);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(DOMStandardFontDataFactory, [{\n key: \"_fetchData\",\n value: function _fetchData(url) {\n return fetchData(url, true);\n }\n }]);\n\n return DOMStandardFontDataFactory;\n}(_base_factory.BaseStandardFontDataFactory);\n\nexports.DOMStandardFontDataFactory = DOMStandardFontDataFactory;\n\nvar DOMSVGFactory = /*#__PURE__*/function (_BaseSVGFactory) {\n _inherits(DOMSVGFactory, _BaseSVGFactory);\n\n var _super4 = _createSuper(DOMSVGFactory);\n\n function DOMSVGFactory() {\n _classCallCheck(this, DOMSVGFactory);\n\n return _super4.apply(this, arguments);\n }\n\n _createClass(DOMSVGFactory, [{\n key: \"_createSVG\",\n value: function _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n }]);\n\n return DOMSVGFactory;\n}(_base_factory.BaseSVGFactory);\n\nexports.DOMSVGFactory = DOMSVGFactory;\n\nvar PageViewport = /*#__PURE__*/function () {\n function PageViewport(_ref2) {\n var viewBox = _ref2.viewBox,\n scale = _ref2.scale,\n rotation = _ref2.rotation,\n _ref2$offsetX = _ref2.offsetX,\n offsetX = _ref2$offsetX === void 0 ? 0 : _ref2$offsetX,\n _ref2$offsetY = _ref2.offsetY,\n offsetY = _ref2$offsetY === void 0 ? 0 : _ref2$offsetY,\n _ref2$dontFlip = _ref2.dontFlip,\n dontFlip = _ref2$dontFlip === void 0 ? false : _ref2$dontFlip;\n\n _classCallCheck(this, PageViewport);\n\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n var centerX = (viewBox[2] + viewBox[0]) / 2;\n var centerY = (viewBox[3] + viewBox[1]) / 2;\n var rotateA, rotateB, rotateC, rotateD;\n rotation %= 360;\n\n if (rotation < 0) {\n rotation += 360;\n }\n\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n\n var offsetCanvasX, offsetCanvasY;\n var width, height;\n\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n\n _createClass(PageViewport, [{\n key: \"clone\",\n value: function clone() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$scale = _ref3.scale,\n scale = _ref3$scale === void 0 ? this.scale : _ref3$scale,\n _ref3$rotation = _ref3.rotation,\n rotation = _ref3$rotation === void 0 ? this.rotation : _ref3$rotation,\n _ref3$offsetX = _ref3.offsetX,\n offsetX = _ref3$offsetX === void 0 ? this.offsetX : _ref3$offsetX,\n _ref3$offsetY = _ref3.offsetY,\n offsetY = _ref3$offsetY === void 0 ? this.offsetY : _ref3$offsetY,\n _ref3$dontFlip = _ref3.dontFlip,\n dontFlip = _ref3$dontFlip === void 0 ? false : _ref3$dontFlip;\n\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale: scale,\n rotation: rotation,\n offsetX: offsetX,\n offsetY: offsetY,\n dontFlip: dontFlip\n });\n }\n }, {\n key: \"convertToViewportPoint\",\n value: function convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n }, {\n key: \"convertToViewportRectangle\",\n value: function convertToViewportRectangle(rect) {\n var topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n\n var bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n }, {\n key: \"convertToPdfPoint\",\n value: function convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n }]);\n\n return PageViewport;\n}();\n\nexports.PageViewport = PageViewport;\n\nvar RenderingCancelledException = /*#__PURE__*/function (_BaseException) {\n _inherits(RenderingCancelledException, _BaseException);\n\n var _super5 = _createSuper(RenderingCancelledException);\n\n function RenderingCancelledException(msg, type) {\n var _this2;\n\n _classCallCheck(this, RenderingCancelledException);\n\n _this2 = _super5.call(this, msg, \"RenderingCancelledException\");\n _this2.type = type;\n return _this2;\n }\n\n return RenderingCancelledException;\n}(_util.BaseException);\n\nexports.RenderingCancelledException = RenderingCancelledException;\nvar LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n};\nexports.LinkTarget = LinkTarget;\n\nfunction addLinkAttributes(link) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n url = _ref4.url,\n target = _ref4.target,\n rel = _ref4.rel,\n _ref4$enabled = _ref4.enabled,\n enabled = _ref4$enabled === void 0 ? true : _ref4$enabled;\n\n (0, _util.assert)(url && typeof url === \"string\", 'addLinkAttributes: A valid \"url\" parameter must provided.');\n var urlNullRemoved = (0, _util.removeNullCharacters)(url);\n\n if (enabled) {\n link.href = link.title = urlNullRemoved;\n } else {\n link.href = \"\";\n link.title = \"Disabled: \".concat(urlNullRemoved);\n\n link.onclick = function () {\n return false;\n };\n }\n\n var targetStr = \"\";\n\n switch (target) {\n case LinkTarget.NONE:\n break;\n\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n\n link.target = targetStr;\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n}\n\nfunction isDataScheme(url) {\n var ii = url.length;\n var i = 0;\n\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\n\nfunction getFilenameFromUrl(url) {\n var anchor = url.indexOf(\"#\");\n var query = url.indexOf(\"?\");\n var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);\n return url.substring(url.lastIndexOf(\"/\", end) + 1, end);\n}\n\nfunction getPdfFilenameFromUrl(url) {\n var defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"document.pdf\";\n\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n\n if (isDataScheme(url)) {\n (0, _util.warn)('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n\n var reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n var reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n var splitURI = reURI.exec(url);\n var suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch (ex) {}\n }\n }\n\n return suggestedFilename || defaultFilename;\n}\n\nvar StatTimer = /*#__PURE__*/function () {\n function StatTimer() {\n _classCallCheck(this, StatTimer);\n\n this.started = Object.create(null);\n this.times = [];\n }\n\n _createClass(StatTimer, [{\n key: \"time\",\n value: function time(name) {\n if (name in this.started) {\n (0, _util.warn)(\"Timer is already running for \".concat(name));\n }\n\n this.started[name] = Date.now();\n }\n }, {\n key: \"timeEnd\",\n value: function timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(\"Timer has not been started for \".concat(name));\n }\n\n this.times.push({\n name: name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var outBuf = [];\n var longest = 0;\n\n var _iterator = _createForOfIteratorHelper(this.times),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var time = _step.value;\n var name = time.name;\n\n if (name.length > longest) {\n longest = name.length;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n var _iterator2 = _createForOfIteratorHelper(this.times),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _time = _step2.value;\n var duration = _time.end - _time.start;\n outBuf.push(\"\".concat(_time.name.padEnd(longest), \" \").concat(duration, \"ms\\n\"));\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return outBuf.join(\"\");\n }\n }]);\n\n return StatTimer;\n}();\n\nexports.StatTimer = StatTimer;\n\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n var _ref5 = baseUrl ? new URL(url, baseUrl) : new URL(url),\n protocol = _ref5.protocol;\n\n return protocol === \"http:\" || protocol === \"https:\";\n } catch (ex) {\n return false;\n }\n}\n\nfunction loadScript(src) {\n var removeScriptElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return new Promise(function (resolve, reject) {\n var script = document.createElement(\"script\");\n script.src = src;\n\n script.onload = function (evt) {\n if (removeScriptElement) {\n script.remove();\n }\n\n resolve(evt);\n };\n\n script.onerror = function () {\n reject(new Error(\"Cannot load script at: \".concat(script.src)));\n };\n\n (document.head || document.documentElement).appendChild(script);\n });\n}\n\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\n\nvar pdfDateStringRegex;\n\nvar PDFDateString = /*#__PURE__*/function () {\n function PDFDateString() {\n _classCallCheck(this, PDFDateString);\n }\n\n _createClass(PDFDateString, null, [{\n key: \"toDateObject\",\n value: function toDateObject(input) {\n if (!input || !(0, _util.isString)(input)) {\n return null;\n }\n\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n }\n\n var matches = pdfDateStringRegex.exec(input);\n\n if (!matches) {\n return null;\n }\n\n var year = parseInt(matches[1], 10);\n var month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n var day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n var hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n var minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n var second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n var universalTimeRelation = matches[7] || \"Z\";\n var offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n var offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n }]);\n\n return PDFDateString;\n}();\n\nexports.PDFDateString = PDFDateString;\n\nfunction getXfaPageViewport(xfaPage, _ref6) {\n var _ref6$scale = _ref6.scale,\n scale = _ref6$scale === void 0 ? 1 : _ref6$scale,\n _ref6$rotation = _ref6.rotation,\n rotation = _ref6$rotation === void 0 ? 0 : _ref6$rotation;\n var _xfaPage$attributes$s = xfaPage.attributes.style,\n width = _xfaPage$attributes$s.width,\n height = _xfaPage$attributes$s.height;\n var viewBox = [0, 0, parseInt(width), parseInt(height)];\n return new PageViewport({\n viewBox: viewBox,\n scale: scale,\n rotation: rotation\n });\n}\n\n/***/ }),\n/* 2 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nmodule.exports = __w_pdfjs_require__(3);\n\n/***/ }),\n/* 3 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n/* module decorator */ module = __w_pdfjs_require__.nmd(module);\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined;\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap;\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\");\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && _typeof(value) === \"object\" && hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator[\"return\"]) {\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n context[delegate.resultName] = info.value;\n context.next = delegate.nextLoc;\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n return info;\n }\n\n context.delegate = null;\n return ContinueSentinel;\n }\n\n defineIteratorMethods(Gp);\n define(Gp, toStringTagSymbol, \"Generator\");\n define(Gp, iteratorSymbol, function () {\n return this;\n });\n define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse();\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n return exports;\n}(( false ? 0 : _typeof(module)) === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if ((typeof globalThis === \"undefined\" ? \"undefined\" : _typeof(globalThis)) === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.UNSUPPORTED_FEATURES = exports.TextRenderingMode = exports.StreamType = exports.RenderingIntentFlag = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.IsLittleEndianCached = exports.IsEvalSupportedCached = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMode = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createObjectURL = createObjectURL;\nexports.createPromiseCapability = createPromiseCapability;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.escapeString = escapeString;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isAscii = isAscii;\nexports.isBool = isBool;\nexports.isNum = isNum;\nexports.isSameOrigin = isSameOrigin;\nexports.isString = isString;\nexports.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\nexports.removeNullCharacters = removeNullCharacters;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF16BEString = stringToUTF16BEString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.unreachable = unreachable;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\n\n__w_pdfjs_require__(5);\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nvar FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nvar RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100\n};\nexports.RenderingIntentFlag = RenderingIntentFlag;\nvar AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3\n};\nexports.AnnotationMode = AnnotationMode;\nvar PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n};\nexports.PermissionFlag = PermissionFlag;\nvar TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nexports.TextRenderingMode = TextRenderingMode;\nvar ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\nvar AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nexports.AnnotationType = AnnotationType;\nvar AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nvar AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nvar AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nvar AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\nvar AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nexports.AnnotationFlag = AnnotationFlag;\nvar AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nvar AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nvar AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\"\n};\nexports.AnnotationActionEventType = AnnotationActionEventType;\nvar DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nexports.DocumentActionEventType = DocumentActionEventType;\nvar PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nexports.PageActionEventType = PageActionEventType;\nvar StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\"\n};\nexports.StreamType = StreamType;\nvar FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1STANDARD: \"TYPE1STANDARD\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\"\n};\nexports.FontType = FontType;\nvar VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nvar CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\nvar OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n};\nexports.OPS = OPS;\nvar UNSUPPORTED_FEATURES = {\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n font: \"font\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\"\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nvar PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nvar verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(\"Info: \".concat(msg));\n }\n}\n\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(\"Warning: \".concat(msg));\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\nfunction isSameOrigin(baseUrl, otherUrl) {\n var base;\n\n try {\n base = new URL(baseUrl);\n\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n var other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n\n default:\n return false;\n }\n}\n\nfunction createValidAbsoluteUrl(url) {\n var baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (!url) {\n return null;\n }\n\n try {\n if (options && typeof url === \"string\") {\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n var dots = url.match(/\\./g);\n\n if (dots && dots.length >= 2) {\n url = \"http://\".concat(url);\n }\n }\n\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n\n var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: false\n });\n return value;\n}\n\nvar BaseException = function BaseExceptionClosure() {\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n\n this.message = message;\n this.name = name;\n }\n\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\n\nexports.BaseException = BaseException;\n\nvar PasswordException = /*#__PURE__*/function (_BaseException) {\n _inherits(PasswordException, _BaseException);\n\n var _super = _createSuper(PasswordException);\n\n function PasswordException(msg, code) {\n var _this;\n\n _classCallCheck(this, PasswordException);\n\n _this = _super.call(this, msg, \"PasswordException\");\n _this.code = code;\n return _this;\n }\n\n return PasswordException;\n}(BaseException);\n\nexports.PasswordException = PasswordException;\n\nvar UnknownErrorException = /*#__PURE__*/function (_BaseException2) {\n _inherits(UnknownErrorException, _BaseException2);\n\n var _super2 = _createSuper(UnknownErrorException);\n\n function UnknownErrorException(msg, details) {\n var _this2;\n\n _classCallCheck(this, UnknownErrorException);\n\n _this2 = _super2.call(this, msg, \"UnknownErrorException\");\n _this2.details = details;\n return _this2;\n }\n\n return UnknownErrorException;\n}(BaseException);\n\nexports.UnknownErrorException = UnknownErrorException;\n\nvar InvalidPDFException = /*#__PURE__*/function (_BaseException3) {\n _inherits(InvalidPDFException, _BaseException3);\n\n var _super3 = _createSuper(InvalidPDFException);\n\n function InvalidPDFException(msg) {\n _classCallCheck(this, InvalidPDFException);\n\n return _super3.call(this, msg, \"InvalidPDFException\");\n }\n\n return InvalidPDFException;\n}(BaseException);\n\nexports.InvalidPDFException = InvalidPDFException;\n\nvar MissingPDFException = /*#__PURE__*/function (_BaseException4) {\n _inherits(MissingPDFException, _BaseException4);\n\n var _super4 = _createSuper(MissingPDFException);\n\n function MissingPDFException(msg) {\n _classCallCheck(this, MissingPDFException);\n\n return _super4.call(this, msg, \"MissingPDFException\");\n }\n\n return MissingPDFException;\n}(BaseException);\n\nexports.MissingPDFException = MissingPDFException;\n\nvar UnexpectedResponseException = /*#__PURE__*/function (_BaseException5) {\n _inherits(UnexpectedResponseException, _BaseException5);\n\n var _super5 = _createSuper(UnexpectedResponseException);\n\n function UnexpectedResponseException(msg, status) {\n var _this3;\n\n _classCallCheck(this, UnexpectedResponseException);\n\n _this3 = _super5.call(this, msg, \"UnexpectedResponseException\");\n _this3.status = status;\n return _this3;\n }\n\n return UnexpectedResponseException;\n}(BaseException);\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nvar FormatError = /*#__PURE__*/function (_BaseException6) {\n _inherits(FormatError, _BaseException6);\n\n var _super6 = _createSuper(FormatError);\n\n function FormatError(msg) {\n _classCallCheck(this, FormatError);\n\n return _super6.call(this, msg, \"FormatError\");\n }\n\n return FormatError;\n}(BaseException);\n\nexports.FormatError = FormatError;\n\nvar AbortException = /*#__PURE__*/function (_BaseException7) {\n _inherits(AbortException, _BaseException7);\n\n var _super7 = _createSuper(AbortException);\n\n function AbortException(msg) {\n _classCallCheck(this, AbortException);\n\n return _super7.call(this, msg, \"AbortException\");\n }\n\n return AbortException;\n}(BaseException);\n\nexports.AbortException = AbortException;\nvar NullCharactersRegExp = /\\x00+/g;\nvar InvisibleCharactersRegExp = /[\\x01-\\x1F]/g;\n\nfunction removeNullCharacters(str) {\n var replaceInvisible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (typeof str !== \"string\") {\n warn(\"The argument for removeNullCharacters must be a string.\");\n return str;\n }\n\n if (replaceInvisible) {\n str = str.replace(InvisibleCharactersRegExp, \" \");\n }\n\n return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && _typeof(bytes) === \"object\" && bytes.length !== undefined, \"Invalid argument for bytesToString\");\n var length = bytes.length;\n var MAX_ARGUMENT_COUNT = 8192;\n\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n\n var strBuf = [];\n\n for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n var chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n assert(typeof str === \"string\", \"Invalid argument for stringToBytes\");\n var length = str.length;\n var bytes = new Uint8Array(length);\n\n for (var i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n\n return bytes;\n}\n\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n\n assert(arr.byteLength !== undefined, \"arrayByteLength - invalid argument.\");\n return arr.byteLength;\n}\n\nfunction arraysToBytes(arr) {\n var length = arr.length;\n\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n\n var resultLength = 0;\n\n for (var i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n\n var pos = 0;\n var data = new Uint8Array(resultLength);\n\n for (var _i = 0; _i < length; _i++) {\n var item = arr[_i];\n\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n\n var itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\nfunction objectFromMap(map) {\n var obj = Object.create(null);\n\n var _iterator = _createForOfIteratorHelper(map),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n key = _step$value[0],\n value = _step$value[1];\n\n obj[key] = value;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return obj;\n}\n\nfunction isLittleEndian() {\n var buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n var view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\nvar IsLittleEndianCached = {\n get value() {\n return shadow(this, \"value\", isLittleEndian());\n }\n\n};\nexports.IsLittleEndianCached = IsLittleEndianCached;\n\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch (e) {\n return false;\n }\n}\n\nvar IsEvalSupportedCached = {\n get value() {\n return shadow(this, \"value\", isEvalSupported());\n }\n\n};\nexports.IsEvalSupportedCached = IsEvalSupportedCached;\n\nvar hexNumbers = _toConsumableArray(Array(256).keys()).map(function (n) {\n return n.toString(16).padStart(2, \"0\");\n});\n\nvar Util = /*#__PURE__*/function () {\n function Util() {\n _classCallCheck(this, Util);\n }\n\n _createClass(Util, null, [{\n key: \"makeHexColor\",\n value: function makeHexColor(r, g, b) {\n return \"#\".concat(hexNumbers[r]).concat(hexNumbers[g]).concat(hexNumbers[b]);\n }\n }, {\n key: \"transform\",\n value: function transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n }, {\n key: \"applyTransform\",\n value: function applyTransform(p, m) {\n var xt = p[0] * m[0] + p[1] * m[2] + m[4];\n var yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n }, {\n key: \"applyInverseTransform\",\n value: function applyInverseTransform(p, m) {\n var d = m[0] * m[3] - m[1] * m[2];\n var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n }, {\n key: \"getAxialAlignedBoundingBox\",\n value: function getAxialAlignedBoundingBox(r, m) {\n var p1 = Util.applyTransform(r, m);\n var p2 = Util.applyTransform(r.slice(2, 4), m);\n var p3 = Util.applyTransform([r[0], r[3]], m);\n var p4 = Util.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n }, {\n key: \"inverseTransform\",\n value: function inverseTransform(m) {\n var d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n }, {\n key: \"apply3dTransform\",\n value: function apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n }\n }, {\n key: \"singularValueDecompose2dScale\",\n value: function singularValueDecompose2dScale(m) {\n var transpose = [m[0], m[2], m[1], m[3]];\n var a = m[0] * transpose[0] + m[1] * transpose[2];\n var b = m[0] * transpose[1] + m[1] * transpose[3];\n var c = m[2] * transpose[0] + m[3] * transpose[2];\n var d = m[2] * transpose[1] + m[3] * transpose[3];\n var first = (a + d) / 2;\n var second = Math.sqrt(Math.pow(a + d, 2) - 4 * (a * d - c * b)) / 2;\n var sx = first + second || 1;\n var sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n }, {\n key: \"normalizeRect\",\n value: function normalizeRect(rect) {\n var r = rect.slice(0);\n\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n\n return r;\n }\n }, {\n key: \"intersect\",\n value: function intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);\n var orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);\n var result = [];\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return null;\n }\n\n if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return null;\n }\n\n return result;\n }\n }, {\n key: \"bezierBoundingBox\",\n value: function bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n var tvalues = [],\n bounds = [[], []];\n var a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n for (var i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n\n t = -c / b;\n\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n\n continue;\n }\n\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n\n if (b2ac < 0) {\n continue;\n }\n\n t1 = (-b + sqrtb2ac) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n\n t2 = (-b - sqrtb2ac) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n var j = tvalues.length,\n mt;\n var jlen = j;\n\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n return [Math.min.apply(Math, _toConsumableArray(bounds[0])), Math.min.apply(Math, _toConsumableArray(bounds[1])), Math.max.apply(Math, _toConsumableArray(bounds[0])), Math.max.apply(Math, _toConsumableArray(bounds[1]))];\n }\n }]);\n\n return Util;\n}();\n\nexports.Util = Util;\nvar PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac];\n\nfunction stringToPDFString(str) {\n var length = str.length,\n strBuf = [];\n\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n for (var i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n for (var _i2 = 2; _i2 < length; _i2 += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(_i2 + 1) << 8 | str.charCodeAt(_i2)));\n }\n } else {\n for (var _i3 = 0; _i3 < length; ++_i3) {\n var code = PDFStringTranslateTable[str.charCodeAt(_i3)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(_i3));\n }\n }\n\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n return str.replace(/([()\\\\\\n\\r])/g, function (match) {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n\n return \"\\\\\".concat(match);\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n var buf = [\"\\xFE\\xFF\"];\n\n for (var i = 0, ii = str.length; i < ii; i++) {\n var _char = str.charCodeAt(i);\n\n buf.push(String.fromCharCode(_char >> 8 & 0xff), String.fromCharCode(_char & 0xff));\n }\n\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isBool(v) {\n return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n return typeof v === \"number\";\n}\n\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nfunction isArrayBuffer(v) {\n return _typeof(v) === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n for (var i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getModificationDate() {\n var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date();\n var buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\n\nfunction createPromiseCapability() {\n var capability = Object.create(null);\n var isSettled = false;\n Object.defineProperty(capability, \"settled\", {\n get: function get() {\n return isSettled;\n }\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nfunction createObjectURL(data) {\n var contentType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (URL.createObjectURL && typeof Blob !== \"undefined\" && !forceDataSchema) {\n return URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n }\n\n var digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n var buffer = \"data:\".concat(contentType, \";base64,\");\n\n for (var i = 0, ii = data.length; i < ii; i += 3) {\n var b1 = data[i] & 0xff;\n var b2 = data[i + 1] & 0xff;\n var b3 = data[i + 2] & 0xff;\n var d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n var d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;\n var d4 = i + 2 < ii ? b3 & 0x3f : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n\n return buffer;\n}\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nvar _is_node = __w_pdfjs_require__(6);\n\nif (typeof globalThis === \"undefined\" || !globalThis._pdfjsCompatibilityChecked) {\n if (typeof globalThis === \"undefined\" || globalThis.Math !== Math) {\n globalThis = __w_pdfjs_require__(7);\n }\n\n globalThis._pdfjsCompatibilityChecked = true;\n\n (function checkNodeBtoa() {\n if (globalThis.btoa || !_is_node.isNodeJS) {\n return;\n }\n\n globalThis.btoa = function (chars) {\n return Buffer.from(chars, \"binary\").toString(\"base64\");\n };\n })();\n\n (function checkNodeAtob() {\n if (globalThis.atob || !_is_node.isNodeJS) {\n return;\n }\n\n globalThis.atob = function (input) {\n return Buffer.from(input, \"base64\").toString(\"binary\");\n };\n })();\n\n (function checkDOMMatrix() {\n if (globalThis.DOMMatrix || !_is_node.isNodeJS) {\n return;\n }\n\n globalThis.DOMMatrix = __w_pdfjs_require__(69);\n })();\n\n (function checkObjectFromEntries() {\n if (Object.fromEntries) {\n return;\n }\n\n __w_pdfjs_require__(70);\n })();\n\n (function checkPromise() {\n if (globalThis.Promise.allSettled) {\n return;\n }\n\n globalThis.Promise = __w_pdfjs_require__(97);\n })();\n\n (function checkReadableStream() {\n if (globalThis.ReadableStream || !_is_node.isNodeJS) {\n return;\n }\n\n globalThis.ReadableStream = (__w_pdfjs_require__(134).ReadableStream);\n })();\n}\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isNodeJS = void 0;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar isNodeJS = (typeof process === \"undefined\" ? \"undefined\" : _typeof(process)) === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 7 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(8);\nmodule.exports = __w_pdfjs_require__(10);\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar $ = __w_pdfjs_require__(9);\nvar global = __w_pdfjs_require__(10);\n$({ global: true }, { globalThis: global });\n\n/***/ }),\n/* 9 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar getOwnPropertyDescriptor = (__w_pdfjs_require__(11).f);\nvar createNonEnumerableProperty = __w_pdfjs_require__(47);\nvar redefine = __w_pdfjs_require__(50);\nvar setGlobal = __w_pdfjs_require__(41);\nvar copyConstructorProperties = __w_pdfjs_require__(57);\nvar isForced = __w_pdfjs_require__(68);\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target)\n for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else\n targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty)\n continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n if (options.sham || targetProperty && targetProperty.sham) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n redefine(target, key, sourceProperty, options);\n }\n};\n\n/***/ }),\n/* 10 */\n/***/ ((module) => {\n\nvar check = function (it) {\n return it && it.Math == Math && it;\n};\nmodule.exports = check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || (function () {\n return this;\n}()) || Function('return this')();\n\n/***/ }),\n/* 11 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(12);\nvar call = __w_pdfjs_require__(14);\nvar propertyIsEnumerableModule = __w_pdfjs_require__(15);\nvar createPropertyDescriptor = __w_pdfjs_require__(16);\nvar toIndexedObject = __w_pdfjs_require__(17);\nvar toPropertyKey = __w_pdfjs_require__(22);\nvar hasOwn = __w_pdfjs_require__(42);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(45);\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE)\n try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) {\n }\n if (hasOwn(O, P))\n return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n\n/***/ }),\n/* 12 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(13);\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, {\n get: function () {\n return 7;\n }\n })[1] != 7;\n});\n\n/***/ }),\n/* 13 */\n/***/ ((module) => {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n/***/ }),\n/* 14 */\n/***/ ((module) => {\n\nvar call = Function.prototype.call;\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n\n/***/ }),\n/* 15 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n/***/ }),\n/* 16 */\n/***/ ((module) => {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n/***/ }),\n/* 17 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar IndexedObject = __w_pdfjs_require__(18);\nvar requireObjectCoercible = __w_pdfjs_require__(21);\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n/***/ }),\n/* 18 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar uncurryThis = __w_pdfjs_require__(19);\nvar fails = __w_pdfjs_require__(13);\nvar classof = __w_pdfjs_require__(20);\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\nmodule.exports = fails(function () {\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n\n/***/ }),\n/* 19 */\n/***/ ((module) => {\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\nmodule.exports = bind ? function (fn) {\n return fn && callBind(call, fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n\n/***/ }),\n/* 20 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(19);\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n\n/***/ }),\n/* 21 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar TypeError = global.TypeError;\nmodule.exports = function (it) {\n if (it == undefined)\n throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n/***/ }),\n/* 22 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toPrimitive = __w_pdfjs_require__(23);\nvar isSymbol = __w_pdfjs_require__(26);\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n\n/***/ }),\n/* 23 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar call = __w_pdfjs_require__(14);\nvar isObject = __w_pdfjs_require__(24);\nvar isSymbol = __w_pdfjs_require__(26);\nvar getMethod = __w_pdfjs_require__(33);\nvar ordinaryToPrimitive = __w_pdfjs_require__(36);\nvar wellKnownSymbol = __w_pdfjs_require__(37);\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input))\n return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined)\n pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result))\n return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined)\n pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n\n/***/ }),\n/* 24 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(25);\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n\n/***/ }),\n/* 25 */\n/***/ ((module) => {\n\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n\n/***/ }),\n/* 26 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar getBuiltIn = __w_pdfjs_require__(27);\nvar isCallable = __w_pdfjs_require__(25);\nvar isPrototypeOf = __w_pdfjs_require__(28);\nvar USE_SYMBOL_AS_UID = __w_pdfjs_require__(29);\nvar Object = global.Object;\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n\n/***/ }),\n/* 27 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar isCallable = __w_pdfjs_require__(25);\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n\n/***/ }),\n/* 28 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(19);\nmodule.exports = uncurryThis({}.isPrototypeOf);\n\n/***/ }),\n/* 29 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar NATIVE_SYMBOL = __w_pdfjs_require__(30);\nmodule.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol';\n\n/***/ }),\n/* 30 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar V8_VERSION = __w_pdfjs_require__(31);\nvar fails = __w_pdfjs_require__(13);\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n return !String(symbol) || !(Object(symbol) instanceof Symbol) || !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n/***/ }),\n/* 31 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar userAgent = __w_pdfjs_require__(32);\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\nif (v8) {\n match = v8.split('.');\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match)\n version = +match[1];\n }\n}\nmodule.exports = version;\n\n/***/ }),\n/* 32 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(27);\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n/***/ }),\n/* 33 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar aCallable = __w_pdfjs_require__(34);\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n\n/***/ }),\n/* 34 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar isCallable = __w_pdfjs_require__(25);\nvar tryToString = __w_pdfjs_require__(35);\nvar TypeError = global.TypeError;\nmodule.exports = function (argument) {\n if (isCallable(argument))\n return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n\n/***/ }),\n/* 35 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar String = global.String;\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n\n/***/ }),\n/* 36 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar call = __w_pdfjs_require__(14);\nvar isCallable = __w_pdfjs_require__(25);\nvar isObject = __w_pdfjs_require__(24);\nvar TypeError = global.TypeError;\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input)))\n return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input)))\n return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input)))\n return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n/***/ }),\n/* 37 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar shared = __w_pdfjs_require__(38);\nvar hasOwn = __w_pdfjs_require__(42);\nvar uid = __w_pdfjs_require__(44);\nvar NATIVE_SYMBOL = __w_pdfjs_require__(30);\nvar USE_SYMBOL_AS_UID = __w_pdfjs_require__(29);\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n }\n return WellKnownSymbolsStore[name];\n};\n\n/***/ }),\n/* 38 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar IS_PURE = __w_pdfjs_require__(39);\nvar store = __w_pdfjs_require__(40);\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.19.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n\n/***/ }),\n/* 39 */\n/***/ ((module) => {\n\nmodule.exports = false;\n\n/***/ }),\n/* 40 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar setGlobal = __w_pdfjs_require__(41);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\nmodule.exports = store;\n\n/***/ }),\n/* 41 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar defineProperty = Object.defineProperty;\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, {\n value: value,\n configurable: true,\n writable: true\n });\n } catch (error) {\n global[key] = value;\n }\n return value;\n};\n\n/***/ }),\n/* 42 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(19);\nvar toObject = __w_pdfjs_require__(43);\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n\n/***/ }),\n/* 43 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar requireObjectCoercible = __w_pdfjs_require__(21);\nvar Object = global.Object;\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n/***/ }),\n/* 44 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(19);\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n\n/***/ }),\n/* 45 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(12);\nvar fails = __w_pdfjs_require__(13);\nvar createElement = __w_pdfjs_require__(46);\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () {\n return 7;\n }\n }).a != 7;\n});\n\n/***/ }),\n/* 46 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar isObject = __w_pdfjs_require__(24);\nvar document = global.document;\nvar EXISTS = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n/***/ }),\n/* 47 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(12);\nvar definePropertyModule = __w_pdfjs_require__(48);\nvar createPropertyDescriptor = __w_pdfjs_require__(16);\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n/***/ }),\n/* 48 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar DESCRIPTORS = __w_pdfjs_require__(12);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(45);\nvar anObject = __w_pdfjs_require__(49);\nvar toPropertyKey = __w_pdfjs_require__(22);\nvar TypeError = global.TypeError;\nvar $defineProperty = Object.defineProperty;\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE)\n try {\n return $defineProperty(O, P, Attributes);\n } catch (error) {\n }\n if ('get' in Attributes || 'set' in Attributes)\n throw TypeError('Accessors not supported');\n if ('value' in Attributes)\n O[P] = Attributes.value;\n return O;\n};\n\n/***/ }),\n/* 49 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar isObject = __w_pdfjs_require__(24);\nvar String = global.String;\nvar TypeError = global.TypeError;\nmodule.exports = function (argument) {\n if (isObject(argument))\n return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n\n/***/ }),\n/* 50 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar isCallable = __w_pdfjs_require__(25);\nvar hasOwn = __w_pdfjs_require__(42);\nvar createNonEnumerableProperty = __w_pdfjs_require__(47);\nvar setGlobal = __w_pdfjs_require__(41);\nvar inspectSource = __w_pdfjs_require__(51);\nvar InternalStateModule = __w_pdfjs_require__(52);\nvar CONFIGURABLE_FUNCTION_NAME = (__w_pdfjs_require__(56).CONFIGURABLE);\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || CONFIGURABLE_FUNCTION_NAME && value.name !== name) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple)\n O[key] = value;\n else\n setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple)\n O[key] = value;\n else\n createNonEnumerableProperty(O, key, value);\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n\n/***/ }),\n/* 51 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(19);\nvar isCallable = __w_pdfjs_require__(25);\nvar store = __w_pdfjs_require__(40);\nvar functionToString = uncurryThis(Function.toString);\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\nmodule.exports = store.inspectSource;\n\n/***/ }),\n/* 52 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar NATIVE_WEAK_MAP = __w_pdfjs_require__(53);\nvar global = __w_pdfjs_require__(10);\nvar uncurryThis = __w_pdfjs_require__(19);\nvar isObject = __w_pdfjs_require__(24);\nvar createNonEnumerableProperty = __w_pdfjs_require__(47);\nvar hasOwn = __w_pdfjs_require__(42);\nvar shared = __w_pdfjs_require__(40);\nvar sharedKey = __w_pdfjs_require__(54);\nvar hiddenKeys = __w_pdfjs_require__(55);\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n }\n return state;\n };\n};\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it))\n throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE))\n throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n/***/ }),\n/* 53 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar isCallable = __w_pdfjs_require__(25);\nvar inspectSource = __w_pdfjs_require__(51);\nvar WeakMap = global.WeakMap;\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n\n/***/ }),\n/* 54 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar shared = __w_pdfjs_require__(38);\nvar uid = __w_pdfjs_require__(44);\nvar keys = shared('keys');\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n/***/ }),\n/* 55 */\n/***/ ((module) => {\n\nmodule.exports = {};\n\n/***/ }),\n/* 56 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(12);\nvar hasOwn = __w_pdfjs_require__(42);\nvar FunctionPrototype = Function.prototype;\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\nvar PROPER = EXISTS && function something() {\n}.name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable);\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n\n/***/ }),\n/* 57 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar hasOwn = __w_pdfjs_require__(42);\nvar ownKeys = __w_pdfjs_require__(58);\nvar getOwnPropertyDescriptorModule = __w_pdfjs_require__(11);\nvar definePropertyModule = __w_pdfjs_require__(48);\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key))\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\n/***/ }),\n/* 58 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(27);\nvar uncurryThis = __w_pdfjs_require__(19);\nvar getOwnPropertyNamesModule = __w_pdfjs_require__(59);\nvar getOwnPropertySymbolsModule = __w_pdfjs_require__(67);\nvar anObject = __w_pdfjs_require__(49);\nvar concat = uncurryThis([].concat);\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n\n/***/ }),\n/* 59 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar internalObjectKeys = __w_pdfjs_require__(60);\nvar enumBugKeys = __w_pdfjs_require__(66);\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n/***/ }),\n/* 60 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(19);\nvar hasOwn = __w_pdfjs_require__(42);\nvar toIndexedObject = __w_pdfjs_require__(17);\nvar indexOf = (__w_pdfjs_require__(61).indexOf);\nvar hiddenKeys = __w_pdfjs_require__(55);\nvar push = uncurryThis([].push);\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O)\n !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n while (names.length > i)\n if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n\n/***/ }),\n/* 61 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toIndexedObject = __w_pdfjs_require__(17);\nvar toAbsoluteIndex = __w_pdfjs_require__(62);\nvar lengthOfArrayLike = __w_pdfjs_require__(64);\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n if (IS_INCLUDES && el != el)\n while (length > index) {\n value = O[index++];\n if (value != value)\n return true;\n }\n else\n for (; length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el)\n return IS_INCLUDES || index || 0;\n }\n return !IS_INCLUDES && -1;\n };\n};\nmodule.exports = {\n includes: createMethod(true),\n indexOf: createMethod(false)\n};\n\n/***/ }),\n/* 62 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toIntegerOrInfinity = __w_pdfjs_require__(63);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n/***/ }),\n/* 63 */\n/***/ ((module) => {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (argument) {\n var number = +argument;\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n\n/***/ }),\n/* 64 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toLength = __w_pdfjs_require__(65);\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n\n/***/ }),\n/* 65 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toIntegerOrInfinity = __w_pdfjs_require__(63);\nvar min = Math.min;\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0;\n};\n\n/***/ }),\n/* 66 */\n/***/ ((module) => {\n\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n/***/ }),\n/* 67 */\n/***/ ((__unused_webpack_module, exports) => {\n\nexports.f = Object.getOwnPropertySymbols;\n\n/***/ }),\n/* 68 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(13);\nvar isCallable = __w_pdfjs_require__(25);\nvar replacement = /#|\\.prototype\\./;\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true : value == NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection;\n};\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\nmodule.exports = isForced;\n\n/***/ }),\n/* 69 */\n/***/ ((module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n ( false ? 0 : _typeof(exports)) === 'object' && \"object\" !== 'undefined' ? module.exports = factory() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __w_pdfjs_require__, exports, module)) :\n\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0);\n})(void 0, function () {\n 'use strict';\n\n function fromArray(array) {\n var m = new CSSMatrix();\n var a = Array.from(array);\n\n if (!a.every(function (n) {\n return !Number.isNaN(n);\n })) {\n throw TypeError(\"CSSMatrix: \\\"\" + array + \"\\\" must only have numbers.\");\n }\n\n if (a.length === 16) {\n var m11 = a[0];\n var m12 = a[1];\n var m13 = a[2];\n var m14 = a[3];\n var m21 = a[4];\n var m22 = a[5];\n var m23 = a[6];\n var m24 = a[7];\n var m31 = a[8];\n var m32 = a[9];\n var m33 = a[10];\n var m34 = a[11];\n var m41 = a[12];\n var m42 = a[13];\n var m43 = a[14];\n var m44 = a[15];\n m.m11 = m11;\n m.a = m11;\n m.m21 = m21;\n m.c = m21;\n m.m31 = m31;\n m.m41 = m41;\n m.e = m41;\n m.m12 = m12;\n m.b = m12;\n m.m22 = m22;\n m.d = m22;\n m.m32 = m32;\n m.m42 = m42;\n m.f = m42;\n m.m13 = m13;\n m.m23 = m23;\n m.m33 = m33;\n m.m43 = m43;\n m.m14 = m14;\n m.m24 = m24;\n m.m34 = m34;\n m.m44 = m44;\n } else if (a.length === 6) {\n var M11 = a[0];\n var M12 = a[1];\n var M21 = a[2];\n var M22 = a[3];\n var M41 = a[4];\n var M42 = a[5];\n m.m11 = M11;\n m.a = M11;\n m.m12 = M12;\n m.b = M12;\n m.m21 = M21;\n m.c = M21;\n m.m22 = M22;\n m.d = M22;\n m.m41 = M41;\n m.e = M41;\n m.m42 = M42;\n m.f = M42;\n } else {\n throw new TypeError('CSSMatrix: expecting an Array of 6/16 values.');\n }\n\n return m;\n }\n\n function fromMatrix(m) {\n var keys = Object.keys(new CSSMatrix());\n\n if (_typeof(m) === 'object' && keys.every(function (k) {\n return k in m;\n })) {\n return fromArray([m.m11, m.m12, m.m13, m.m14, m.m21, m.m22, m.m23, m.m24, m.m31, m.m32, m.m33, m.m34, m.m41, m.m42, m.m43, m.m44]);\n }\n\n throw TypeError(\"CSSMatrix: \\\"\" + m + \"\\\" is not a DOMMatrix / CSSMatrix / JSON compatible object.\");\n }\n\n function fromString(source) {\n if (typeof source !== 'string') {\n throw TypeError(\"CSSMatrix: \\\"\" + source + \"\\\" is not a string.\");\n }\n\n var str = String(source).replace(/\\s/g, '');\n var m = new CSSMatrix();\n var invalidStringError = \"CSSMatrix: invalid transform string \\\"\" + source + \"\\\"\";\n str.split(')').filter(function (f) {\n return f;\n }).forEach(function (tf) {\n var ref = tf.split('(');\n var prop = ref[0];\n var value = ref[1];\n\n if (!value) {\n throw TypeError(invalidStringError);\n }\n\n var components = value.split(',').map(function (n) {\n return n.includes('rad') ? parseFloat(n) * (180 / Math.PI) : parseFloat(n);\n });\n var x = components[0];\n var y = components[1];\n var z = components[2];\n var a = components[3];\n var xyz = [x, y, z];\n var xyza = [x, y, z, a];\n\n if (prop === 'perspective' && x && [y, z].every(function (n) {\n return n === undefined;\n })) {\n m.m34 = -1 / x;\n } else if (prop.includes('matrix') && [6, 16].includes(components.length) && components.every(function (n) {\n return !Number.isNaN(+n);\n })) {\n var values = components.map(function (n) {\n return Math.abs(n) < 1e-6 ? 0 : n;\n });\n m = m.multiply(fromArray(values));\n } else if (prop === 'translate3d' && xyz.every(function (n) {\n return !Number.isNaN(+n);\n })) {\n m = m.translate(x, y, z);\n } else if (prop === 'translate' && x && z === undefined) {\n m = m.translate(x, y || 0, 0);\n } else if (prop === 'rotate3d' && xyza.every(function (n) {\n return !Number.isNaN(+n);\n }) && a) {\n m = m.rotateAxisAngle(x, y, z, a);\n } else if (prop === 'rotate' && x && [y, z].every(function (n) {\n return n === undefined;\n })) {\n m = m.rotate(0, 0, x);\n } else if (prop === 'scale3d' && xyz.every(function (n) {\n return !Number.isNaN(+n);\n }) && xyz.some(function (n) {\n return n !== 1;\n })) {\n m = m.scale(x, y, z);\n } else if (prop === 'scale' && !Number.isNaN(x) && x !== 1 && z === undefined) {\n var nosy = Number.isNaN(+y);\n var sy = nosy ? x : y;\n m = m.scale(x, sy, 1);\n } else if (prop === 'skew' && x && z === undefined) {\n m = m.skewX(x);\n m = y ? m.skewY(y) : m;\n } else if (/[XYZ]/.test(prop) && x && [y, z].every(function (n) {\n return n === undefined;\n }) && ['translate', 'rotate', 'scale', 'skew'].some(function (p) {\n return prop.includes(p);\n })) {\n if (['skewX', 'skewY'].includes(prop)) {\n m = m[prop](x);\n } else {\n var fn = prop.replace(/[XYZ]/, '');\n var axis = prop.replace(fn, '');\n var idx = ['X', 'Y', 'Z'].indexOf(axis);\n var axeValues = [idx === 0 ? x : 0, idx === 1 ? x : 0, idx === 2 ? x : 0];\n m = m[fn].apply(m, axeValues);\n }\n } else {\n throw TypeError(invalidStringError);\n }\n });\n return m;\n }\n\n function Translate(x, y, z) {\n var m = new CSSMatrix();\n m.m41 = x;\n m.e = x;\n m.m42 = y;\n m.f = y;\n m.m43 = z;\n return m;\n }\n\n function Rotate(rx, ry, rz) {\n var m = new CSSMatrix();\n var degToRad = Math.PI / 180;\n var radX = rx * degToRad;\n var radY = ry * degToRad;\n var radZ = rz * degToRad;\n var cosx = Math.cos(radX);\n var sinx = -Math.sin(radX);\n var cosy = Math.cos(radY);\n var siny = -Math.sin(radY);\n var cosz = Math.cos(radZ);\n var sinz = -Math.sin(radZ);\n var m11 = cosy * cosz;\n var m12 = -cosy * sinz;\n m.m11 = m11;\n m.a = m11;\n m.m12 = m12;\n m.b = m12;\n m.m13 = siny;\n var m21 = sinx * siny * cosz + cosx * sinz;\n m.m21 = m21;\n m.c = m21;\n var m22 = cosx * cosz - sinx * siny * sinz;\n m.m22 = m22;\n m.d = m22;\n m.m23 = -sinx * cosy;\n m.m31 = sinx * sinz - cosx * siny * cosz;\n m.m32 = sinx * cosz + cosx * siny * sinz;\n m.m33 = cosx * cosy;\n return m;\n }\n\n function RotateAxisAngle(x, y, z, alpha) {\n var m = new CSSMatrix();\n var angle = alpha * (Math.PI / 360);\n var sinA = Math.sin(angle);\n var cosA = Math.cos(angle);\n var sinA2 = sinA * sinA;\n var length = Math.sqrt(x * x + y * y + z * z);\n var X = x;\n var Y = y;\n var Z = z;\n\n if (length === 0) {\n X = 0;\n Y = 0;\n Z = 1;\n } else {\n X /= length;\n Y /= length;\n Z /= length;\n }\n\n var x2 = X * X;\n var y2 = Y * Y;\n var z2 = Z * Z;\n var m11 = 1 - 2 * (y2 + z2) * sinA2;\n m.m11 = m11;\n m.a = m11;\n var m12 = 2 * (X * Y * sinA2 + Z * sinA * cosA);\n m.m12 = m12;\n m.b = m12;\n m.m13 = 2 * (X * Z * sinA2 - Y * sinA * cosA);\n var m21 = 2 * (Y * X * sinA2 - Z * sinA * cosA);\n m.m21 = m21;\n m.c = m21;\n var m22 = 1 - 2 * (z2 + x2) * sinA2;\n m.m22 = m22;\n m.d = m22;\n m.m23 = 2 * (Y * Z * sinA2 + X * sinA * cosA);\n m.m31 = 2 * (Z * X * sinA2 + Y * sinA * cosA);\n m.m32 = 2 * (Z * Y * sinA2 - X * sinA * cosA);\n m.m33 = 1 - 2 * (x2 + y2) * sinA2;\n return m;\n }\n\n function Scale(x, y, z) {\n var m = new CSSMatrix();\n m.m11 = x;\n m.a = x;\n m.m22 = y;\n m.d = y;\n m.m33 = z;\n return m;\n }\n\n function SkewX(angle) {\n var m = new CSSMatrix();\n var radA = angle * Math.PI / 180;\n var t = Math.tan(radA);\n m.m21 = t;\n m.c = t;\n return m;\n }\n\n function SkewY(angle) {\n var m = new CSSMatrix();\n var radA = angle * Math.PI / 180;\n var t = Math.tan(radA);\n m.m12 = t;\n m.b = t;\n return m;\n }\n\n function Multiply(m1, m2) {\n var m11 = m2.m11 * m1.m11 + m2.m12 * m1.m21 + m2.m13 * m1.m31 + m2.m14 * m1.m41;\n var m12 = m2.m11 * m1.m12 + m2.m12 * m1.m22 + m2.m13 * m1.m32 + m2.m14 * m1.m42;\n var m13 = m2.m11 * m1.m13 + m2.m12 * m1.m23 + m2.m13 * m1.m33 + m2.m14 * m1.m43;\n var m14 = m2.m11 * m1.m14 + m2.m12 * m1.m24 + m2.m13 * m1.m34 + m2.m14 * m1.m44;\n var m21 = m2.m21 * m1.m11 + m2.m22 * m1.m21 + m2.m23 * m1.m31 + m2.m24 * m1.m41;\n var m22 = m2.m21 * m1.m12 + m2.m22 * m1.m22 + m2.m23 * m1.m32 + m2.m24 * m1.m42;\n var m23 = m2.m21 * m1.m13 + m2.m22 * m1.m23 + m2.m23 * m1.m33 + m2.m24 * m1.m43;\n var m24 = m2.m21 * m1.m14 + m2.m22 * m1.m24 + m2.m23 * m1.m34 + m2.m24 * m1.m44;\n var m31 = m2.m31 * m1.m11 + m2.m32 * m1.m21 + m2.m33 * m1.m31 + m2.m34 * m1.m41;\n var m32 = m2.m31 * m1.m12 + m2.m32 * m1.m22 + m2.m33 * m1.m32 + m2.m34 * m1.m42;\n var m33 = m2.m31 * m1.m13 + m2.m32 * m1.m23 + m2.m33 * m1.m33 + m2.m34 * m1.m43;\n var m34 = m2.m31 * m1.m14 + m2.m32 * m1.m24 + m2.m33 * m1.m34 + m2.m34 * m1.m44;\n var m41 = m2.m41 * m1.m11 + m2.m42 * m1.m21 + m2.m43 * m1.m31 + m2.m44 * m1.m41;\n var m42 = m2.m41 * m1.m12 + m2.m42 * m1.m22 + m2.m43 * m1.m32 + m2.m44 * m1.m42;\n var m43 = m2.m41 * m1.m13 + m2.m42 * m1.m23 + m2.m43 * m1.m33 + m2.m44 * m1.m43;\n var m44 = m2.m41 * m1.m14 + m2.m42 * m1.m24 + m2.m43 * m1.m34 + m2.m44 * m1.m44;\n return fromArray([m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44]);\n }\n\n var CSSMatrix = function CSSMatrix() {\n var args = [],\n len = arguments.length;\n\n while (len--) {\n args[len] = arguments[len];\n }\n\n var m = this;\n m.a = 1;\n m.b = 0;\n m.c = 0;\n m.d = 1;\n m.e = 0;\n m.f = 0;\n m.m11 = 1;\n m.m12 = 0;\n m.m13 = 0;\n m.m14 = 0;\n m.m21 = 0;\n m.m22 = 1;\n m.m23 = 0;\n m.m24 = 0;\n m.m31 = 0;\n m.m32 = 0;\n m.m33 = 1;\n m.m34 = 0;\n m.m41 = 0;\n m.m42 = 0;\n m.m43 = 0;\n m.m44 = 1;\n\n if (args && args.length) {\n var ARGS = [16, 6].some(function (l) {\n return l === args.length;\n }) ? args : args[0];\n return m.setMatrixValue(ARGS);\n }\n\n return m;\n };\n\n var prototypeAccessors = {\n isIdentity: {\n configurable: true\n },\n is2D: {\n configurable: true\n }\n };\n\n prototypeAccessors.isIdentity.set = function (value) {\n this.isIdentity = value;\n };\n\n prototypeAccessors.isIdentity.get = function () {\n var m = this;\n return m.m11 === 1 && m.m12 === 0 && m.m13 === 0 && m.m14 === 0 && m.m21 === 0 && m.m22 === 1 && m.m23 === 0 && m.m24 === 0 && m.m31 === 0 && m.m32 === 0 && m.m33 === 1 && m.m34 === 0 && m.m41 === 0 && m.m42 === 0 && m.m43 === 0 && m.m44 === 1;\n };\n\n prototypeAccessors.is2D.get = function () {\n var m = this;\n return m.m31 === 0 && m.m32 === 0 && m.m33 === 1 && m.m34 === 0 && m.m43 === 0 && m.m44 === 1;\n };\n\n prototypeAccessors.is2D.set = function (value) {\n this.is2D = value;\n };\n\n CSSMatrix.prototype.setMatrixValue = function setMatrixValue(source) {\n var m = this;\n\n if ([Array, Float64Array, Float32Array].some(function (a) {\n return source instanceof a;\n })) {\n return fromArray(source);\n }\n\n if (typeof source === 'string' && source.length && source !== 'none') {\n return fromString(source);\n }\n\n if (_typeof(source) === 'object') {\n return fromMatrix(source);\n }\n\n return m;\n };\n\n CSSMatrix.prototype.toArray = function toArray() {\n var m = this;\n var pow = Math.pow(10, 6);\n var result;\n\n if (m.is2D) {\n result = [m.a, m.b, m.c, m.d, m.e, m.f];\n } else {\n result = [m.m11, m.m12, m.m13, m.m14, m.m21, m.m22, m.m23, m.m24, m.m31, m.m32, m.m33, m.m34, m.m41, m.m42, m.m43, m.m44];\n }\n\n return result.map(function (n) {\n return Math.abs(n) < 1e-6 ? 0 : (n * pow >> 0) / pow;\n });\n };\n\n CSSMatrix.prototype.toString = function toString() {\n var m = this;\n var values = m.toArray();\n var type = m.is2D ? 'matrix' : 'matrix3d';\n return type + \"(\" + values + \")\";\n };\n\n CSSMatrix.prototype.toJSON = function toJSON() {\n var m = this;\n var is2D = m.is2D;\n var isIdentity = m.isIdentity;\n return Object.assign({}, m, {\n is2D: is2D,\n isIdentity: isIdentity\n });\n };\n\n CSSMatrix.prototype.multiply = function multiply(m2) {\n return Multiply(this, m2);\n };\n\n CSSMatrix.prototype.translate = function translate(x, y, z) {\n var X = x;\n var Y = y;\n var Z = z;\n\n if (Z === undefined) {\n Z = 0;\n }\n\n if (Y === undefined) {\n Y = 0;\n }\n\n return Multiply(this, Translate(X, Y, Z));\n };\n\n CSSMatrix.prototype.scale = function scale(x, y, z) {\n var X = x;\n var Y = y;\n var Z = z;\n\n if (Y === undefined) {\n Y = x;\n }\n\n if (Z === undefined) {\n Z = 1;\n }\n\n return Multiply(this, Scale(X, Y, Z));\n };\n\n CSSMatrix.prototype.rotate = function rotate(rx, ry, rz) {\n var RX = rx;\n var RY = ry;\n var RZ = rz;\n\n if (RY === undefined) {\n RY = 0;\n }\n\n if (RZ === undefined) {\n RZ = RX;\n RX = 0;\n }\n\n return Multiply(this, Rotate(RX, RY, RZ));\n };\n\n CSSMatrix.prototype.rotateAxisAngle = function rotateAxisAngle(x, y, z, angle) {\n if ([x, y, z, angle].some(function (n) {\n return Number.isNaN(n);\n })) {\n throw new TypeError('CSSMatrix: expecting 4 values');\n }\n\n return Multiply(this, RotateAxisAngle(x, y, z, angle));\n };\n\n CSSMatrix.prototype.skewX = function skewX(angle) {\n return Multiply(this, SkewX(angle));\n };\n\n CSSMatrix.prototype.skewY = function skewY(angle) {\n return Multiply(this, SkewY(angle));\n };\n\n CSSMatrix.prototype.transformPoint = function transformPoint(v) {\n var M = this;\n var m = Translate(v.x, v.y, v.z);\n m.m44 = v.w || 1;\n m = M.multiply(m);\n return {\n x: m.m41,\n y: m.m42,\n z: m.m43,\n w: m.m44\n };\n };\n\n CSSMatrix.prototype.transform = function transform(t) {\n var m = this;\n var x = m.m11 * t.x + m.m12 * t.y + m.m13 * t.z + m.m14 * t.w;\n var y = m.m21 * t.x + m.m22 * t.y + m.m23 * t.z + m.m24 * t.w;\n var z = m.m31 * t.x + m.m32 * t.y + m.m33 * t.z + m.m34 * t.w;\n var w = m.m41 * t.x + m.m42 * t.y + m.m43 * t.z + m.m44 * t.w;\n return {\n x: x / w,\n y: y / w,\n z: z / w,\n w: w\n };\n };\n\n Object.defineProperties(CSSMatrix.prototype, prototypeAccessors);\n Object.assign(CSSMatrix, {\n Translate: Translate,\n Rotate: Rotate,\n RotateAxisAngle: RotateAxisAngle,\n Scale: Scale,\n SkewX: SkewX,\n SkewY: SkewY,\n Multiply: Multiply,\n fromArray: fromArray,\n fromMatrix: fromMatrix,\n fromString: fromString\n });\n var version = \"0.0.24\";\n var Version = version;\n Object.assign(CSSMatrix, {\n Version: Version\n });\n return CSSMatrix;\n});\n\n/***/ }),\n/* 70 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(71);\n__w_pdfjs_require__(86);\nvar path = __w_pdfjs_require__(96);\nmodule.exports = path.Object.fromEntries;\n\n/***/ }),\n/* 71 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar toIndexedObject = __w_pdfjs_require__(17);\nvar addToUnscopables = __w_pdfjs_require__(72);\nvar Iterators = __w_pdfjs_require__(77);\nvar InternalStateModule = __w_pdfjs_require__(52);\nvar defineIterator = __w_pdfjs_require__(78);\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated),\n index: 0,\n kind: kind\n });\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return {\n value: undefined,\n done: true\n };\n }\n if (kind == 'keys')\n return {\n value: index,\n done: false\n };\n if (kind == 'values')\n return {\n value: target[index],\n done: false\n };\n return {\n value: [\n index,\n target[index]\n ],\n done: false\n };\n}, 'values');\nIterators.Arguments = Iterators.Array;\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n/***/ }),\n/* 72 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(37);\nvar create = __w_pdfjs_require__(73);\nvar definePropertyModule = __w_pdfjs_require__(48);\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n/***/ }),\n/* 73 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar anObject = __w_pdfjs_require__(49);\nvar defineProperties = __w_pdfjs_require__(74);\nvar enumBugKeys = __w_pdfjs_require__(66);\nvar hiddenKeys = __w_pdfjs_require__(55);\nvar html = __w_pdfjs_require__(76);\nvar documentCreateElement = __w_pdfjs_require__(46);\nvar sharedKey = __w_pdfjs_require__(54);\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar EmptyConstructor = function () {\n};\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null;\n return temp;\n};\nvar NullProtoObjectViaIFrame = function () {\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) {\n }\n NullProtoObject = typeof document != 'undefined' ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument);\n var length = enumBugKeys.length;\n while (length--)\n delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\nhiddenKeys[IE_PROTO] = true;\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n result[IE_PROTO] = O;\n } else\n result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n/***/ }),\n/* 74 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(12);\nvar definePropertyModule = __w_pdfjs_require__(48);\nvar anObject = __w_pdfjs_require__(49);\nvar toIndexedObject = __w_pdfjs_require__(17);\nvar objectKeys = __w_pdfjs_require__(75);\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index)\n definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n\n/***/ }),\n/* 75 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar internalObjectKeys = __w_pdfjs_require__(60);\nvar enumBugKeys = __w_pdfjs_require__(66);\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n/***/ }),\n/* 76 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(27);\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n/***/ }),\n/* 77 */\n/***/ ((module) => {\n\nmodule.exports = {};\n\n/***/ }),\n/* 78 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(9);\nvar call = __w_pdfjs_require__(14);\nvar IS_PURE = __w_pdfjs_require__(39);\nvar FunctionName = __w_pdfjs_require__(56);\nvar isCallable = __w_pdfjs_require__(25);\nvar createIteratorConstructor = __w_pdfjs_require__(79);\nvar getPrototypeOf = __w_pdfjs_require__(81);\nvar setPrototypeOf = __w_pdfjs_require__(84);\nvar setToStringTag = __w_pdfjs_require__(83);\nvar createNonEnumerableProperty = __w_pdfjs_require__(47);\nvar redefine = __w_pdfjs_require__(50);\nvar wellKnownSymbol = __w_pdfjs_require__(37);\nvar Iterators = __w_pdfjs_require__(77);\nvar IteratorsCore = __w_pdfjs_require__(80);\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\nvar returnThis = function () {\n return this;\n};\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator)\n return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype)\n return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS:\n return function keys() {\n return new IteratorConstructor(this, KIND);\n };\n case VALUES:\n return function values() {\n return new IteratorConstructor(this, KIND);\n };\n case ENTRIES:\n return function entries() {\n return new IteratorConstructor(this, KIND);\n };\n }\n return function () {\n return new IteratorConstructor(this);\n };\n };\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE)\n Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() {\n return call(nativeIterator, this);\n };\n }\n }\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED)\n for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n }\n else\n $({\n target: NAME,\n proto: true,\n forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME\n }, methods);\n }\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n return methods;\n};\n\n/***/ }),\n/* 79 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar IteratorPrototype = (__w_pdfjs_require__(80).IteratorPrototype);\nvar create = __w_pdfjs_require__(73);\nvar createPropertyDescriptor = __w_pdfjs_require__(16);\nvar setToStringTag = __w_pdfjs_require__(83);\nvar Iterators = __w_pdfjs_require__(77);\nvar returnThis = function () {\n return this;\n};\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n/***/ }),\n/* 80 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar fails = __w_pdfjs_require__(13);\nvar isCallable = __w_pdfjs_require__(25);\nvar create = __w_pdfjs_require__(73);\nvar getPrototypeOf = __w_pdfjs_require__(81);\nvar redefine = __w_pdfjs_require__(50);\nvar wellKnownSymbol = __w_pdfjs_require__(37);\nvar IS_PURE = __w_pdfjs_require__(39);\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\nif ([].keys) {\n arrayIterator = [].keys();\n if (!('next' in arrayIterator))\n BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype)\n IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\nif (NEW_ITERATOR_PROTOTYPE)\n IteratorPrototype = {};\nelse if (IS_PURE)\n IteratorPrototype = create(IteratorPrototype);\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n/***/ }),\n/* 81 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar hasOwn = __w_pdfjs_require__(42);\nvar isCallable = __w_pdfjs_require__(25);\nvar toObject = __w_pdfjs_require__(43);\nvar sharedKey = __w_pdfjs_require__(54);\nvar CORRECT_PROTOTYPE_GETTER = __w_pdfjs_require__(82);\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO))\n return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n }\n return object instanceof Object ? ObjectPrototype : null;\n};\n\n/***/ }),\n/* 82 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(13);\nmodule.exports = !fails(function () {\n function F() {\n }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n/***/ }),\n/* 83 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar defineProperty = (__w_pdfjs_require__(48).f);\nvar hasOwn = __w_pdfjs_require__(42);\nvar wellKnownSymbol = __w_pdfjs_require__(37);\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !hasOwn(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, {\n configurable: true,\n value: TAG\n });\n }\n};\n\n/***/ }),\n/* 84 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(19);\nvar anObject = __w_pdfjs_require__(49);\nvar aPossiblePrototype = __w_pdfjs_require__(85);\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? (function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) {\n }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER)\n setter(O, proto);\n else\n O.__proto__ = proto;\n return O;\n };\n}()) : undefined);\n\n/***/ }),\n/* 85 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar isCallable = __w_pdfjs_require__(25);\nvar String = global.String;\nvar TypeError = global.TypeError;\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument))\n return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n\n/***/ }),\n/* 86 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar $ = __w_pdfjs_require__(9);\nvar iterate = __w_pdfjs_require__(87);\nvar createProperty = __w_pdfjs_require__(95);\n$({\n target: 'Object',\n stat: true\n}, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n\n/***/ }),\n/* 87 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar bind = __w_pdfjs_require__(88);\nvar call = __w_pdfjs_require__(14);\nvar anObject = __w_pdfjs_require__(49);\nvar tryToString = __w_pdfjs_require__(35);\nvar isArrayIteratorMethod = __w_pdfjs_require__(89);\nvar lengthOfArrayLike = __w_pdfjs_require__(64);\nvar isPrototypeOf = __w_pdfjs_require__(28);\nvar getIterator = __w_pdfjs_require__(90);\nvar getIteratorMethod = __w_pdfjs_require__(91);\nvar iteratorClose = __w_pdfjs_require__(94);\nvar TypeError = global.TypeError;\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\nvar ResultPrototype = Result.prototype;\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n var stop = function (condition) {\n if (iterator)\n iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n }\n return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn)\n throw TypeError(tryToString(iterable) + ' is not iterable');\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result))\n return result;\n }\n return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result))\n return result;\n }\n return new Result(false);\n};\n\n/***/ }),\n/* 88 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(19);\nvar aCallable = __w_pdfjs_require__(34);\nvar bind = uncurryThis(uncurryThis.bind);\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function () {\n return fn.apply(that, arguments);\n };\n};\n\n/***/ }),\n/* 89 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(37);\nvar Iterators = __w_pdfjs_require__(77);\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n/***/ }),\n/* 90 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar call = __w_pdfjs_require__(14);\nvar aCallable = __w_pdfjs_require__(34);\nvar anObject = __w_pdfjs_require__(49);\nvar tryToString = __w_pdfjs_require__(35);\nvar getIteratorMethod = __w_pdfjs_require__(91);\nvar TypeError = global.TypeError;\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod))\n return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n\n/***/ }),\n/* 91 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar classof = __w_pdfjs_require__(92);\nvar getMethod = __w_pdfjs_require__(33);\nvar Iterators = __w_pdfjs_require__(77);\nvar wellKnownSymbol = __w_pdfjs_require__(37);\nvar ITERATOR = wellKnownSymbol('iterator');\nmodule.exports = function (it) {\n if (it != undefined)\n return getMethod(it, ITERATOR) || getMethod(it, '@@iterator') || Iterators[classof(it)];\n};\n\n/***/ }),\n/* 92 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(93);\nvar isCallable = __w_pdfjs_require__(25);\nvar classofRaw = __w_pdfjs_require__(20);\nvar wellKnownSymbol = __w_pdfjs_require__(37);\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\nvar CORRECT_ARGUMENTS = classofRaw((function () {\n return arguments;\n}())) == 'Arguments';\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) {\n }\n};\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n\n/***/ }),\n/* 93 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(37);\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\ntest[TO_STRING_TAG] = 'z';\nmodule.exports = String(test) === '[object z]';\n\n/***/ }),\n/* 94 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(14);\nvar anObject = __w_pdfjs_require__(49);\nvar getMethod = __w_pdfjs_require__(33);\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw')\n throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw')\n throw value;\n if (innerError)\n throw innerResult;\n anObject(innerResult);\n return value;\n};\n\n/***/ }),\n/* 95 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar toPropertyKey = __w_pdfjs_require__(22);\nvar definePropertyModule = __w_pdfjs_require__(48);\nvar createPropertyDescriptor = __w_pdfjs_require__(16);\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object)\n definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else\n object[propertyKey] = value;\n};\n\n/***/ }),\n/* 96 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nmodule.exports = global;\n\n/***/ }),\n/* 97 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(98);\n__w_pdfjs_require__(71);\n__w_pdfjs_require__(105);\n__w_pdfjs_require__(107);\n__w_pdfjs_require__(129);\n__w_pdfjs_require__(130);\n__w_pdfjs_require__(131);\n__w_pdfjs_require__(132);\nvar path = __w_pdfjs_require__(96);\nmodule.exports = path.Promise;\n\n/***/ }),\n/* 98 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(9);\nvar global = __w_pdfjs_require__(10);\nvar isPrototypeOf = __w_pdfjs_require__(28);\nvar getPrototypeOf = __w_pdfjs_require__(81);\nvar setPrototypeOf = __w_pdfjs_require__(84);\nvar copyConstructorProperties = __w_pdfjs_require__(57);\nvar create = __w_pdfjs_require__(73);\nvar createNonEnumerableProperty = __w_pdfjs_require__(47);\nvar createPropertyDescriptor = __w_pdfjs_require__(16);\nvar clearErrorStack = __w_pdfjs_require__(99);\nvar installErrorCause = __w_pdfjs_require__(101);\nvar iterate = __w_pdfjs_require__(87);\nvar normalizeStringArgument = __w_pdfjs_require__(102);\nvar wellKnownSymbol = __w_pdfjs_require__(37);\nvar ERROR_STACK_INSTALLABLE = __w_pdfjs_require__(104);\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Error = global.Error;\nvar push = [].push;\nvar $AggregateError = function AggregateError(errors, message) {\n var options = arguments.length > 2 ? arguments[2] : undefined;\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf(new Error(undefined), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n createNonEnumerableProperty(that, 'message', normalizeStringArgument(message, ''));\n if (ERROR_STACK_INSTALLABLE)\n createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));\n installErrorCause(that, options);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\nif (setPrototypeOf)\n setPrototypeOf($AggregateError, Error);\nelse\n copyConstructorProperties($AggregateError, Error);\nvar AggregateErrorPrototype = $AggregateError.prototype = create(Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n$({ global: true }, { AggregateError: $AggregateError });\n\n/***/ }),\n/* 99 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(19);\nvar arraySlice = __w_pdfjs_require__(100);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar join = uncurryThis([].join);\nvar TEST = function (arg) {\n return String(Error(arg).stack);\n}('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\nvar IS_FIREFOX_OR_SAFARI_STACK = /@[^\\n]*\\n/.test(TEST) && !/zxcasd/.test(TEST);\nmodule.exports = function (stack, dropEntries) {\n if (typeof stack != 'string')\n return stack;\n if (IS_V8_OR_CHAKRA_STACK) {\n while (dropEntries--)\n stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } else if (IS_FIREFOX_OR_SAFARI_STACK) {\n return join(arraySlice(split(stack, '\\n'), dropEntries), '\\n');\n }\n return stack;\n};\n\n/***/ }),\n/* 100 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar toAbsoluteIndex = __w_pdfjs_require__(62);\nvar lengthOfArrayLike = __w_pdfjs_require__(64);\nvar createProperty = __w_pdfjs_require__(95);\nvar Array = global.Array;\nvar max = Math.max;\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++)\n createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n\n/***/ }),\n/* 101 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isObject = __w_pdfjs_require__(24);\nvar createNonEnumerableProperty = __w_pdfjs_require__(47);\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n\n/***/ }),\n/* 102 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toString = __w_pdfjs_require__(103);\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n\n/***/ }),\n/* 103 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar classof = __w_pdfjs_require__(92);\nvar String = global.String;\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol')\n throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n\n/***/ }),\n/* 104 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(13);\nvar createPropertyDescriptor = __w_pdfjs_require__(16);\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error))\n return true;\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n\n/***/ }),\n/* 105 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(93);\nvar redefine = __w_pdfjs_require__(50);\nvar toString = __w_pdfjs_require__(106);\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n/***/ }),\n/* 106 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(93);\nvar classof = __w_pdfjs_require__(92);\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n/***/ }),\n/* 107 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(9);\nvar IS_PURE = __w_pdfjs_require__(39);\nvar global = __w_pdfjs_require__(10);\nvar getBuiltIn = __w_pdfjs_require__(27);\nvar call = __w_pdfjs_require__(14);\nvar NativePromise = __w_pdfjs_require__(108);\nvar redefine = __w_pdfjs_require__(50);\nvar redefineAll = __w_pdfjs_require__(109);\nvar setPrototypeOf = __w_pdfjs_require__(84);\nvar setToStringTag = __w_pdfjs_require__(83);\nvar setSpecies = __w_pdfjs_require__(110);\nvar aCallable = __w_pdfjs_require__(34);\nvar isCallable = __w_pdfjs_require__(25);\nvar isObject = __w_pdfjs_require__(24);\nvar anInstance = __w_pdfjs_require__(111);\nvar inspectSource = __w_pdfjs_require__(51);\nvar iterate = __w_pdfjs_require__(87);\nvar checkCorrectnessOfIteration = __w_pdfjs_require__(112);\nvar speciesConstructor = __w_pdfjs_require__(113);\nvar task = (__w_pdfjs_require__(116).set);\nvar microtask = __w_pdfjs_require__(121);\nvar promiseResolve = __w_pdfjs_require__(124);\nvar hostReportErrors = __w_pdfjs_require__(126);\nvar newPromiseCapabilityModule = __w_pdfjs_require__(125);\nvar perform = __w_pdfjs_require__(127);\nvar InternalStateModule = __w_pdfjs_require__(52);\nvar isForced = __w_pdfjs_require__(68);\nvar wellKnownSymbol = __w_pdfjs_require__(37);\nvar IS_BROWSER = __w_pdfjs_require__(128);\nvar IS_NODE = __w_pdfjs_require__(120);\nvar V8_VERSION = __w_pdfjs_require__(31);\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\nvar FORCED = isForced(PROMISE, function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66)\n return true;\n if (IS_PURE && !PromisePrototype['finally'])\n return true;\n if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE))\n return false;\n var promise = new PromiseConstructor(function (resolve) {\n resolve(1);\n });\n var FakePromise = function (exec) {\n exec(function () {\n }, function () {\n });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () {\n }) instanceof FakePromise;\n if (!SUBCLASSING)\n return true;\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () {\n });\n});\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\nvar notify = function (state, isReject) {\n if (state.notified)\n return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED)\n onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true)\n result = value;\n else {\n if (domain)\n domain.enter();\n result = handler(value);\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else\n resolve(result);\n } else\n reject(value);\n } catch (error) {\n if (domain && !exited)\n domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection)\n onUnhandled(state);\n });\n};\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else\n event = {\n promise: promise,\n reason: reason\n };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name]))\n handler(event);\n else if (name === UNHANDLED_REJECTION)\n hostReportErrors('Unhandled promise rejection', reason);\n};\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else\n dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error)\n throw result.value;\n }\n });\n};\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else\n dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\nvar internalReject = function (state, value, unwrap) {\n if (state.done)\n return;\n state.done = true;\n if (unwrap)\n state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\nvar internalResolve = function (state, value, unwrap) {\n if (state.done)\n return;\n state.done = true;\n if (unwrap)\n state = unwrap;\n try {\n if (state.facade === value)\n throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value, bind(internalResolve, wrapper, state), bind(internalReject, wrapper, state));\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\nif (FORCED) {\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n PromisePrototype = PromiseConstructor.prototype;\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromisePrototype, {\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reactions = state.reactions;\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n reactions[reactions.length] = reaction;\n if (state.state != PENDING)\n notify(state, false);\n return reaction.promise;\n },\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);\n };\n if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n if (!SUBCLASSING) {\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n }, { unsafe: true });\n redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { unsafe: true });\n }\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) {\n }\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n$({\n global: true,\n wrap: true,\n forced: FORCED\n}, { Promise: PromiseConstructor });\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\nPromiseWrapper = getBuiltIn(PROMISE);\n$({\n target: PROMISE,\n stat: true,\n forced: FORCED\n}, {\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n$({\n target: PROMISE,\n stat: true,\n forced: IS_PURE || FORCED\n}, {\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n$({\n target: PROMISE,\n stat: true,\n forced: INCORRECT_ITERATION\n}, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled)\n return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error)\n reject(result.value);\n return capability.promise;\n },\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error)\n reject(result.value);\n return capability.promise;\n }\n});\n\n/***/ }),\n/* 108 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nmodule.exports = global.Promise;\n\n/***/ }),\n/* 109 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar redefine = __w_pdfjs_require__(50);\nmodule.exports = function (target, src, options) {\n for (var key in src)\n redefine(target, key, src[key], options);\n return target;\n};\n\n/***/ }),\n/* 110 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar getBuiltIn = __w_pdfjs_require__(27);\nvar definePropertyModule = __w_pdfjs_require__(48);\nvar wellKnownSymbol = __w_pdfjs_require__(37);\nvar DESCRIPTORS = __w_pdfjs_require__(12);\nvar SPECIES = wellKnownSymbol('species');\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () {\n return this;\n }\n });\n }\n};\n\n/***/ }),\n/* 111 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar isPrototypeOf = __w_pdfjs_require__(28);\nvar TypeError = global.TypeError;\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it))\n return it;\n throw TypeError('Incorrect invocation');\n};\n\n/***/ }),\n/* 112 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(37);\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n Array.from(iteratorWithReturn, function () {\n throw 2;\n });\n} catch (error) {\n}\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING)\n return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) {\n }\n return ITERATION_SUPPORT;\n};\n\n/***/ }),\n/* 113 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar anObject = __w_pdfjs_require__(49);\nvar aConstructor = __w_pdfjs_require__(114);\nvar wellKnownSymbol = __w_pdfjs_require__(37);\nvar SPECIES = wellKnownSymbol('species');\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n\n/***/ }),\n/* 114 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar isConstructor = __w_pdfjs_require__(115);\nvar tryToString = __w_pdfjs_require__(35);\nvar TypeError = global.TypeError;\nmodule.exports = function (argument) {\n if (isConstructor(argument))\n return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n\n/***/ }),\n/* 115 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(19);\nvar fails = __w_pdfjs_require__(13);\nvar isCallable = __w_pdfjs_require__(25);\nvar classof = __w_pdfjs_require__(92);\nvar getBuiltIn = __w_pdfjs_require__(27);\nvar inspectSource = __w_pdfjs_require__(51);\nvar noop = function () {\n};\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\nvar isConstructorModern = function (argument) {\n if (!isCallable(argument))\n return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\nvar isConstructorLegacy = function (argument) {\n if (!isCallable(argument))\n return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction':\n return false;\n }\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n};\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function () {\n called = true;\n }) || called;\n}) ? isConstructorLegacy : isConstructorModern;\n\n/***/ }),\n/* 116 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar apply = __w_pdfjs_require__(117);\nvar bind = __w_pdfjs_require__(88);\nvar isCallable = __w_pdfjs_require__(25);\nvar hasOwn = __w_pdfjs_require__(42);\nvar fails = __w_pdfjs_require__(13);\nvar html = __w_pdfjs_require__(76);\nvar arraySlice = __w_pdfjs_require__(118);\nvar createElement = __w_pdfjs_require__(46);\nvar IS_IOS = __w_pdfjs_require__(119);\nvar IS_NODE = __w_pdfjs_require__(120);\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\ntry {\n location = global.location;\n} catch (error) {\n}\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\nvar listener = function (event) {\n run(event.data);\n};\nvar post = function (id) {\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(isCallable(fn) ? fn : Function(fn), undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n } else if (global.addEventListener && isCallable(global.postMessage) && !global.importScripts && location && location.protocol !== 'file:' && !fails(post)) {\n defer = post;\n global.addEventListener('message', listener, false);\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\nmodule.exports = {\n set: set,\n clear: clear\n};\n\n/***/ }),\n/* 117 */\n/***/ ((module) => {\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n\n/***/ }),\n/* 118 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(19);\nmodule.exports = uncurryThis([].slice);\n\n/***/ }),\n/* 119 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar userAgent = __w_pdfjs_require__(32);\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n\n/***/ }),\n/* 120 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar classof = __w_pdfjs_require__(20);\nvar global = __w_pdfjs_require__(10);\nmodule.exports = classof(global.process) == 'process';\n\n/***/ }),\n/* 121 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nvar bind = __w_pdfjs_require__(88);\nvar getOwnPropertyDescriptor = (__w_pdfjs_require__(11).f);\nvar macrotask = (__w_pdfjs_require__(116).set);\nvar IS_IOS = __w_pdfjs_require__(119);\nvar IS_IOS_PEBBLE = __w_pdfjs_require__(122);\nvar IS_WEBOS_WEBKIT = __w_pdfjs_require__(123);\nvar IS_NODE = __w_pdfjs_require__(120);\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar flush, head, last, notify, toggle, node, promise, then;\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain))\n parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head)\n notify();\n else\n last = undefined;\n throw error;\n }\n }\n last = undefined;\n if (parent)\n parent.enter();\n };\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n promise = Promise.resolve(undefined);\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n } else {\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\nmodule.exports = queueMicrotask || function (fn) {\n var task = {\n fn: fn,\n next: undefined\n };\n if (last)\n last.next = task;\n if (!head) {\n head = task;\n notify();\n }\n last = task;\n};\n\n/***/ }),\n/* 122 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar userAgent = __w_pdfjs_require__(32);\nvar global = __w_pdfjs_require__(10);\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n\n/***/ }),\n/* 123 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar userAgent = __w_pdfjs_require__(32);\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n\n/***/ }),\n/* 124 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar anObject = __w_pdfjs_require__(49);\nvar isObject = __w_pdfjs_require__(24);\nvar newPromiseCapability = __w_pdfjs_require__(125);\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C)\n return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n/***/ }),\n/* 125 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar aCallable = __w_pdfjs_require__(34);\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined)\n throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n/***/ }),\n/* 126 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(10);\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n\n/***/ }),\n/* 127 */\n/***/ ((module) => {\n\nmodule.exports = function (exec) {\n try {\n return {\n error: false,\n value: exec()\n };\n } catch (error) {\n return {\n error: true,\n value: error\n };\n }\n};\n\n/***/ }),\n/* 128 */\n/***/ ((module) => {\n\nmodule.exports = typeof window == 'object';\n\n/***/ }),\n/* 129 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(9);\nvar call = __w_pdfjs_require__(14);\nvar aCallable = __w_pdfjs_require__(34);\nvar newPromiseCapabilityModule = __w_pdfjs_require__(125);\nvar perform = __w_pdfjs_require__(127);\nvar iterate = __w_pdfjs_require__(87);\n$({\n target: 'Promise',\n stat: true\n}, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled)\n return;\n alreadyCalled = true;\n values[index] = {\n status: 'fulfilled',\n value: value\n };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled)\n return;\n alreadyCalled = true;\n values[index] = {\n status: 'rejected',\n reason: error\n };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error)\n reject(result.value);\n return capability.promise;\n }\n});\n\n/***/ }),\n/* 130 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(9);\nvar aCallable = __w_pdfjs_require__(34);\nvar getBuiltIn = __w_pdfjs_require__(27);\nvar call = __w_pdfjs_require__(14);\nvar newPromiseCapabilityModule = __w_pdfjs_require__(125);\nvar perform = __w_pdfjs_require__(127);\nvar iterate = __w_pdfjs_require__(87);\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n$({\n target: 'Promise',\n stat: true\n}, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved)\n return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved)\n return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error)\n reject(result.value);\n return capability.promise;\n }\n});\n\n/***/ }),\n/* 131 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(9);\nvar IS_PURE = __w_pdfjs_require__(39);\nvar NativePromise = __w_pdfjs_require__(108);\nvar fails = __w_pdfjs_require__(13);\nvar getBuiltIn = __w_pdfjs_require__(27);\nvar isCallable = __w_pdfjs_require__(25);\nvar speciesConstructor = __w_pdfjs_require__(113);\nvar promiseResolve = __w_pdfjs_require__(124);\nvar redefine = __w_pdfjs_require__(50);\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({\n then: function () {\n }\n }, function () {\n });\n});\n$({\n target: 'Promise',\n proto: true,\n real: true,\n forced: NON_GENERIC\n}, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () {\n return x;\n });\n } : onFinally, isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () {\n throw e;\n });\n } : onFinally);\n }\n});\nif (!IS_PURE && isCallable(NativePromise)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromise.prototype['finally'] !== method) {\n redefine(NativePromise.prototype, 'finally', method, { unsafe: true });\n }\n}\n\n/***/ }),\n/* 132 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar charAt = (__w_pdfjs_require__(133).charAt);\nvar toString = __w_pdfjs_require__(103);\nvar InternalStateModule = __w_pdfjs_require__(52);\nvar defineIterator = __w_pdfjs_require__(78);\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length)\n return {\n value: undefined,\n done: true\n };\n point = charAt(string, index);\n state.index += point.length;\n return {\n value: point,\n done: false\n };\n});\n\n/***/ }),\n/* 133 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(19);\nvar toIntegerOrInfinity = __w_pdfjs_require__(63);\nvar toString = __w_pdfjs_require__(103);\nvar requireObjectCoercible = __w_pdfjs_require__(21);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size)\n return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? charAt(S, position) : first : CONVERT_TO_STRING ? stringSlice(S, position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\nmodule.exports = {\n codeAt: createMethod(false),\n charAt: createMethod(true)\n};\n\n/***/ }),\n/* 134 */\n/***/ (function(__unused_webpack_module, exports) {\n\n(function (global, factory) {\n true ? factory(exports) : 0;\n}(this, function (exports) {\n 'use strict';\n var SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol : function (description) {\n return \"Symbol(\" + description + \")\";\n };\n function noop() {\n return undefined;\n }\n function getGlobals() {\n if (typeof self !== 'undefined') {\n return self;\n } else if (typeof window !== 'undefined') {\n return window;\n } else if (typeof global !== 'undefined') {\n return global;\n }\n return undefined;\n }\n var globals = getGlobals();\n function typeIsObject(x) {\n return typeof x === 'object' && x !== null || typeof x === 'function';\n }\n var rethrowAssertionErrorRejection = noop;\n var originalPromise = Promise;\n var originalPromiseThen = Promise.prototype.then;\n var originalPromiseResolve = Promise.resolve.bind(originalPromise);\n var originalPromiseReject = Promise.reject.bind(originalPromise);\n function newPromise(executor) {\n return new originalPromise(executor);\n }\n function promiseResolvedWith(value) {\n return originalPromiseResolve(value);\n }\n function promiseRejectedWith(reason) {\n return originalPromiseReject(reason);\n }\n function PerformPromiseThen(promise, onFulfilled, onRejected) {\n return originalPromiseThen.call(promise, onFulfilled, onRejected);\n }\n function uponPromise(promise, onFulfilled, onRejected) {\n PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n }\n function uponFulfillment(promise, onFulfilled) {\n uponPromise(promise, onFulfilled);\n }\n function uponRejection(promise, onRejected) {\n uponPromise(promise, undefined, onRejected);\n }\n function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n }\n function setPromiseIsHandledToTrue(promise) {\n PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n }\n var queueMicrotask = (function () {\n var globalQueueMicrotask = globals && globals.queueMicrotask;\n if (typeof globalQueueMicrotask === 'function') {\n return globalQueueMicrotask;\n }\n var resolvedPromise = promiseResolvedWith(undefined);\n return function (fn) {\n return PerformPromiseThen(resolvedPromise, fn);\n };\n }());\n function reflectCall(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n return Function.prototype.apply.call(F, V, args);\n }\n function promiseCall(F, V, args) {\n try {\n return promiseResolvedWith(reflectCall(F, V, args));\n } catch (value) {\n return promiseRejectedWith(value);\n }\n }\n var QUEUE_MAX_ARRAY_SIZE = 16384;\n var SimpleQueue = (function () {\n function SimpleQueue() {\n this._cursor = 0;\n this._size = 0;\n this._front = {\n _elements: [],\n _next: undefined\n };\n this._back = this._front;\n this._cursor = 0;\n this._size = 0;\n }\n Object.defineProperty(SimpleQueue.prototype, \"length\", {\n get: function () {\n return this._size;\n },\n enumerable: false,\n configurable: true\n });\n SimpleQueue.prototype.push = function (element) {\n var oldBack = this._back;\n var newBack = oldBack;\n if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n newBack = {\n _elements: [],\n _next: undefined\n };\n }\n oldBack._elements.push(element);\n if (newBack !== oldBack) {\n this._back = newBack;\n oldBack._next = newBack;\n }\n ++this._size;\n };\n SimpleQueue.prototype.shift = function () {\n var oldFront = this._front;\n var newFront = oldFront;\n var oldCursor = this._cursor;\n var newCursor = oldCursor + 1;\n var elements = oldFront._elements;\n var element = elements[oldCursor];\n if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n newFront = oldFront._next;\n newCursor = 0;\n }\n --this._size;\n this._cursor = newCursor;\n if (oldFront !== newFront) {\n this._front = newFront;\n }\n elements[oldCursor] = undefined;\n return element;\n };\n SimpleQueue.prototype.forEach = function (callback) {\n var i = this._cursor;\n var node = this._front;\n var elements = node._elements;\n while (i !== elements.length || node._next !== undefined) {\n if (i === elements.length) {\n node = node._next;\n elements = node._elements;\n i = 0;\n if (elements.length === 0) {\n break;\n }\n }\n callback(elements[i]);\n ++i;\n }\n };\n SimpleQueue.prototype.peek = function () {\n var front = this._front;\n var cursor = this._cursor;\n return front._elements[cursor];\n };\n return SimpleQueue;\n }());\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n } else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n } else {\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n }\n }\n function ReadableStreamReaderGenericCancel(reader, reason) {\n var stream = reader._ownerReadableStream;\n return ReadableStreamCancel(stream, reason);\n }\n function ReadableStreamReaderGenericRelease(reader) {\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError(\"Reader was released and can no longer be used to monitor the stream's closedness\"));\n } else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError(\"Reader was released and can no longer be used to monitor the stream's closedness\"));\n }\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = newPromise(function (resolve, reject) {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseReject(reader, reason);\n }\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseResolve(reader);\n }\n function defaultReaderClosedPromiseReject(reader, reason) {\n if (reader._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(reader._closedPromise);\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n }\n function defaultReaderClosedPromiseResolve(reader) {\n if (reader._closedPromise_resolve === undefined) {\n return;\n }\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n var AbortSteps = SymbolPolyfill('[[AbortSteps]]');\n var ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\n var CancelSteps = SymbolPolyfill('[[CancelSteps]]');\n var PullSteps = SymbolPolyfill('[[PullSteps]]');\n var NumberIsFinite = Number.isFinite || function (x) {\n return typeof x === 'number' && isFinite(x);\n };\n var MathTrunc = Math.trunc || function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v);\n };\n function isDictionary(x) {\n return typeof x === 'object' || typeof x === 'function';\n }\n function assertDictionary(obj, context) {\n if (obj !== undefined && !isDictionary(obj)) {\n throw new TypeError(context + \" is not an object.\");\n }\n }\n function assertFunction(x, context) {\n if (typeof x !== 'function') {\n throw new TypeError(context + \" is not a function.\");\n }\n }\n function isObject(x) {\n return typeof x === 'object' && x !== null || typeof x === 'function';\n }\n function assertObject(x, context) {\n if (!isObject(x)) {\n throw new TypeError(context + \" is not an object.\");\n }\n }\n function assertRequiredArgument(x, position, context) {\n if (x === undefined) {\n throw new TypeError(\"Parameter \" + position + \" is required in '\" + context + \"'.\");\n }\n }\n function assertRequiredField(x, field, context) {\n if (x === undefined) {\n throw new TypeError(field + \" is required in '\" + context + \"'.\");\n }\n }\n function convertUnrestrictedDouble(value) {\n return Number(value);\n }\n function censorNegativeZero(x) {\n return x === 0 ? 0 : x;\n }\n function integerPart(x) {\n return censorNegativeZero(MathTrunc(x));\n }\n function convertUnsignedLongLongWithEnforceRange(value, context) {\n var lowerBound = 0;\n var upperBound = Number.MAX_SAFE_INTEGER;\n var x = Number(value);\n x = censorNegativeZero(x);\n if (!NumberIsFinite(x)) {\n throw new TypeError(context + \" is not a finite number\");\n }\n x = integerPart(x);\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(context + \" is outside the accepted range of \" + lowerBound + \" to \" + upperBound + \", inclusive\");\n }\n if (!NumberIsFinite(x) || x === 0) {\n return 0;\n }\n return x;\n }\n function assertReadableStream(x, context) {\n if (!IsReadableStream(x)) {\n throw new TypeError(context + \" is not a ReadableStream.\");\n }\n }\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n function ReadableStreamAddReadRequest(stream, readRequest) {\n stream._reader._readRequests.push(readRequest);\n }\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n var reader = stream._reader;\n var readRequest = reader._readRequests.shift();\n if (done) {\n readRequest._closeSteps();\n } else {\n readRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n function ReadableStreamHasDefaultReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamDefaultReader(reader)) {\n return false;\n }\n return true;\n }\n var ReadableStreamDefaultReader = (function () {\n function ReadableStreamDefaultReader(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamDefaultReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = new SimpleQueue();\n }\n Object.defineProperty(ReadableStreamDefaultReader.prototype, \"closed\", {\n get: function () {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n },\n enumerable: false,\n configurable: true\n });\n ReadableStreamDefaultReader.prototype.cancel = function (reason) {\n if (reason === void 0) {\n reason = undefined;\n }\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n };\n ReadableStreamDefaultReader.prototype.read = function () {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n var resolvePromise;\n var rejectPromise;\n var promise = newPromise(function (resolve, reject) {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n var readRequest = {\n _chunkSteps: function (chunk) {\n return resolvePromise({\n value: chunk,\n done: false\n });\n },\n _closeSteps: function () {\n return resolvePromise({\n value: undefined,\n done: true\n });\n },\n _errorSteps: function (e) {\n return rejectPromise(e);\n }\n };\n ReadableStreamDefaultReaderRead(this, readRequest);\n return promise;\n };\n ReadableStreamDefaultReader.prototype.releaseLock = function () {\n if (!IsReadableStreamDefaultReader(this)) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n };\n return ReadableStreamDefaultReader;\n }());\n Object.defineProperties(ReadableStreamDefaultReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultReader',\n configurable: true\n });\n }\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultReader;\n }\n function ReadableStreamDefaultReaderRead(reader, readRequest) {\n var stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'closed') {\n readRequest._closeSteps();\n } else if (stream._state === 'errored') {\n readRequest._errorSteps(stream._storedError);\n } else {\n stream._readableStreamController[PullSteps](readRequest);\n }\n }\n function defaultReaderBrandCheckException(name) {\n return new TypeError(\"ReadableStreamDefaultReader.prototype.\" + name + \" can only be used on a ReadableStreamDefaultReader\");\n }\n var _a;\n var AsyncIteratorPrototype;\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n AsyncIteratorPrototype = (_a = {}, _a[SymbolPolyfill.asyncIterator] = function () {\n return this;\n }, _a);\n Object.defineProperty(AsyncIteratorPrototype, SymbolPolyfill.asyncIterator, { enumerable: false });\n }\n var ReadableStreamAsyncIteratorImpl = (function () {\n function ReadableStreamAsyncIteratorImpl(reader, preventCancel) {\n this._ongoingPromise = undefined;\n this._isFinished = false;\n this._reader = reader;\n this._preventCancel = preventCancel;\n }\n ReadableStreamAsyncIteratorImpl.prototype.next = function () {\n var _this = this;\n var nextSteps = function () {\n return _this._nextSteps();\n };\n this._ongoingPromise = this._ongoingPromise ? transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) : nextSteps();\n return this._ongoingPromise;\n };\n ReadableStreamAsyncIteratorImpl.prototype.return = function (value) {\n var _this = this;\n var returnSteps = function () {\n return _this._returnSteps(value);\n };\n return this._ongoingPromise ? transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) : returnSteps();\n };\n ReadableStreamAsyncIteratorImpl.prototype._nextSteps = function () {\n var _this = this;\n if (this._isFinished) {\n return Promise.resolve({\n value: undefined,\n done: true\n });\n }\n var reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('iterate'));\n }\n var resolvePromise;\n var rejectPromise;\n var promise = newPromise(function (resolve, reject) {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n var readRequest = {\n _chunkSteps: function (chunk) {\n _this._ongoingPromise = undefined;\n queueMicrotask(function () {\n return resolvePromise({\n value: chunk,\n done: false\n });\n });\n },\n _closeSteps: function () {\n _this._ongoingPromise = undefined;\n _this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n resolvePromise({\n value: undefined,\n done: true\n });\n },\n _errorSteps: function (reason) {\n _this._ongoingPromise = undefined;\n _this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n rejectPromise(reason);\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promise;\n };\n ReadableStreamAsyncIteratorImpl.prototype._returnSteps = function (value) {\n if (this._isFinished) {\n return Promise.resolve({\n value: value,\n done: true\n });\n }\n this._isFinished = true;\n var reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('finish iterating'));\n }\n if (!this._preventCancel) {\n var result = ReadableStreamReaderGenericCancel(reader, value);\n ReadableStreamReaderGenericRelease(reader);\n return transformPromiseWith(result, function () {\n return {\n value: value,\n done: true\n };\n });\n }\n ReadableStreamReaderGenericRelease(reader);\n return promiseResolvedWith({\n value: value,\n done: true\n });\n };\n return ReadableStreamAsyncIteratorImpl;\n }());\n var ReadableStreamAsyncIteratorPrototype = {\n next: function () {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n }\n return this._asyncIteratorImpl.next();\n },\n return: function (value) {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('return'));\n }\n return this._asyncIteratorImpl.return(value);\n }\n };\n if (AsyncIteratorPrototype !== undefined) {\n Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n }\n function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n var reader = AcquireReadableStreamDefaultReader(stream);\n var impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel);\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n iterator._asyncIteratorImpl = impl;\n return iterator;\n }\n function IsReadableStreamAsyncIterator(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorImpl')) {\n return false;\n }\n try {\n return x._asyncIteratorImpl instanceof ReadableStreamAsyncIteratorImpl;\n } catch (_a) {\n return false;\n }\n }\n function streamAsyncIteratorBrandCheckException(name) {\n return new TypeError(\"ReadableStreamAsyncIterator.\" + name + \" can only be used on a ReadableSteamAsyncIterator\");\n }\n var NumberIsNaN = Number.isNaN || function (x) {\n return x !== x;\n };\n function CreateArrayFromList(elements) {\n return elements.slice();\n }\n function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n }\n function TransferArrayBuffer(O) {\n return O;\n }\n function IsDetachedBuffer(O) {\n return false;\n }\n function ArrayBufferSlice(buffer, begin, end) {\n if (buffer.slice) {\n return buffer.slice(begin, end);\n }\n var length = end - begin;\n var slice = new ArrayBuffer(length);\n CopyDataBlockBytes(slice, 0, buffer, begin, length);\n return slice;\n }\n function IsNonNegativeNumber(v) {\n if (typeof v !== 'number') {\n return false;\n }\n if (NumberIsNaN(v)) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n return true;\n }\n function CloneAsUint8Array(O) {\n var buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength);\n return new Uint8Array(buffer);\n }\n function DequeueValue(container) {\n var pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n return pair.value;\n }\n function EnqueueValueWithSize(container, value, size) {\n if (!IsNonNegativeNumber(size) || size === Infinity) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n container._queue.push({\n value: value,\n size: size\n });\n container._queueTotalSize += size;\n }\n function PeekQueueValue(container) {\n var pair = container._queue.peek();\n return pair.value;\n }\n function ResetQueue(container) {\n container._queue = new SimpleQueue();\n container._queueTotalSize = 0;\n }\n var ReadableStreamBYOBRequest = (function () {\n function ReadableStreamBYOBRequest() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, \"view\", {\n get: function () {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('view');\n }\n return this._view;\n },\n enumerable: false,\n configurable: true\n });\n ReadableStreamBYOBRequest.prototype.respond = function (bytesWritten) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respond');\n }\n assertRequiredArgument(bytesWritten, 1, 'respond');\n bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, 'First parameter');\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(this._view.buffer));\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n };\n ReadableStreamBYOBRequest.prototype.respondWithNewView = function (view) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respondWithNewView');\n }\n assertRequiredArgument(view, 1, 'respondWithNewView');\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(view.buffer));\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n };\n return ReadableStreamBYOBRequest;\n }());\n Object.defineProperties(ReadableStreamBYOBRequest.prototype, {\n respond: { enumerable: true },\n respondWithNewView: { enumerable: true },\n view: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBRequest',\n configurable: true\n });\n }\n var ReadableByteStreamController = (function () {\n function ReadableByteStreamController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(ReadableByteStreamController.prototype, \"byobRequest\", {\n get: function () {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n return ReadableByteStreamControllerGetBYOBRequest(this);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ReadableByteStreamController.prototype, \"desiredSize\", {\n get: function () {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n return ReadableByteStreamControllerGetDesiredSize(this);\n },\n enumerable: false,\n configurable: true\n });\n ReadableByteStreamController.prototype.close = function () {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('close');\n }\n if (this._closeRequested) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n var state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be closed\");\n }\n ReadableByteStreamControllerClose(this);\n };\n ReadableByteStreamController.prototype.enqueue = function (chunk) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n assertRequiredArgument(chunk, 1, 'enqueue');\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('chunk must be an array buffer view');\n }\n if (chunk.byteLength === 0) {\n throw new TypeError('chunk must have non-zero byteLength');\n }\n if (chunk.buffer.byteLength === 0) {\n throw new TypeError(\"chunk's buffer must have non-zero byteLength\");\n }\n if (this._closeRequested) {\n throw new TypeError('stream is closed or draining');\n }\n var state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be enqueued to\");\n }\n ReadableByteStreamControllerEnqueue(this, chunk);\n };\n ReadableByteStreamController.prototype.error = function (e) {\n if (e === void 0) {\n e = undefined;\n }\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('error');\n }\n ReadableByteStreamControllerError(this, e);\n };\n ReadableByteStreamController.prototype[CancelSteps] = function (reason) {\n ReadableByteStreamControllerClearPendingPullIntos(this);\n ResetQueue(this);\n var result = this._cancelAlgorithm(reason);\n ReadableByteStreamControllerClearAlgorithms(this);\n return result;\n };\n ReadableByteStreamController.prototype[PullSteps] = function (readRequest) {\n var stream = this._controlledReadableByteStream;\n if (this._queueTotalSize > 0) {\n var entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n var view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n readRequest._chunkSteps(view);\n return;\n }\n var autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n var buffer = void 0;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n } catch (bufferE) {\n readRequest._errorSteps(bufferE);\n return;\n }\n var pullIntoDescriptor = {\n buffer: buffer,\n bufferByteLength: autoAllocateChunkSize,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n viewConstructor: Uint8Array,\n readerType: 'default'\n };\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n };\n return ReadableByteStreamController;\n }());\n Object.defineProperties(ReadableByteStreamController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n byobRequest: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableByteStreamController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableByteStreamController',\n configurable: true\n });\n }\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n return false;\n }\n return x instanceof ReadableByteStreamController;\n }\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBRequest;\n }\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n var pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, function () {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n ReadableByteStreamControllerError(controller, e);\n });\n }\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = new SimpleQueue();\n }\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n var done = false;\n if (stream._state === 'closed') {\n done = true;\n }\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n } else {\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n var bytesFilled = pullIntoDescriptor.bytesFilled;\n var elementSize = pullIntoDescriptor.elementSize;\n return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength\n });\n controller._queueTotalSize += byteLength;\n }\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n var elementSize = pullIntoDescriptor.elementSize;\n var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n var totalBytesToCopyRemaining = maxBytesToCopy;\n var ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n var queue = controller._queue;\n while (totalBytesToCopyRemaining > 0) {\n var headOfQueue = queue.peek();\n var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n } else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n return ready;\n }\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n pullIntoDescriptor.bytesFilled += size;\n }\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n if (controller._queueTotalSize === 0 && controller._closeRequested) {\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(controller._controlledReadableByteStream);\n } else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === null) {\n return;\n }\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = null;\n controller._byobRequest = null;\n }\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n var pullIntoDescriptor = controller._pendingPullIntos.peek();\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerPullInto(controller, view, readIntoRequest) {\n var stream = controller._controlledReadableByteStream;\n var elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n var ctor = view.constructor;\n var buffer = TransferArrayBuffer(view.buffer);\n var pullIntoDescriptor = {\n buffer: buffer,\n bufferByteLength: buffer.byteLength,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize: elementSize,\n viewConstructor: ctor,\n readerType: 'byob'\n };\n if (controller._pendingPullIntos.length > 0) {\n controller._pendingPullIntos.push(pullIntoDescriptor);\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n return;\n }\n if (stream._state === 'closed') {\n var emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n readIntoRequest._closeSteps(emptyView);\n return;\n }\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n readIntoRequest._chunkSteps(filledView);\n return;\n }\n if (controller._closeRequested) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n readIntoRequest._errorSteps(e);\n return;\n }\n }\n controller._pendingPullIntos.push(pullIntoDescriptor);\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n var stream = controller._controlledReadableByteStream;\n if (ReadableStreamHasBYOBReader(stream)) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n var remainder = ArrayBufferSlice(pullIntoDescriptor.buffer, end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos.peek();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n var state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n ReadableByteStreamControllerRespondInClosedState(controller);\n } else {\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n var descriptor = controller._pendingPullIntos.shift();\n return descriptor;\n }\n function ReadableByteStreamControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return false;\n }\n if (controller._closeRequested) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n var desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableByteStreamControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n }\n function ReadableByteStreamControllerClose(controller) {\n var stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos.peek();\n if (firstPendingPullInto.bytesFilled > 0) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n var buffer = chunk.buffer;\n var byteOffset = chunk.byteOffset;\n var byteLength = chunk.byteLength;\n var transferredBuffer = TransferArrayBuffer(buffer);\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos.peek();\n if (IsDetachedBuffer(firstPendingPullInto.buffer));\n firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer);\n }\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n if (ReadableStreamHasDefaultReader(stream)) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n } else {\n if (controller._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n }\n var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n } else if (ReadableStreamHasBYOBReader(stream)) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n } else {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerError(controller, e) {\n var stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return;\n }\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableByteStreamControllerGetBYOBRequest(controller) {\n if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) {\n var firstDescriptor = controller._pendingPullIntos.peek();\n var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n var byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n SetUpReadableStreamBYOBRequest(byobRequest, controller, view);\n controller._byobRequest = byobRequest;\n }\n return controller._byobRequest;\n }\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n var state = controller._controlledReadableByteStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos.peek();\n var state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n } else {\n if (bytesWritten === 0) {\n throw new TypeError('bytesWritten must be greater than 0 when calling respond() on a readable stream');\n }\n if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n }\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n var firstDescriptor = controller._pendingPullIntos.peek();\n var state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (view.byteLength !== 0) {\n throw new TypeError('The view\\'s length must be 0 when calling respondWithNewView() on a closed stream');\n }\n } else {\n if (view.byteLength === 0) {\n throw new TypeError('The view\\'s length must be greater than 0 when calling respondWithNewView() on a readable stream');\n }\n }\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) {\n throw new RangeError('The region specified by view is larger than byobRequest');\n }\n var viewByteLength = view.byteLength;\n firstDescriptor.buffer = TransferArrayBuffer(view.buffer);\n ReadableByteStreamControllerRespondInternal(controller, viewByteLength);\n }\n function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n controller._controlledReadableByteStream = stream;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._byobRequest = null;\n controller._queue = controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._closeRequested = false;\n controller._started = false;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n controller._autoAllocateChunkSize = autoAllocateChunkSize;\n controller._pendingPullIntos = new SimpleQueue();\n stream._readableStreamController = controller;\n var startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), function () {\n controller._started = true;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableByteStreamControllerError(controller, r);\n });\n }\n function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n var controller = Object.create(ReadableByteStreamController.prototype);\n var startAlgorithm = function () {\n return undefined;\n };\n var pullAlgorithm = function () {\n return promiseResolvedWith(undefined);\n };\n var cancelAlgorithm = function () {\n return promiseResolvedWith(undefined);\n };\n if (underlyingByteSource.start !== undefined) {\n startAlgorithm = function () {\n return underlyingByteSource.start(controller);\n };\n }\n if (underlyingByteSource.pull !== undefined) {\n pullAlgorithm = function () {\n return underlyingByteSource.pull(controller);\n };\n }\n if (underlyingByteSource.cancel !== undefined) {\n cancelAlgorithm = function (reason) {\n return underlyingByteSource.cancel(reason);\n };\n }\n var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n if (autoAllocateChunkSize === 0) {\n throw new TypeError('autoAllocateChunkSize must be greater than 0');\n }\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n }\n function SetUpReadableStreamBYOBRequest(request, controller, view) {\n request._associatedReadableByteStreamController = controller;\n request._view = view;\n }\n function byobRequestBrandCheckException(name) {\n return new TypeError(\"ReadableStreamBYOBRequest.prototype.\" + name + \" can only be used on a ReadableStreamBYOBRequest\");\n }\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError(\"ReadableByteStreamController.prototype.\" + name + \" can only be used on a ReadableByteStreamController\");\n }\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) {\n stream._reader._readIntoRequests.push(readIntoRequest);\n }\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n var reader = stream._reader;\n var readIntoRequest = reader._readIntoRequests.shift();\n if (done) {\n readIntoRequest._closeSteps(chunk);\n } else {\n readIntoRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n function ReadableStreamHasBYOBReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamBYOBReader(reader)) {\n return false;\n }\n return true;\n }\n var ReadableStreamBYOBReader = (function () {\n function ReadableStreamBYOBReader(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamBYOBReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n if (!IsReadableByteStreamController(stream._readableStreamController)) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = new SimpleQueue();\n }\n Object.defineProperty(ReadableStreamBYOBReader.prototype, \"closed\", {\n get: function () {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n },\n enumerable: false,\n configurable: true\n });\n ReadableStreamBYOBReader.prototype.cancel = function (reason) {\n if (reason === void 0) {\n reason = undefined;\n }\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n };\n ReadableStreamBYOBReader.prototype.read = function (view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('read'));\n }\n if (!ArrayBuffer.isView(view)) {\n return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n }\n if (view.byteLength === 0) {\n return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n }\n if (view.buffer.byteLength === 0) {\n return promiseRejectedWith(new TypeError(\"view's buffer must have non-zero byteLength\"));\n }\n if (IsDetachedBuffer(view.buffer));\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n var resolvePromise;\n var rejectPromise;\n var promise = newPromise(function (resolve, reject) {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n var readIntoRequest = {\n _chunkSteps: function (chunk) {\n return resolvePromise({\n value: chunk,\n done: false\n });\n },\n _closeSteps: function (chunk) {\n return resolvePromise({\n value: chunk,\n done: true\n });\n },\n _errorSteps: function (e) {\n return rejectPromise(e);\n }\n };\n ReadableStreamBYOBReaderRead(this, view, readIntoRequest);\n return promise;\n };\n ReadableStreamBYOBReader.prototype.releaseLock = function () {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n };\n return ReadableStreamBYOBReader;\n }());\n Object.defineProperties(ReadableStreamBYOBReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBReader',\n configurable: true\n });\n }\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBReader;\n }\n function ReadableStreamBYOBReaderRead(reader, view, readIntoRequest) {\n var stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'errored') {\n readIntoRequest._errorSteps(stream._storedError);\n } else {\n ReadableByteStreamControllerPullInto(stream._readableStreamController, view, readIntoRequest);\n }\n }\n function byobReaderBrandCheckException(name) {\n return new TypeError(\"ReadableStreamBYOBReader.prototype.\" + name + \" can only be used on a ReadableStreamBYOBReader\");\n }\n function ExtractHighWaterMark(strategy, defaultHWM) {\n var highWaterMark = strategy.highWaterMark;\n if (highWaterMark === undefined) {\n return defaultHWM;\n }\n if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('Invalid highWaterMark');\n }\n return highWaterMark;\n }\n function ExtractSizeAlgorithm(strategy) {\n var size = strategy.size;\n if (!size) {\n return function () {\n return 1;\n };\n }\n return size;\n }\n function convertQueuingStrategy(init, context) {\n assertDictionary(init, context);\n var highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n var size = init === null || init === void 0 ? void 0 : init.size;\n return {\n highWaterMark: highWaterMark === undefined ? undefined : convertUnrestrictedDouble(highWaterMark),\n size: size === undefined ? undefined : convertQueuingStrategySize(size, context + \" has member 'size' that\")\n };\n }\n function convertQueuingStrategySize(fn, context) {\n assertFunction(fn, context);\n return function (chunk) {\n return convertUnrestrictedDouble(fn(chunk));\n };\n }\n function convertUnderlyingSink(original, context) {\n assertDictionary(original, context);\n var abort = original === null || original === void 0 ? void 0 : original.abort;\n var close = original === null || original === void 0 ? void 0 : original.close;\n var start = original === null || original === void 0 ? void 0 : original.start;\n var type = original === null || original === void 0 ? void 0 : original.type;\n var write = original === null || original === void 0 ? void 0 : original.write;\n return {\n abort: abort === undefined ? undefined : convertUnderlyingSinkAbortCallback(abort, original, context + \" has member 'abort' that\"),\n close: close === undefined ? undefined : convertUnderlyingSinkCloseCallback(close, original, context + \" has member 'close' that\"),\n start: start === undefined ? undefined : convertUnderlyingSinkStartCallback(start, original, context + \" has member 'start' that\"),\n write: write === undefined ? undefined : convertUnderlyingSinkWriteCallback(write, original, context + \" has member 'write' that\"),\n type: type\n };\n }\n function convertUnderlyingSinkAbortCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (reason) {\n return promiseCall(fn, original, [reason]);\n };\n }\n function convertUnderlyingSinkCloseCallback(fn, original, context) {\n assertFunction(fn, context);\n return function () {\n return promiseCall(fn, original, []);\n };\n }\n function convertUnderlyingSinkStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) {\n return reflectCall(fn, original, [controller]);\n };\n }\n function convertUnderlyingSinkWriteCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (chunk, controller) {\n return promiseCall(fn, original, [\n chunk,\n controller\n ]);\n };\n }\n function assertWritableStream(x, context) {\n if (!IsWritableStream(x)) {\n throw new TypeError(context + \" is not a WritableStream.\");\n }\n }\n function isAbortSignal(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n try {\n return typeof value.aborted === 'boolean';\n } catch (_a) {\n return false;\n }\n }\n var supportsAbortController = typeof AbortController === 'function';\n function createAbortController() {\n if (supportsAbortController) {\n return new AbortController();\n }\n return undefined;\n }\n var WritableStream = (function () {\n function WritableStream(rawUnderlyingSink, rawStrategy) {\n if (rawUnderlyingSink === void 0) {\n rawUnderlyingSink = {};\n }\n if (rawStrategy === void 0) {\n rawStrategy = {};\n }\n if (rawUnderlyingSink === undefined) {\n rawUnderlyingSink = null;\n } else {\n assertObject(rawUnderlyingSink, 'First parameter');\n }\n var strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n var underlyingSink = convertUnderlyingSink(rawUnderlyingSink, 'First parameter');\n InitializeWritableStream(this);\n var type = underlyingSink.type;\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n var sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n var highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n }\n Object.defineProperty(WritableStream.prototype, \"locked\", {\n get: function () {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('locked');\n }\n return IsWritableStreamLocked(this);\n },\n enumerable: false,\n configurable: true\n });\n WritableStream.prototype.abort = function (reason) {\n if (reason === void 0) {\n reason = undefined;\n }\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('abort'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n }\n return WritableStreamAbort(this, reason);\n };\n WritableStream.prototype.close = function () {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('close'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n }\n if (WritableStreamCloseQueuedOrInFlight(this)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamClose(this);\n };\n WritableStream.prototype.getWriter = function () {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('getWriter');\n }\n return AcquireWritableStreamDefaultWriter(this);\n };\n return WritableStream;\n }());\n Object.defineProperties(WritableStream.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n getWriter: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStream',\n configurable: true\n });\n }\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n if (highWaterMark === void 0) {\n highWaterMark = 1;\n }\n if (sizeAlgorithm === void 0) {\n sizeAlgorithm = function () {\n return 1;\n };\n }\n var stream = Object.create(WritableStream.prototype);\n InitializeWritableStream(stream);\n var controller = Object.create(WritableStreamDefaultController.prototype);\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n function InitializeWritableStream(stream) {\n stream._state = 'writable';\n stream._storedError = undefined;\n stream._writer = undefined;\n stream._writableStreamController = undefined;\n stream._writeRequests = new SimpleQueue();\n stream._inFlightWriteRequest = undefined;\n stream._closeRequest = undefined;\n stream._inFlightCloseRequest = undefined;\n stream._pendingAbortRequest = undefined;\n stream._backpressure = false;\n }\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n return x instanceof WritableStream;\n }\n function IsWritableStreamLocked(stream) {\n if (stream._writer === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamAbort(stream, reason) {\n var _a;\n if (stream._state === 'closed' || stream._state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n stream._writableStreamController._abortReason = reason;\n (_a = stream._writableStreamController._abortController) === null || _a === void 0 ? void 0 : _a.abort();\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n if (stream._pendingAbortRequest !== undefined) {\n return stream._pendingAbortRequest._promise;\n }\n var wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n reason = undefined;\n }\n var promise = newPromise(function (resolve, reject) {\n stream._pendingAbortRequest = {\n _promise: undefined,\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n stream._pendingAbortRequest._promise = promise;\n if (!wasAlreadyErroring) {\n WritableStreamStartErroring(stream, reason);\n }\n return promise;\n }\n function WritableStreamClose(stream) {\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseRejectedWith(new TypeError(\"The stream (in \" + state + \" state) is not in the writable state and cannot be closed\"));\n }\n var promise = newPromise(function (resolve, reject) {\n var closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n var writer = stream._writer;\n if (writer !== undefined && stream._backpressure && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n function WritableStreamAddWriteRequest(stream) {\n var promise = newPromise(function (resolve, reject) {\n var writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n function WritableStreamDealWithRejection(stream, error) {\n var state = stream._state;\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n WritableStreamFinishErroring(stream);\n }\n function WritableStreamStartErroring(stream, reason) {\n var controller = stream._writableStreamController;\n stream._state = 'erroring';\n stream._storedError = reason;\n var writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) {\n WritableStreamFinishErroring(stream);\n }\n }\n function WritableStreamFinishErroring(stream) {\n stream._state = 'errored';\n stream._writableStreamController[ErrorSteps]();\n var storedError = stream._storedError;\n stream._writeRequests.forEach(function (writeRequest) {\n writeRequest._reject(storedError);\n });\n stream._writeRequests = new SimpleQueue();\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n if (abortRequest._wasAlreadyErroring) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n uponPromise(promise, function () {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, function (reason) {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n function WritableStreamFinishInFlightWrite(stream) {\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n }\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamFinishInFlightClose(stream) {\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n var state = stream._state;\n if (state === 'erroring') {\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n stream._state = 'closed';\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n }\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamMarkCloseRequestInFlight(stream) {\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n if (stream._closeRequest !== undefined) {\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n }\n }\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n var writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure) {\n defaultWriterReadyPromiseReset(writer);\n } else {\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n stream._backpressure = backpressure;\n }\n var WritableStreamDefaultWriter = (function () {\n function WritableStreamDefaultWriter(stream) {\n assertRequiredArgument(stream, 1, 'WritableStreamDefaultWriter');\n assertWritableStream(stream, 'First parameter');\n if (IsWritableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n this._ownerWritableStream = stream;\n stream._writer = this;\n var state = stream._state;\n if (state === 'writable') {\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) {\n defaultWriterReadyPromiseInitialize(this);\n } else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n } else {\n var storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n }\n }\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"closed\", {\n get: function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n }\n return this._closedPromise;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"desiredSize\", {\n get: function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n return WritableStreamDefaultWriterGetDesiredSize(this);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"ready\", {\n get: function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n }\n return this._readyPromise;\n },\n enumerable: false,\n configurable: true\n });\n WritableStreamDefaultWriter.prototype.abort = function (reason) {\n if (reason === void 0) {\n reason = undefined;\n }\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('abort'));\n }\n return WritableStreamDefaultWriterAbort(this, reason);\n };\n WritableStreamDefaultWriter.prototype.close = function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n }\n var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('close'));\n }\n if (WritableStreamCloseQueuedOrInFlight(stream)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamDefaultWriterClose(this);\n };\n WritableStreamDefaultWriter.prototype.releaseLock = function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return;\n }\n WritableStreamDefaultWriterRelease(this);\n };\n WritableStreamDefaultWriter.prototype.write = function (chunk) {\n if (chunk === void 0) {\n chunk = undefined;\n }\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n return WritableStreamDefaultWriterWrite(this, chunk);\n };\n return WritableStreamDefaultWriter;\n }());\n Object.defineProperties(WritableStreamDefaultWriter.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n releaseLock: { enumerable: true },\n write: { enumerable: true },\n closed: { enumerable: true },\n desiredSize: { enumerable: true },\n ready: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultWriter.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultWriter',\n configurable: true\n });\n }\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultWriter;\n }\n function WritableStreamDefaultWriterAbort(writer, reason) {\n var stream = writer._ownerWritableStream;\n return WritableStreamAbort(stream, reason);\n }\n function WritableStreamDefaultWriterClose(writer) {\n var stream = writer._ownerWritableStream;\n return WritableStreamClose(stream);\n }\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n return WritableStreamDefaultWriterClose(writer);\n }\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n } else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n } else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n function WritableStreamDefaultWriterRelease(writer) {\n var stream = writer._ownerWritableStream;\n var releasedError = new TypeError(\"Writer was released and can no longer be used to monitor the stream's closedness\");\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n var stream = writer._ownerWritableStream;\n var controller = stream._writableStreamController;\n var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n if (stream !== writer._ownerWritableStream) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n var state = stream._state;\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return promiseRejectedWith(stream._storedError);\n }\n var promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n var closeSentinel = {};\n var WritableStreamDefaultController = (function () {\n function WritableStreamDefaultController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(WritableStreamDefaultController.prototype, \"abortReason\", {\n get: function () {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('abortReason');\n }\n return this._abortReason;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WritableStreamDefaultController.prototype, \"signal\", {\n get: function () {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('signal');\n }\n if (this._abortController === undefined) {\n throw new TypeError('WritableStreamDefaultController.prototype.signal is not supported');\n }\n return this._abortController.signal;\n },\n enumerable: false,\n configurable: true\n });\n WritableStreamDefaultController.prototype.error = function (e) {\n if (e === void 0) {\n e = undefined;\n }\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('error');\n }\n var state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n return;\n }\n WritableStreamDefaultControllerError(this, e);\n };\n WritableStreamDefaultController.prototype[AbortSteps] = function (reason) {\n var result = this._abortAlgorithm(reason);\n WritableStreamDefaultControllerClearAlgorithms(this);\n return result;\n };\n WritableStreamDefaultController.prototype[ErrorSteps] = function () {\n ResetQueue(this);\n };\n return WritableStreamDefaultController;\n }());\n Object.defineProperties(WritableStreamDefaultController.prototype, {\n abortReason: { enumerable: true },\n signal: { enumerable: true },\n error: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultController',\n configurable: true\n });\n }\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultController;\n }\n function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledWritableStream = stream;\n stream._writableStreamController = controller;\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._abortReason = undefined;\n controller._abortController = createAbortController();\n controller._started = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._writeAlgorithm = writeAlgorithm;\n controller._closeAlgorithm = closeAlgorithm;\n controller._abortAlgorithm = abortAlgorithm;\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n var startResult = startAlgorithm();\n var startPromise = promiseResolvedWith(startResult);\n uponPromise(startPromise, function () {\n controller._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (r) {\n controller._started = true;\n WritableStreamDealWithRejection(stream, r);\n });\n }\n function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n var controller = Object.create(WritableStreamDefaultController.prototype);\n var startAlgorithm = function () {\n return undefined;\n };\n var writeAlgorithm = function () {\n return promiseResolvedWith(undefined);\n };\n var closeAlgorithm = function () {\n return promiseResolvedWith(undefined);\n };\n var abortAlgorithm = function () {\n return promiseResolvedWith(undefined);\n };\n if (underlyingSink.start !== undefined) {\n startAlgorithm = function () {\n return underlyingSink.start(controller);\n };\n }\n if (underlyingSink.write !== undefined) {\n writeAlgorithm = function (chunk) {\n return underlyingSink.write(chunk, controller);\n };\n }\n if (underlyingSink.close !== undefined) {\n closeAlgorithm = function () {\n return underlyingSink.close();\n };\n }\n if (underlyingSink.abort !== undefined) {\n abortAlgorithm = function (reason) {\n return underlyingSink.abort(reason);\n };\n }\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n }\n function WritableStreamDefaultControllerClearAlgorithms(controller) {\n controller._writeAlgorithm = undefined;\n controller._closeAlgorithm = undefined;\n controller._abortAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, closeSentinel, 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n try {\n return controller._strategySizeAlgorithm(chunk);\n } catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n } catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n var stream = controller._controlledWritableStream;\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n var stream = controller._controlledWritableStream;\n if (!controller._started) {\n return;\n }\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n var state = stream._state;\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n if (controller._queue.length === 0) {\n return;\n }\n var value = PeekQueueValue(controller);\n if (value === closeSentinel) {\n WritableStreamDefaultControllerProcessClose(controller);\n } else {\n WritableStreamDefaultControllerProcessWrite(controller, value);\n }\n }\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n function WritableStreamDefaultControllerProcessClose(controller) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n var sinkClosePromise = controller._closeAlgorithm();\n WritableStreamDefaultControllerClearAlgorithms(controller);\n uponPromise(sinkClosePromise, function () {\n WritableStreamFinishInFlightClose(stream);\n }, function (reason) {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n var sinkWritePromise = controller._writeAlgorithm(chunk);\n uponPromise(sinkWritePromise, function () {\n WritableStreamFinishInFlightWrite(stream);\n var state = stream._state;\n DequeueValue(controller);\n if (!WritableStreamCloseQueuedOrInFlight(stream) && state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (reason) {\n if (stream._state === 'writable') {\n WritableStreamDefaultControllerClearAlgorithms(controller);\n }\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n function WritableStreamDefaultControllerError(controller, error) {\n var stream = controller._controlledWritableStream;\n WritableStreamDefaultControllerClearAlgorithms(controller);\n WritableStreamStartErroring(stream, error);\n }\n function streamBrandCheckException$2(name) {\n return new TypeError(\"WritableStream.prototype.\" + name + \" can only be used on a WritableStream\");\n }\n function defaultControllerBrandCheckException$2(name) {\n return new TypeError(\"WritableStreamDefaultController.prototype.\" + name + \" can only be used on a WritableStreamDefaultController\");\n }\n function defaultWriterBrandCheckException(name) {\n return new TypeError(\"WritableStreamDefaultWriter.prototype.\" + name + \" can only be used on a WritableStreamDefaultWriter\");\n }\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = newPromise(function (resolve, reject) {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseReject(writer, reason);\n }\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseResolve(writer);\n }\n function defaultWriterClosedPromiseReject(writer, reason) {\n if (writer._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._closedPromise);\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterClosedPromiseResolve(writer) {\n if (writer._closedPromise_resolve === undefined) {\n return;\n }\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = newPromise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseReject(writer, reason);\n }\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseResolve(writer);\n }\n function defaultWriterReadyPromiseReject(writer, reason) {\n if (writer._readyPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._readyPromise);\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseReset(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n }\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterReadyPromiseResolve(writer) {\n if (writer._readyPromise_resolve === undefined) {\n return;\n }\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n var NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;\n function isDOMExceptionConstructor(ctor) {\n if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n return false;\n }\n try {\n new ctor();\n return true;\n } catch (_a) {\n return false;\n }\n }\n function createDOMExceptionPolyfill() {\n var ctor = function DOMException(message, name) {\n this.message = message || '';\n this.name = name || 'Error';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n };\n ctor.prototype = Object.create(Error.prototype);\n Object.defineProperty(ctor.prototype, 'constructor', {\n value: ctor,\n writable: true,\n configurable: true\n });\n return ctor;\n }\n var DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();\n function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n var reader = AcquireReadableStreamDefaultReader(source);\n var writer = AcquireWritableStreamDefaultWriter(dest);\n source._disturbed = true;\n var shuttingDown = false;\n var currentWrite = promiseResolvedWith(undefined);\n return newPromise(function (resolve, reject) {\n var abortAlgorithm;\n if (signal !== undefined) {\n abortAlgorithm = function () {\n var error = new DOMException$1('Aborted', 'AbortError');\n var actions = [];\n if (!preventAbort) {\n actions.push(function () {\n if (dest._state === 'writable') {\n return WritableStreamAbort(dest, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n if (!preventCancel) {\n actions.push(function () {\n if (source._state === 'readable') {\n return ReadableStreamCancel(source, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n shutdownWithAction(function () {\n return Promise.all(actions.map(function (action) {\n return action();\n }));\n }, true, error);\n };\n if (signal.aborted) {\n abortAlgorithm();\n return;\n }\n signal.addEventListener('abort', abortAlgorithm);\n }\n function pipeLoop() {\n return newPromise(function (resolveLoop, rejectLoop) {\n function next(done) {\n if (done) {\n resolveLoop();\n } else {\n PerformPromiseThen(pipeStep(), next, rejectLoop);\n }\n }\n next(false);\n });\n }\n function pipeStep() {\n if (shuttingDown) {\n return promiseResolvedWith(true);\n }\n return PerformPromiseThen(writer._readyPromise, function () {\n return newPromise(function (resolveRead, rejectRead) {\n ReadableStreamDefaultReaderRead(reader, {\n _chunkSteps: function (chunk) {\n currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), undefined, noop);\n resolveRead(false);\n },\n _closeSteps: function () {\n return resolveRead(true);\n },\n _errorSteps: rejectRead\n });\n });\n });\n }\n isOrBecomesErrored(source, reader._closedPromise, function (storedError) {\n if (!preventAbort) {\n shutdownWithAction(function () {\n return WritableStreamAbort(dest, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n if (!preventCancel) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(source, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n isOrBecomesClosed(source, reader._closedPromise, function () {\n if (!preventClose) {\n shutdownWithAction(function () {\n return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);\n });\n } else {\n shutdown();\n }\n });\n if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === 'closed') {\n var destClosed_1 = new TypeError('the destination writable stream closed before all data could be piped to it');\n if (!preventCancel) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(source, destClosed_1);\n }, true, destClosed_1);\n } else {\n shutdown(true, destClosed_1);\n }\n }\n setPromiseIsHandledToTrue(pipeLoop());\n function waitForWritesToFinish() {\n var oldCurrentWrite = currentWrite;\n return PerformPromiseThen(currentWrite, function () {\n return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;\n });\n }\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n } else {\n uponRejection(promise, action);\n }\n }\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n } else {\n uponFulfillment(promise, action);\n }\n }\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), doTheRest);\n } else {\n doTheRest();\n }\n function doTheRest() {\n uponPromise(action(), function () {\n return finalize(originalIsError, originalError);\n }, function (newError) {\n return finalize(true, newError);\n });\n }\n }\n function shutdown(isError, error) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), function () {\n return finalize(isError, error);\n });\n } else {\n finalize(isError, error);\n }\n }\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n if (signal !== undefined) {\n signal.removeEventListener('abort', abortAlgorithm);\n }\n if (isError) {\n reject(error);\n } else {\n resolve(undefined);\n }\n }\n });\n }\n var ReadableStreamDefaultController = (function () {\n function ReadableStreamDefaultController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(ReadableStreamDefaultController.prototype, \"desiredSize\", {\n get: function () {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('desiredSize');\n }\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n },\n enumerable: false,\n configurable: true\n });\n ReadableStreamDefaultController.prototype.close = function () {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('close');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits close');\n }\n ReadableStreamDefaultControllerClose(this);\n };\n ReadableStreamDefaultController.prototype.enqueue = function (chunk) {\n if (chunk === void 0) {\n chunk = undefined;\n }\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('enqueue');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits enqueue');\n }\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n };\n ReadableStreamDefaultController.prototype.error = function (e) {\n if (e === void 0) {\n e = undefined;\n }\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('error');\n }\n ReadableStreamDefaultControllerError(this, e);\n };\n ReadableStreamDefaultController.prototype[CancelSteps] = function (reason) {\n ResetQueue(this);\n var result = this._cancelAlgorithm(reason);\n ReadableStreamDefaultControllerClearAlgorithms(this);\n return result;\n };\n ReadableStreamDefaultController.prototype[PullSteps] = function (readRequest) {\n var stream = this._controlledReadableStream;\n if (this._queue.length > 0) {\n var chunk = DequeueValue(this);\n if (this._closeRequested && this._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(this);\n ReadableStreamClose(stream);\n } else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n readRequest._chunkSteps(chunk);\n } else {\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n };\n return ReadableStreamDefaultController;\n }());\n Object.defineProperties(ReadableStreamDefaultController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultController',\n configurable: true\n });\n }\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultController;\n }\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n var pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, function () {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n ReadableStreamDefaultControllerError(controller, e);\n });\n }\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n function ReadableStreamDefaultControllerClose(controller) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n var stream = controller._controlledReadableStream;\n controller._closeRequested = true;\n if (controller._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n }\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n var stream = controller._controlledReadableStream;\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n } else {\n var chunkSize = void 0;\n try {\n chunkSize = controller._strategySizeAlgorithm(chunk);\n } catch (chunkSizeE) {\n ReadableStreamDefaultControllerError(controller, chunkSizeE);\n throw chunkSizeE;\n }\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n } catch (enqueueE) {\n ReadableStreamDefaultControllerError(controller, enqueueE);\n throw enqueueE;\n }\n }\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n function ReadableStreamDefaultControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n if (stream._state !== 'readable') {\n return;\n }\n ResetQueue(controller);\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n var state = controller._controlledReadableStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableStreamDefaultControllerHasBackpressure(controller) {\n if (ReadableStreamDefaultControllerShouldCallPull(controller)) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n var state = controller._controlledReadableStream._state;\n if (!controller._closeRequested && state === 'readable') {\n return true;\n }\n return false;\n }\n function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledReadableStream = stream;\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._started = false;\n controller._closeRequested = false;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n stream._readableStreamController = controller;\n var startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), function () {\n controller._started = true;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableStreamDefaultControllerError(controller, r);\n });\n }\n function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n var controller = Object.create(ReadableStreamDefaultController.prototype);\n var startAlgorithm = function () {\n return undefined;\n };\n var pullAlgorithm = function () {\n return promiseResolvedWith(undefined);\n };\n var cancelAlgorithm = function () {\n return promiseResolvedWith(undefined);\n };\n if (underlyingSource.start !== undefined) {\n startAlgorithm = function () {\n return underlyingSource.start(controller);\n };\n }\n if (underlyingSource.pull !== undefined) {\n pullAlgorithm = function () {\n return underlyingSource.pull(controller);\n };\n }\n if (underlyingSource.cancel !== undefined) {\n cancelAlgorithm = function (reason) {\n return underlyingSource.cancel(reason);\n };\n }\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n }\n function defaultControllerBrandCheckException$1(name) {\n return new TypeError(\"ReadableStreamDefaultController.prototype.\" + name + \" can only be used on a ReadableStreamDefaultController\");\n }\n function ReadableStreamTee(stream, cloneForBranch2) {\n if (IsReadableByteStreamController(stream._readableStreamController)) {\n return ReadableByteStreamTee(stream);\n }\n return ReadableStreamDefaultTee(stream);\n }\n function ReadableStreamDefaultTee(stream, cloneForBranch2) {\n var reader = AcquireReadableStreamDefaultReader(stream);\n var reading = false;\n var readAgain = false;\n var canceled1 = false;\n var canceled2 = false;\n var reason1;\n var reason2;\n var branch1;\n var branch2;\n var resolveCancelPromise;\n var cancelPromise = newPromise(function (resolve) {\n resolveCancelPromise = resolve;\n });\n function pullAlgorithm() {\n if (reading) {\n readAgain = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n var readRequest = {\n _chunkSteps: function (chunk) {\n queueMicrotask(function () {\n readAgain = false;\n var chunk1 = chunk;\n var chunk2 = chunk;\n if (!canceled1) {\n ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgain) {\n pullAlgorithm();\n }\n });\n },\n _closeSteps: function () {\n reading = false;\n if (!canceled1) {\n ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: function () {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n var compositeReason = CreateArrayFromList([\n reason1,\n reason2\n ]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n var compositeReason = CreateArrayFromList([\n reason1,\n reason2\n ]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n }\n branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n uponRejection(reader._closedPromise, function (r) {\n ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n return [\n branch1,\n branch2\n ];\n }\n function ReadableByteStreamTee(stream) {\n var reader = AcquireReadableStreamDefaultReader(stream);\n var reading = false;\n var readAgainForBranch1 = false;\n var readAgainForBranch2 = false;\n var canceled1 = false;\n var canceled2 = false;\n var reason1;\n var reason2;\n var branch1;\n var branch2;\n var resolveCancelPromise;\n var cancelPromise = newPromise(function (resolve) {\n resolveCancelPromise = resolve;\n });\n function forwardReaderError(thisReader) {\n uponRejection(thisReader._closedPromise, function (r) {\n if (thisReader !== reader) {\n return;\n }\n ReadableByteStreamControllerError(branch1._readableStreamController, r);\n ReadableByteStreamControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n }\n function pullWithDefaultReader() {\n if (IsReadableStreamBYOBReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamDefaultReader(stream);\n forwardReaderError(reader);\n }\n var readRequest = {\n _chunkSteps: function (chunk) {\n queueMicrotask(function () {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n var chunk1 = chunk;\n var chunk2 = chunk;\n if (!canceled1 && !canceled2) {\n try {\n chunk2 = CloneAsUint8Array(chunk);\n } catch (cloneE) {\n ReadableByteStreamControllerError(branch1._readableStreamController, cloneE);\n ReadableByteStreamControllerError(branch2._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n }\n if (!canceled1) {\n ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n } else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: function () {\n reading = false;\n if (!canceled1) {\n ReadableByteStreamControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableByteStreamControllerClose(branch2._readableStreamController);\n }\n if (branch1._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch1._readableStreamController, 0);\n }\n if (branch2._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch2._readableStreamController, 0);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: function () {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n }\n function pullWithBYOBReader(view, forBranch2) {\n if (IsReadableStreamDefaultReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamBYOBReader(stream);\n forwardReaderError(reader);\n }\n var byobBranch = forBranch2 ? branch2 : branch1;\n var otherBranch = forBranch2 ? branch1 : branch2;\n var readIntoRequest = {\n _chunkSteps: function (chunk) {\n queueMicrotask(function () {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n var byobCanceled = forBranch2 ? canceled2 : canceled1;\n var otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!otherCanceled) {\n var clonedChunk = void 0;\n try {\n clonedChunk = CloneAsUint8Array(chunk);\n } catch (cloneE) {\n ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE);\n ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk);\n } else if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n } else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: function (chunk) {\n reading = false;\n var byobCanceled = forBranch2 ? canceled2 : canceled1;\n var otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!byobCanceled) {\n ReadableByteStreamControllerClose(byobBranch._readableStreamController);\n }\n if (!otherCanceled) {\n ReadableByteStreamControllerClose(otherBranch._readableStreamController);\n }\n if (chunk !== undefined) {\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0);\n }\n }\n if (!byobCanceled || !otherCanceled) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: function () {\n reading = false;\n }\n };\n ReadableStreamBYOBReaderRead(reader, view, readIntoRequest);\n }\n function pull1Algorithm() {\n if (reading) {\n readAgainForBranch1 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n var byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n } else {\n pullWithBYOBReader(byobRequest._view, false);\n }\n return promiseResolvedWith(undefined);\n }\n function pull2Algorithm() {\n if (reading) {\n readAgainForBranch2 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n var byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n } else {\n pullWithBYOBReader(byobRequest._view, true);\n }\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n var compositeReason = CreateArrayFromList([\n reason1,\n reason2\n ]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n var compositeReason = CreateArrayFromList([\n reason1,\n reason2\n ]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n }\n branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm);\n branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm);\n forwardReaderError(reader);\n return [\n branch1,\n branch2\n ];\n }\n function convertUnderlyingDefaultOrByteSource(source, context) {\n assertDictionary(source, context);\n var original = source;\n var autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize;\n var cancel = original === null || original === void 0 ? void 0 : original.cancel;\n var pull = original === null || original === void 0 ? void 0 : original.pull;\n var start = original === null || original === void 0 ? void 0 : original.start;\n var type = original === null || original === void 0 ? void 0 : original.type;\n return {\n autoAllocateChunkSize: autoAllocateChunkSize === undefined ? undefined : convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, context + \" has member 'autoAllocateChunkSize' that\"),\n cancel: cancel === undefined ? undefined : convertUnderlyingSourceCancelCallback(cancel, original, context + \" has member 'cancel' that\"),\n pull: pull === undefined ? undefined : convertUnderlyingSourcePullCallback(pull, original, context + \" has member 'pull' that\"),\n start: start === undefined ? undefined : convertUnderlyingSourceStartCallback(start, original, context + \" has member 'start' that\"),\n type: type === undefined ? undefined : convertReadableStreamType(type, context + \" has member 'type' that\")\n };\n }\n function convertUnderlyingSourceCancelCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (reason) {\n return promiseCall(fn, original, [reason]);\n };\n }\n function convertUnderlyingSourcePullCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) {\n return promiseCall(fn, original, [controller]);\n };\n }\n function convertUnderlyingSourceStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) {\n return reflectCall(fn, original, [controller]);\n };\n }\n function convertReadableStreamType(type, context) {\n type = \"\" + type;\n if (type !== 'bytes') {\n throw new TypeError(context + \" '\" + type + \"' is not a valid enumeration value for ReadableStreamType\");\n }\n return type;\n }\n function convertReaderOptions(options, context) {\n assertDictionary(options, context);\n var mode = options === null || options === void 0 ? void 0 : options.mode;\n return { mode: mode === undefined ? undefined : convertReadableStreamReaderMode(mode, context + \" has member 'mode' that\") };\n }\n function convertReadableStreamReaderMode(mode, context) {\n mode = \"\" + mode;\n if (mode !== 'byob') {\n throw new TypeError(context + \" '\" + mode + \"' is not a valid enumeration value for ReadableStreamReaderMode\");\n }\n return mode;\n }\n function convertIteratorOptions(options, context) {\n assertDictionary(options, context);\n var preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n return { preventCancel: Boolean(preventCancel) };\n }\n function convertPipeOptions(options, context) {\n assertDictionary(options, context);\n var preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort;\n var preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n var preventClose = options === null || options === void 0 ? void 0 : options.preventClose;\n var signal = options === null || options === void 0 ? void 0 : options.signal;\n if (signal !== undefined) {\n assertAbortSignal(signal, context + \" has member 'signal' that\");\n }\n return {\n preventAbort: Boolean(preventAbort),\n preventCancel: Boolean(preventCancel),\n preventClose: Boolean(preventClose),\n signal: signal\n };\n }\n function assertAbortSignal(signal, context) {\n if (!isAbortSignal(signal)) {\n throw new TypeError(context + \" is not an AbortSignal.\");\n }\n }\n function convertReadableWritablePair(pair, context) {\n assertDictionary(pair, context);\n var readable = pair === null || pair === void 0 ? void 0 : pair.readable;\n assertRequiredField(readable, 'readable', 'ReadableWritablePair');\n assertReadableStream(readable, context + \" has member 'readable' that\");\n var writable = pair === null || pair === void 0 ? void 0 : pair.writable;\n assertRequiredField(writable, 'writable', 'ReadableWritablePair');\n assertWritableStream(writable, context + \" has member 'writable' that\");\n return {\n readable: readable,\n writable: writable\n };\n }\n var ReadableStream = (function () {\n function ReadableStream(rawUnderlyingSource, rawStrategy) {\n if (rawUnderlyingSource === void 0) {\n rawUnderlyingSource = {};\n }\n if (rawStrategy === void 0) {\n rawStrategy = {};\n }\n if (rawUnderlyingSource === undefined) {\n rawUnderlyingSource = null;\n } else {\n assertObject(rawUnderlyingSource, 'First parameter');\n }\n var strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n var underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, 'First parameter');\n InitializeReadableStream(this);\n if (underlyingSource.type === 'bytes') {\n if (strategy.size !== undefined) {\n throw new RangeError('The strategy for a byte stream cannot have a size function');\n }\n var highWaterMark = ExtractHighWaterMark(strategy, 0);\n SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n } else {\n var sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n var highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n }\n }\n Object.defineProperty(ReadableStream.prototype, \"locked\", {\n get: function () {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('locked');\n }\n return IsReadableStreamLocked(this);\n },\n enumerable: false,\n configurable: true\n });\n ReadableStream.prototype.cancel = function (reason) {\n if (reason === void 0) {\n reason = undefined;\n }\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n return ReadableStreamCancel(this, reason);\n };\n ReadableStream.prototype.getReader = function (rawOptions) {\n if (rawOptions === void 0) {\n rawOptions = undefined;\n }\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('getReader');\n }\n var options = convertReaderOptions(rawOptions, 'First parameter');\n if (options.mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n return AcquireReadableStreamBYOBReader(this);\n };\n ReadableStream.prototype.pipeThrough = function (rawTransform, rawOptions) {\n if (rawOptions === void 0) {\n rawOptions = {};\n }\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('pipeThrough');\n }\n assertRequiredArgument(rawTransform, 1, 'pipeThrough');\n var transform = convertReadableWritablePair(rawTransform, 'First parameter');\n var options = convertPipeOptions(rawOptions, 'Second parameter');\n if (IsReadableStreamLocked(this)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n }\n if (IsWritableStreamLocked(transform.writable)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n }\n var promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n setPromiseIsHandledToTrue(promise);\n return transform.readable;\n };\n ReadableStream.prototype.pipeTo = function (destination, rawOptions) {\n if (rawOptions === void 0) {\n rawOptions = {};\n }\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n }\n if (destination === undefined) {\n return promiseRejectedWith(\"Parameter 1 is required in 'pipeTo'.\");\n }\n if (!IsWritableStream(destination)) {\n return promiseRejectedWith(new TypeError(\"ReadableStream.prototype.pipeTo's first argument must be a WritableStream\"));\n }\n var options;\n try {\n options = convertPipeOptions(rawOptions, 'Second parameter');\n } catch (e) {\n return promiseRejectedWith(e);\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(destination)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n };\n ReadableStream.prototype.tee = function () {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('tee');\n }\n var branches = ReadableStreamTee(this);\n return CreateArrayFromList(branches);\n };\n ReadableStream.prototype.values = function (rawOptions) {\n if (rawOptions === void 0) {\n rawOptions = undefined;\n }\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('values');\n }\n var options = convertIteratorOptions(rawOptions, 'First parameter');\n return AcquireReadableStreamAsyncIterator(this, options.preventCancel);\n };\n return ReadableStream;\n }());\n Object.defineProperties(ReadableStream.prototype, {\n cancel: { enumerable: true },\n getReader: { enumerable: true },\n pipeThrough: { enumerable: true },\n pipeTo: { enumerable: true },\n tee: { enumerable: true },\n values: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStream',\n configurable: true\n });\n }\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\n value: ReadableStream.prototype.values,\n writable: true,\n configurable: true\n });\n }\n function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n if (highWaterMark === void 0) {\n highWaterMark = 1;\n }\n if (sizeAlgorithm === void 0) {\n sizeAlgorithm = function () {\n return 1;\n };\n }\n var stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n var controller = Object.create(ReadableStreamDefaultController.prototype);\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) {\n var stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n var controller = Object.create(ReadableByteStreamController.prototype);\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, undefined);\n return stream;\n }\n function InitializeReadableStream(stream) {\n stream._state = 'readable';\n stream._reader = undefined;\n stream._storedError = undefined;\n stream._disturbed = false;\n }\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n return x instanceof ReadableStream;\n }\n function IsReadableStreamLocked(stream) {\n if (stream._reader === undefined) {\n return false;\n }\n return true;\n }\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (stream._state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n ReadableStreamClose(stream);\n var reader = stream._reader;\n if (reader !== undefined && IsReadableStreamBYOBReader(reader)) {\n reader._readIntoRequests.forEach(function (readIntoRequest) {\n readIntoRequest._closeSteps(undefined);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n var sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n return transformPromiseWith(sourceCancelPromise, noop);\n }\n function ReadableStreamClose(stream) {\n stream._state = 'closed';\n var reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseResolve(reader);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(function (readRequest) {\n readRequest._closeSteps();\n });\n reader._readRequests = new SimpleQueue();\n }\n }\n function ReadableStreamError(stream, e) {\n stream._state = 'errored';\n stream._storedError = e;\n var reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseReject(reader, e);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(function (readRequest) {\n readRequest._errorSteps(e);\n });\n reader._readRequests = new SimpleQueue();\n } else {\n reader._readIntoRequests.forEach(function (readIntoRequest) {\n readIntoRequest._errorSteps(e);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n }\n function streamBrandCheckException$1(name) {\n return new TypeError(\"ReadableStream.prototype.\" + name + \" can only be used on a ReadableStream\");\n }\n function convertQueuingStrategyInit(init, context) {\n assertDictionary(init, context);\n var highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n assertRequiredField(highWaterMark, 'highWaterMark', 'QueuingStrategyInit');\n return { highWaterMark: convertUnrestrictedDouble(highWaterMark) };\n }\n var byteLengthSizeFunction = function (chunk) {\n return chunk.byteLength;\n };\n Object.defineProperty(byteLengthSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n var ByteLengthQueuingStrategy = (function () {\n function ByteLengthQueuingStrategy(options) {\n assertRequiredArgument(options, 1, 'ByteLengthQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, \"highWaterMark\", {\n get: function () {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('highWaterMark');\n }\n return this._byteLengthQueuingStrategyHighWaterMark;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, \"size\", {\n get: function () {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('size');\n }\n return byteLengthSizeFunction;\n },\n enumerable: false,\n configurable: true\n });\n return ByteLengthQueuingStrategy;\n }());\n Object.defineProperties(ByteLengthQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'ByteLengthQueuingStrategy',\n configurable: true\n });\n }\n function byteLengthBrandCheckException(name) {\n return new TypeError(\"ByteLengthQueuingStrategy.prototype.\" + name + \" can only be used on a ByteLengthQueuingStrategy\");\n }\n function IsByteLengthQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_byteLengthQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof ByteLengthQueuingStrategy;\n }\n var countSizeFunction = function () {\n return 1;\n };\n Object.defineProperty(countSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n var CountQueuingStrategy = (function () {\n function CountQueuingStrategy(options) {\n assertRequiredArgument(options, 1, 'CountQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._countQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n Object.defineProperty(CountQueuingStrategy.prototype, \"highWaterMark\", {\n get: function () {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('highWaterMark');\n }\n return this._countQueuingStrategyHighWaterMark;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CountQueuingStrategy.prototype, \"size\", {\n get: function () {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('size');\n }\n return countSizeFunction;\n },\n enumerable: false,\n configurable: true\n });\n return CountQueuingStrategy;\n }());\n Object.defineProperties(CountQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(CountQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'CountQueuingStrategy',\n configurable: true\n });\n }\n function countBrandCheckException(name) {\n return new TypeError(\"CountQueuingStrategy.prototype.\" + name + \" can only be used on a CountQueuingStrategy\");\n }\n function IsCountQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_countQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof CountQueuingStrategy;\n }\n function convertTransformer(original, context) {\n assertDictionary(original, context);\n var flush = original === null || original === void 0 ? void 0 : original.flush;\n var readableType = original === null || original === void 0 ? void 0 : original.readableType;\n var start = original === null || original === void 0 ? void 0 : original.start;\n var transform = original === null || original === void 0 ? void 0 : original.transform;\n var writableType = original === null || original === void 0 ? void 0 : original.writableType;\n return {\n flush: flush === undefined ? undefined : convertTransformerFlushCallback(flush, original, context + \" has member 'flush' that\"),\n readableType: readableType,\n start: start === undefined ? undefined : convertTransformerStartCallback(start, original, context + \" has member 'start' that\"),\n transform: transform === undefined ? undefined : convertTransformerTransformCallback(transform, original, context + \" has member 'transform' that\"),\n writableType: writableType\n };\n }\n function convertTransformerFlushCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) {\n return promiseCall(fn, original, [controller]);\n };\n }\n function convertTransformerStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) {\n return reflectCall(fn, original, [controller]);\n };\n }\n function convertTransformerTransformCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (chunk, controller) {\n return promiseCall(fn, original, [\n chunk,\n controller\n ]);\n };\n }\n var TransformStream = (function () {\n function TransformStream(rawTransformer, rawWritableStrategy, rawReadableStrategy) {\n if (rawTransformer === void 0) {\n rawTransformer = {};\n }\n if (rawWritableStrategy === void 0) {\n rawWritableStrategy = {};\n }\n if (rawReadableStrategy === void 0) {\n rawReadableStrategy = {};\n }\n if (rawTransformer === undefined) {\n rawTransformer = null;\n }\n var writableStrategy = convertQueuingStrategy(rawWritableStrategy, 'Second parameter');\n var readableStrategy = convertQueuingStrategy(rawReadableStrategy, 'Third parameter');\n var transformer = convertTransformer(rawTransformer, 'First parameter');\n if (transformer.readableType !== undefined) {\n throw new RangeError('Invalid readableType specified');\n }\n if (transformer.writableType !== undefined) {\n throw new RangeError('Invalid writableType specified');\n }\n var readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0);\n var readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy);\n var writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);\n var writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);\n var startPromise_resolve;\n var startPromise = newPromise(function (resolve) {\n startPromise_resolve = resolve;\n });\n InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n if (transformer.start !== undefined) {\n startPromise_resolve(transformer.start(this._transformStreamController));\n } else {\n startPromise_resolve(undefined);\n }\n }\n Object.defineProperty(TransformStream.prototype, \"readable\", {\n get: function () {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('readable');\n }\n return this._readable;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TransformStream.prototype, \"writable\", {\n get: function () {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('writable');\n }\n return this._writable;\n },\n enumerable: false,\n configurable: true\n });\n return TransformStream;\n }());\n Object.defineProperties(TransformStream.prototype, {\n readable: { enumerable: true },\n writable: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStream',\n configurable: true\n });\n }\n function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n function startAlgorithm() {\n return startPromise;\n }\n function writeAlgorithm(chunk) {\n return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n }\n function abortAlgorithm(reason) {\n return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n }\n function closeAlgorithm() {\n return TransformStreamDefaultSinkCloseAlgorithm(stream);\n }\n stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n function pullAlgorithm() {\n return TransformStreamDefaultSourcePullAlgorithm(stream);\n }\n function cancelAlgorithm(reason) {\n TransformStreamErrorWritableAndUnblockWrite(stream, reason);\n return promiseResolvedWith(undefined);\n }\n stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n stream._backpressure = undefined;\n stream._backpressureChangePromise = undefined;\n stream._backpressureChangePromise_resolve = undefined;\n TransformStreamSetBackpressure(stream, true);\n stream._transformStreamController = undefined;\n }\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n return x instanceof TransformStream;\n }\n function TransformStreamError(stream, e) {\n ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n }\n function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n if (stream._backpressure) {\n TransformStreamSetBackpressure(stream, false);\n }\n }\n function TransformStreamSetBackpressure(stream, backpressure) {\n if (stream._backpressureChangePromise !== undefined) {\n stream._backpressureChangePromise_resolve();\n }\n stream._backpressureChangePromise = newPromise(function (resolve) {\n stream._backpressureChangePromise_resolve = resolve;\n });\n stream._backpressure = backpressure;\n }\n var TransformStreamDefaultController = (function () {\n function TransformStreamDefaultController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(TransformStreamDefaultController.prototype, \"desiredSize\", {\n get: function () {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n var readableController = this._controlledTransformStream._readable._readableStreamController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n },\n enumerable: false,\n configurable: true\n });\n TransformStreamDefaultController.prototype.enqueue = function (chunk) {\n if (chunk === void 0) {\n chunk = undefined;\n }\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n TransformStreamDefaultControllerEnqueue(this, chunk);\n };\n TransformStreamDefaultController.prototype.error = function (reason) {\n if (reason === void 0) {\n reason = undefined;\n }\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('error');\n }\n TransformStreamDefaultControllerError(this, reason);\n };\n TransformStreamDefaultController.prototype.terminate = function () {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('terminate');\n }\n TransformStreamDefaultControllerTerminate(this);\n };\n return TransformStreamDefaultController;\n }());\n Object.defineProperties(TransformStreamDefaultController.prototype, {\n enqueue: { enumerable: true },\n error: { enumerable: true },\n terminate: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStreamDefaultController',\n configurable: true\n });\n }\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n return x instanceof TransformStreamDefaultController;\n }\n function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\n controller._controlledTransformStream = stream;\n stream._transformStreamController = controller;\n controller._transformAlgorithm = transformAlgorithm;\n controller._flushAlgorithm = flushAlgorithm;\n }\n function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n var controller = Object.create(TransformStreamDefaultController.prototype);\n var transformAlgorithm = function (chunk) {\n try {\n TransformStreamDefaultControllerEnqueue(controller, chunk);\n return promiseResolvedWith(undefined);\n } catch (transformResultE) {\n return promiseRejectedWith(transformResultE);\n }\n };\n var flushAlgorithm = function () {\n return promiseResolvedWith(undefined);\n };\n if (transformer.transform !== undefined) {\n transformAlgorithm = function (chunk) {\n return transformer.transform(chunk, controller);\n };\n }\n if (transformer.flush !== undefined) {\n flushAlgorithm = function () {\n return transformer.flush(controller);\n };\n }\n SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\n }\n function TransformStreamDefaultControllerClearAlgorithms(controller) {\n controller._transformAlgorithm = undefined;\n controller._flushAlgorithm = undefined;\n }\n function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n var stream = controller._controlledTransformStream;\n var readableController = stream._readable._readableStreamController;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {\n throw new TypeError('Readable side is not in a state that permits enqueue');\n }\n try {\n ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n } catch (e) {\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n throw stream._readable._storedError;\n }\n var backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n if (backpressure !== stream._backpressure) {\n TransformStreamSetBackpressure(stream, true);\n }\n }\n function TransformStreamDefaultControllerError(controller, e) {\n TransformStreamError(controller._controlledTransformStream, e);\n }\n function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n var transformPromise = controller._transformAlgorithm(chunk);\n return transformPromiseWith(transformPromise, undefined, function (r) {\n TransformStreamError(controller._controlledTransformStream, r);\n throw r;\n });\n }\n function TransformStreamDefaultControllerTerminate(controller) {\n var stream = controller._controlledTransformStream;\n var readableController = stream._readable._readableStreamController;\n ReadableStreamDefaultControllerClose(readableController);\n var error = new TypeError('TransformStream terminated');\n TransformStreamErrorWritableAndUnblockWrite(stream, error);\n }\n function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n var controller = stream._transformStreamController;\n if (stream._backpressure) {\n var backpressureChangePromise = stream._backpressureChangePromise;\n return transformPromiseWith(backpressureChangePromise, function () {\n var writable = stream._writable;\n var state = writable._state;\n if (state === 'erroring') {\n throw writable._storedError;\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n });\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n }\n function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n TransformStreamError(stream, reason);\n return promiseResolvedWith(undefined);\n }\n function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n var readable = stream._readable;\n var controller = stream._transformStreamController;\n var flushPromise = controller._flushAlgorithm();\n TransformStreamDefaultControllerClearAlgorithms(controller);\n return transformPromiseWith(flushPromise, function () {\n if (readable._state === 'errored') {\n throw readable._storedError;\n }\n ReadableStreamDefaultControllerClose(readable._readableStreamController);\n }, function (r) {\n TransformStreamError(stream, r);\n throw readable._storedError;\n });\n }\n function TransformStreamDefaultSourcePullAlgorithm(stream) {\n TransformStreamSetBackpressure(stream, false);\n return stream._backpressureChangePromise;\n }\n function defaultControllerBrandCheckException(name) {\n return new TypeError(\"TransformStreamDefaultController.prototype.\" + name + \" can only be used on a TransformStreamDefaultController\");\n }\n function streamBrandCheckException(name) {\n return new TypeError(\"TransformStream.prototype.\" + name + \" can only be used on a TransformStream\");\n }\n exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n exports.CountQueuingStrategy = CountQueuingStrategy;\n exports.ReadableByteStreamController = ReadableByteStreamController;\n exports.ReadableStream = ReadableStream;\n exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader;\n exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest;\n exports.ReadableStreamDefaultController = ReadableStreamDefaultController;\n exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader;\n exports.TransformStream = TransformStream;\n exports.TransformStreamDefaultController = TransformStreamDefaultController;\n exports.WritableStream = WritableStream;\n exports.WritableStreamDefaultController = WritableStreamDefaultController;\n exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter;\n Object.defineProperty(exports, '__esModule', { value: true });\n}));\n\n/***/ }),\n/* 135 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(4);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar BaseCanvasFactory = /*#__PURE__*/function () {\n function BaseCanvasFactory() {\n _classCallCheck(this, BaseCanvasFactory);\n\n if (this.constructor === BaseCanvasFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n\n _createClass(BaseCanvasFactory, [{\n key: \"create\",\n value: function create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n var canvas = this._createCanvas(width, height);\n\n return {\n canvas: canvas,\n context: canvas.getContext(\"2d\")\n };\n }\n }, {\n key: \"reset\",\n value: function reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n }, {\n key: \"destroy\",\n value: function destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n }, {\n key: \"_createCanvas\",\n value: function _createCanvas(width, height) {\n (0, _util.unreachable)(\"Abstract method `_createCanvas` called.\");\n }\n }]);\n\n return BaseCanvasFactory;\n}();\n\nexports.BaseCanvasFactory = BaseCanvasFactory;\n\nvar BaseCMapReaderFactory = /*#__PURE__*/function () {\n function BaseCMapReaderFactory(_ref) {\n var _ref$baseUrl = _ref.baseUrl,\n baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl,\n _ref$isCompressed = _ref.isCompressed,\n isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed;\n\n _classCallCheck(this, BaseCMapReaderFactory);\n\n if (this.constructor === BaseCMapReaderFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n _createClass(BaseCMapReaderFactory, [{\n key: \"fetch\",\n value: function () {\n var _fetch = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee(_ref2) {\n var _this = this;\n\n var name, url, compressionType;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n name = _ref2.name;\n\n if (this.baseUrl) {\n _context.next = 3;\n break;\n }\n\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n\n case 3:\n if (name) {\n _context.next = 5;\n break;\n }\n\n throw new Error(\"CMap name must be specified.\");\n\n case 5:\n url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n return _context.abrupt(\"return\", this._fetchData(url, compressionType)[\"catch\"](function (reason) {\n throw new Error(\"Unable to load \".concat(_this.isCompressed ? \"binary \" : \"\", \"CMap at: \").concat(url));\n }));\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function fetch(_x) {\n return _fetch.apply(this, arguments);\n }\n\n return fetch;\n }()\n }, {\n key: \"_fetchData\",\n value: function _fetchData(url, compressionType) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n }]);\n\n return BaseCMapReaderFactory;\n}();\n\nexports.BaseCMapReaderFactory = BaseCMapReaderFactory;\n\nvar BaseStandardFontDataFactory = /*#__PURE__*/function () {\n function BaseStandardFontDataFactory(_ref3) {\n var _ref3$baseUrl = _ref3.baseUrl,\n baseUrl = _ref3$baseUrl === void 0 ? null : _ref3$baseUrl;\n\n _classCallCheck(this, BaseStandardFontDataFactory);\n\n if (this.constructor === BaseStandardFontDataFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseStandardFontDataFactory.\");\n }\n\n this.baseUrl = baseUrl;\n }\n\n _createClass(BaseStandardFontDataFactory, [{\n key: \"fetch\",\n value: function () {\n var _fetch2 = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee2(_ref4) {\n var filename, url;\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n filename = _ref4.filename;\n\n if (this.baseUrl) {\n _context2.next = 3;\n break;\n }\n\n throw new Error('The standard font \"baseUrl\" parameter must be specified, ensure that ' + 'the \"standardFontDataUrl\" API parameter is provided.');\n\n case 3:\n if (filename) {\n _context2.next = 5;\n break;\n }\n\n throw new Error(\"Font filename must be specified.\");\n\n case 5:\n url = \"\".concat(this.baseUrl).concat(filename);\n return _context2.abrupt(\"return\", this._fetchData(url)[\"catch\"](function (reason) {\n throw new Error(\"Unable to load font data at: \".concat(url));\n }));\n\n case 7:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function fetch(_x2) {\n return _fetch2.apply(this, arguments);\n }\n\n return fetch;\n }()\n }, {\n key: \"_fetchData\",\n value: function _fetchData(url) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n }]);\n\n return BaseStandardFontDataFactory;\n}();\n\nexports.BaseStandardFontDataFactory = BaseStandardFontDataFactory;\n\nvar BaseSVGFactory = /*#__PURE__*/function () {\n function BaseSVGFactory() {\n _classCallCheck(this, BaseSVGFactory);\n\n if (this.constructor === BaseSVGFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseSVGFactory.\");\n }\n }\n\n _createClass(BaseSVGFactory, [{\n key: \"create\",\n value: function create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n\n var svg = this._createSVG(\"svg:svg\");\n\n svg.setAttribute(\"version\", \"1.1\");\n svg.setAttribute(\"width\", \"\".concat(width, \"px\"));\n svg.setAttribute(\"height\", \"\".concat(height, \"px\"));\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", \"0 0 \".concat(width, \" \").concat(height));\n return svg;\n }\n }, {\n key: \"createElement\",\n value: function createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n\n return this._createSVG(type);\n }\n }, {\n key: \"_createSVG\",\n value: function _createSVG(type) {\n (0, _util.unreachable)(\"Abstract method `_createSVG` called.\");\n }\n }]);\n\n return BaseSVGFactory;\n}();\n\nexports.BaseSVGFactory = BaseSVGFactory;\n\n/***/ }),\n/* 136 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.build = exports.RenderTask = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0;\nexports.getDocument = getDocument;\nexports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\nexports.version = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(4);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _font_loader = __w_pdfjs_require__(137);\n\nvar _node_utils = __w_pdfjs_require__(138);\n\nvar _annotation_storage = __w_pdfjs_require__(139);\n\nvar _canvas = __w_pdfjs_require__(140);\n\nvar _worker_options = __w_pdfjs_require__(142);\n\nvar _is_node = __w_pdfjs_require__(6);\n\nvar _message_handler = __w_pdfjs_require__(143);\n\nvar _metadata = __w_pdfjs_require__(144);\n\nvar _optional_content_config = __w_pdfjs_require__(145);\n\nvar _transport_stream = __w_pdfjs_require__(146);\n\nvar _xfa_text = __w_pdfjs_require__(147);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar DEFAULT_RANGE_CHUNK_SIZE = 65536;\nvar RENDERING_CANCELLED_TIMEOUT = 100;\nvar DefaultCanvasFactory = _is_node.isNodeJS ? _node_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory;\nexports.DefaultCanvasFactory = DefaultCanvasFactory;\nvar DefaultCMapReaderFactory = _is_node.isNodeJS ? _node_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory;\nexports.DefaultCMapReaderFactory = DefaultCMapReaderFactory;\nvar DefaultStandardFontDataFactory = _is_node.isNodeJS ? _node_utils.NodeStandardFontDataFactory : _display_utils.DOMStandardFontDataFactory;\nexports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory;\nvar createPDFNetworkStream;\n\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\nfunction getDocument(src) {\n var task = new PDFDocumentLoadingTask();\n var source;\n\n if (typeof src === \"string\" || src instanceof URL) {\n source = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n source = {\n data: src\n };\n } else if (src instanceof PDFDataRangeTransport) {\n source = {\n range: src\n };\n } else {\n if (_typeof(src) !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, \" + \"need either string, URL, Uint8Array, or parameter object.\");\n }\n\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n }\n\n source = src;\n }\n\n var params = Object.create(null);\n var rangeTransport = null,\n worker = null;\n\n for (var key in source) {\n var value = source[key];\n\n switch (key) {\n case \"url\":\n if (typeof window !== \"undefined\") {\n try {\n params[key] = new URL(value, window.location).href;\n continue;\n } catch (ex) {\n (0, _util.warn)(\"Cannot create valid URL: \\\"\".concat(ex, \"\\\".\"));\n }\n } else if (typeof value === \"string\" || value instanceof URL) {\n params[key] = value.toString();\n continue;\n }\n\n throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n\n case \"range\":\n rangeTransport = value;\n continue;\n\n case \"worker\":\n worker = value;\n continue;\n\n case \"data\":\n if (_is_node.isNodeJS && typeof Buffer !== \"undefined\" && value instanceof Buffer) {\n params[key] = new Uint8Array(value);\n } else if (value instanceof Uint8Array) {\n break;\n } else if (typeof value === \"string\") {\n params[key] = (0, _util.stringToBytes)(value);\n } else if (_typeof(value) === \"object\" && value !== null && !isNaN(value.length)) {\n params[key] = new Uint8Array(value);\n } else if ((0, _util.isArrayBuffer)(value)) {\n params[key] = new Uint8Array(value);\n } else {\n throw new Error(\"Invalid PDF binary data: either typed array, \" + \"string, or array-like object is expected in the data property.\");\n }\n\n continue;\n }\n\n params[key] = value;\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory;\n params.StandardFontDataFactory = params.StandardFontDataFactory || DefaultStandardFontDataFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n params.enableXfa = params.enableXfa === true;\n\n if (typeof params.docBaseUrl !== \"string\" || (0, _display_utils.isDataScheme)(params.docBaseUrl)) {\n params.docBaseUrl = null;\n }\n\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n\n if (typeof params.useWorkerFetch !== \"boolean\") {\n params.useWorkerFetch = params.CMapReaderFactory === _display_utils.DOMCMapReaderFactory && params.StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory;\n }\n\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = _is_node.isNodeJS;\n }\n\n if (typeof params.useSystemFonts !== \"boolean\") {\n params.useSystemFonts = !_is_node.isNodeJS && !params.disableFontFace;\n }\n\n if (typeof params.ownerDocument === \"undefined\") {\n params.ownerDocument = globalThis.document;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n (0, _util.setVerbosityLevel)(params.verbosity);\n\n if (!worker) {\n var workerParams = {\n verbosity: params.verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n\n var docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n var workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId);\n\n var networkStreamPromise = new Promise(function (resolve) {\n var networkStream;\n\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n contentDispositionFilename: params.contentDispositionFilename,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n }, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n });\n }\n\n resolve(networkStream);\n });\n return Promise.all([workerIdPromise, networkStreamPromise]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n workerId = _ref2[0],\n networkStream = _ref2[1];\n\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n var transport = new WorkerTransport(messageHandler, task, networkStream, params);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n })[\"catch\"](task._capability.reject);\n return task;\n}\n\nfunction _fetchDocument(_x, _x2, _x3, _x4) {\n return _fetchDocument2.apply(this, arguments);\n}\n\nfunction _fetchDocument2() {\n _fetchDocument2 = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee7(worker, source, pdfDataRangeTransport, docId) {\n var workerId;\n return _regenerator[\"default\"].wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n if (!worker.destroyed) {\n _context7.next = 2;\n break;\n }\n\n throw new Error(\"Worker was destroyed\");\n\n case 2:\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n source.contentDispositionFilename = pdfDataRangeTransport.contentDispositionFilename;\n }\n\n _context7.next = 5;\n return worker.messageHandler.sendWithPromise(\"GetDocRequest\", {\n docId: docId,\n apiVersion: '2.12.313',\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n docBaseUrl: source.docBaseUrl,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n fontExtraProperties: source.fontExtraProperties,\n enableXfa: source.enableXfa,\n useSystemFonts: source.useSystemFonts,\n cMapUrl: source.useWorkerFetch ? source.cMapUrl : null,\n standardFontDataUrl: source.useWorkerFetch ? source.standardFontDataUrl : null\n });\n\n case 5:\n workerId = _context7.sent;\n\n if (!worker.destroyed) {\n _context7.next = 8;\n break;\n }\n\n throw new Error(\"Worker was destroyed\");\n\n case 8:\n return _context7.abrupt(\"return\", workerId);\n\n case 9:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }));\n return _fetchDocument2.apply(this, arguments);\n}\n\nvar PDFDocumentLoadingTask = /*#__PURE__*/function () {\n function PDFDocumentLoadingTask() {\n _classCallCheck(this, PDFDocumentLoadingTask);\n\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = \"d\".concat(PDFDocumentLoadingTask.idCounters.doc++);\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n this.onUnsupportedFeature = null;\n }\n\n _createClass(PDFDocumentLoadingTask, [{\n key: \"promise\",\n get: function get() {\n return this._capability.promise;\n }\n }, {\n key: \"destroy\",\n value: function () {\n var _destroy = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var _this$_transport;\n\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n this.destroyed = true;\n _context.next = 3;\n return (_this$_transport = this._transport) === null || _this$_transport === void 0 ? void 0 : _this$_transport.destroy();\n\n case 3:\n this._transport = null;\n\n if (this._worker) {\n this._worker.destroy();\n\n this._worker = null;\n }\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function destroy() {\n return _destroy.apply(this, arguments);\n }\n\n return destroy;\n }()\n }], [{\n key: \"idCounters\",\n get: function get() {\n return (0, _util.shadow)(this, \"idCounters\", {\n doc: 0\n });\n }\n }]);\n\n return PDFDocumentLoadingTask;\n}();\n\nexports.PDFDocumentLoadingTask = PDFDocumentLoadingTask;\n\nvar PDFDataRangeTransport = /*#__PURE__*/function () {\n function PDFDataRangeTransport(length, initialData) {\n var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var contentDispositionFilename = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, PDFDataRangeTransport);\n\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = (0, _util.createPromiseCapability)();\n }\n\n _createClass(PDFDataRangeTransport, [{\n key: \"addRangeListener\",\n value: function addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n }, {\n key: \"addProgressListener\",\n value: function addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n }, {\n key: \"addProgressiveReadListener\",\n value: function addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n }, {\n key: \"addProgressiveDoneListener\",\n value: function addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n }, {\n key: \"onDataRange\",\n value: function onDataRange(begin, chunk) {\n var _iterator = _createForOfIteratorHelper(this._rangeListeners),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var listener = _step.value;\n listener(begin, chunk);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"onDataProgress\",\n value: function onDataProgress(loaded, total) {\n var _this = this;\n\n this._readyCapability.promise.then(function () {\n var _iterator2 = _createForOfIteratorHelper(_this._progressListeners),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var listener = _step2.value;\n listener(loaded, total);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n });\n }\n }, {\n key: \"onDataProgressiveRead\",\n value: function onDataProgressiveRead(chunk) {\n var _this2 = this;\n\n this._readyCapability.promise.then(function () {\n var _iterator3 = _createForOfIteratorHelper(_this2._progressiveReadListeners),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var listener = _step3.value;\n listener(chunk);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n });\n }\n }, {\n key: \"onDataProgressiveDone\",\n value: function onDataProgressiveDone() {\n var _this3 = this;\n\n this._readyCapability.promise.then(function () {\n var _iterator4 = _createForOfIteratorHelper(_this3._progressiveDoneListeners),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var listener = _step4.value;\n listener();\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n });\n }\n }, {\n key: \"transportReady\",\n value: function transportReady() {\n this._readyCapability.resolve();\n }\n }, {\n key: \"requestDataRange\",\n value: function requestDataRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n }, {\n key: \"abort\",\n value: function abort() {}\n }]);\n\n return PDFDataRangeTransport;\n}();\n\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\n\nvar PDFDocumentProxy = /*#__PURE__*/function () {\n function PDFDocumentProxy(pdfInfo, transport) {\n var _this4 = this;\n\n _classCallCheck(this, PDFDocumentProxy);\n\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n Object.defineProperty(this, \"fingerprint\", {\n get: function get() {\n (0, _display_utils.deprecated)(\"`PDFDocumentProxy.fingerprint`, \" + \"please use `PDFDocumentProxy.fingerprints` instead.\");\n return this.fingerprints[0];\n }\n });\n Object.defineProperty(this, \"getStats\", {\n value: function () {\n var _value = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee2() {\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n (0, _display_utils.deprecated)(\"`PDFDocumentProxy.getStats`, \" + \"please use the `PDFDocumentProxy.stats`-getter instead.\");\n return _context2.abrupt(\"return\", _this4.stats || {\n streamTypes: {},\n fontTypes: {}\n });\n\n case 2:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n function value() {\n return _value.apply(this, arguments);\n }\n\n return value;\n }()\n });\n }\n\n _createClass(PDFDocumentProxy, [{\n key: \"annotationStorage\",\n get: function get() {\n return this._transport.annotationStorage;\n }\n }, {\n key: \"numPages\",\n get: function get() {\n return this._pdfInfo.numPages;\n }\n }, {\n key: \"fingerprints\",\n get: function get() {\n return this._pdfInfo.fingerprints;\n }\n }, {\n key: \"stats\",\n get: function get() {\n return this._transport.stats;\n }\n }, {\n key: \"isPureXfa\",\n get: function get() {\n return !!this._transport._htmlForXfa;\n }\n }, {\n key: \"allXfaHtml\",\n get: function get() {\n return this._transport._htmlForXfa;\n }\n }, {\n key: \"getPage\",\n value: function getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n }, {\n key: \"getPageIndex\",\n value: function getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n }, {\n key: \"getDestinations\",\n value: function getDestinations() {\n return this._transport.getDestinations();\n }\n }, {\n key: \"getDestination\",\n value: function getDestination(id) {\n return this._transport.getDestination(id);\n }\n }, {\n key: \"getPageLabels\",\n value: function getPageLabels() {\n return this._transport.getPageLabels();\n }\n }, {\n key: \"getPageLayout\",\n value: function getPageLayout() {\n return this._transport.getPageLayout();\n }\n }, {\n key: \"getPageMode\",\n value: function getPageMode() {\n return this._transport.getPageMode();\n }\n }, {\n key: \"getViewerPreferences\",\n value: function getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n }, {\n key: \"getOpenAction\",\n value: function getOpenAction() {\n return this._transport.getOpenAction();\n }\n }, {\n key: \"getAttachments\",\n value: function getAttachments() {\n return this._transport.getAttachments();\n }\n }, {\n key: \"getJavaScript\",\n value: function getJavaScript() {\n return this._transport.getJavaScript();\n }\n }, {\n key: \"getJSActions\",\n value: function getJSActions() {\n return this._transport.getDocJSActions();\n }\n }, {\n key: \"getOutline\",\n value: function getOutline() {\n return this._transport.getOutline();\n }\n }, {\n key: \"getOptionalContentConfig\",\n value: function getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n }, {\n key: \"getPermissions\",\n value: function getPermissions() {\n return this._transport.getPermissions();\n }\n }, {\n key: \"getMetadata\",\n value: function getMetadata() {\n return this._transport.getMetadata();\n }\n }, {\n key: \"getMarkInfo\",\n value: function getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n }, {\n key: \"getData\",\n value: function getData() {\n return this._transport.getData();\n }\n }, {\n key: \"getDownloadInfo\",\n value: function getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n }, {\n key: \"cleanup\",\n value: function cleanup() {\n var keepLoadedFonts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n return this.loadingTask.destroy();\n }\n }, {\n key: \"loadingParams\",\n get: function get() {\n return this._transport.loadingParams;\n }\n }, {\n key: \"loadingTask\",\n get: function get() {\n return this._transport.loadingTask;\n }\n }, {\n key: \"saveDocument\",\n value: function saveDocument() {\n if (this._transport.annotationStorage.size <= 0) {\n (0, _display_utils.deprecated)(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n }\n\n return this._transport.saveDocument();\n }\n }, {\n key: \"getFieldObjects\",\n value: function getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n }, {\n key: \"hasJSActions\",\n value: function hasJSActions() {\n return this._transport.hasJSActions();\n }\n }, {\n key: \"getCalculationOrderIds\",\n value: function getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n }]);\n\n return PDFDocumentProxy;\n}();\n\nexports.PDFDocumentProxy = PDFDocumentProxy;\n\nvar PDFPageProxy = /*#__PURE__*/function () {\n function PDFPageProxy(pageIndex, pageInfo, transport, ownerDocument) {\n var pdfBug = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n _classCallCheck(this, PDFPageProxy);\n\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._ownerDocument = ownerDocument;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this._intentStates = new Map();\n this._annotationPromises = new Map();\n this.destroyed = false;\n }\n\n _createClass(PDFPageProxy, [{\n key: \"pageNumber\",\n get: function get() {\n return this._pageIndex + 1;\n }\n }, {\n key: \"rotate\",\n get: function get() {\n return this._pageInfo.rotate;\n }\n }, {\n key: \"ref\",\n get: function get() {\n return this._pageInfo.ref;\n }\n }, {\n key: \"userUnit\",\n get: function get() {\n return this._pageInfo.userUnit;\n }\n }, {\n key: \"view\",\n get: function get() {\n return this._pageInfo.view;\n }\n }, {\n key: \"getViewport\",\n value: function getViewport() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n scale = _ref3.scale,\n _ref3$rotation = _ref3.rotation,\n rotation = _ref3$rotation === void 0 ? this.rotate : _ref3$rotation,\n _ref3$offsetX = _ref3.offsetX,\n offsetX = _ref3$offsetX === void 0 ? 0 : _ref3$offsetX,\n _ref3$offsetY = _ref3.offsetY,\n offsetY = _ref3$offsetY === void 0 ? 0 : _ref3$offsetY,\n _ref3$dontFlip = _ref3.dontFlip,\n dontFlip = _ref3$dontFlip === void 0 ? false : _ref3$dontFlip;\n\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale: scale,\n rotation: rotation,\n offsetX: offsetX,\n offsetY: offsetY,\n dontFlip: dontFlip\n });\n }\n }, {\n key: \"getAnnotations\",\n value: function getAnnotations() {\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$intent = _ref4.intent,\n intent = _ref4$intent === void 0 ? \"display\" : _ref4$intent;\n\n var intentArgs = this._transport.getRenderingIntent(intent);\n\n var promise = this._annotationPromises.get(intentArgs.cacheKey);\n\n if (!promise) {\n promise = this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent);\n\n this._annotationPromises.set(intentArgs.cacheKey, promise);\n\n promise = promise.then(function (annotations) {\n var _iterator5 = _createForOfIteratorHelper(annotations),\n _step5;\n\n try {\n var _loop = function _loop() {\n var annotation = _step5.value;\n\n if (annotation.titleObj !== undefined) {\n Object.defineProperty(annotation, \"title\", {\n get: function get() {\n (0, _display_utils.deprecated)(\"`title`-property on annotation, please use `titleObj` instead.\");\n return annotation.titleObj.str;\n }\n });\n }\n\n if (annotation.contentsObj !== undefined) {\n Object.defineProperty(annotation, \"contents\", {\n get: function get() {\n (0, _display_utils.deprecated)(\"`contents`-property on annotation, please use `contentsObj` instead.\");\n return annotation.contentsObj.str;\n }\n });\n }\n };\n\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n _loop();\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n return annotations;\n });\n }\n\n return promise;\n }\n }, {\n key: \"getJSActions\",\n value: function getJSActions() {\n return this._jsActionsPromise || (this._jsActionsPromise = this._transport.getPageJSActions(this._pageIndex));\n }\n }, {\n key: \"getXfa\",\n value: function () {\n var _getXfa = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee3() {\n var _this$_transport$_htm;\n\n return _regenerator[\"default\"].wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", ((_this$_transport$_htm = this._transport._htmlForXfa) === null || _this$_transport$_htm === void 0 ? void 0 : _this$_transport$_htm.children[this._pageIndex]) || null);\n\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function getXfa() {\n return _getXfa.apply(this, arguments);\n }\n\n return getXfa;\n }()\n }, {\n key: \"render\",\n value: function render(_ref5) {\n var _arguments$,\n _arguments$2,\n _this5 = this,\n _intentState;\n\n var canvasContext = _ref5.canvasContext,\n viewport = _ref5.viewport,\n _ref5$intent = _ref5.intent,\n intent = _ref5$intent === void 0 ? \"display\" : _ref5$intent,\n _ref5$annotationMode = _ref5.annotationMode,\n annotationMode = _ref5$annotationMode === void 0 ? _util.AnnotationMode.ENABLE : _ref5$annotationMode,\n _ref5$transform = _ref5.transform,\n transform = _ref5$transform === void 0 ? null : _ref5$transform,\n _ref5$imageLayer = _ref5.imageLayer,\n imageLayer = _ref5$imageLayer === void 0 ? null : _ref5$imageLayer,\n _ref5$canvasFactory = _ref5.canvasFactory,\n canvasFactory = _ref5$canvasFactory === void 0 ? null : _ref5$canvasFactory,\n _ref5$background = _ref5.background,\n background = _ref5$background === void 0 ? null : _ref5$background,\n _ref5$optionalContent = _ref5.optionalContentConfigPromise,\n optionalContentConfigPromise = _ref5$optionalContent === void 0 ? null : _ref5$optionalContent,\n _ref5$annotationCanva = _ref5.annotationCanvasMap,\n annotationCanvasMap = _ref5$annotationCanva === void 0 ? null : _ref5$annotationCanva;\n\n if (((_arguments$ = arguments[0]) === null || _arguments$ === void 0 ? void 0 : _arguments$.renderInteractiveForms) !== undefined) {\n (0, _display_utils.deprecated)(\"render no longer accepts the `renderInteractiveForms`-option, \" + \"please use the `annotationMode`-option instead.\");\n\n if (arguments[0].renderInteractiveForms === true && annotationMode === _util.AnnotationMode.ENABLE) {\n annotationMode = _util.AnnotationMode.ENABLE_FORMS;\n }\n }\n\n if (((_arguments$2 = arguments[0]) === null || _arguments$2 === void 0 ? void 0 : _arguments$2.includeAnnotationStorage) !== undefined) {\n (0, _display_utils.deprecated)(\"render no longer accepts the `includeAnnotationStorage`-option, \" + \"please use the `annotationMode`-option instead.\");\n\n if (arguments[0].includeAnnotationStorage === true && annotationMode === _util.AnnotationMode.ENABLE) {\n annotationMode = _util.AnnotationMode.ENABLE_STORAGE;\n }\n }\n\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n var intentArgs = this._transport.getRenderingIntent(intent, annotationMode);\n\n this.pendingCleanup = false;\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n var intentState = this._intentStates.get(intentArgs.cacheKey);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n var canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({\n ownerDocument: this._ownerDocument\n });\n var intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT);\n\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList(intentArgs);\n }\n\n var complete = function complete(error) {\n intentState.renderTasks[\"delete\"](internalRenderTask);\n\n if (_this5.cleanupAfterRender || intentPrint) {\n _this5.pendingCleanup = true;\n }\n\n _this5._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n _this5._abortOperatorList({\n intentState: intentState,\n reason: error instanceof Error ? error : new Error(error)\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n\n if (_this5._stats) {\n _this5._stats.timeEnd(\"Rendering\");\n\n _this5._stats.timeEnd(\"Overall\");\n }\n };\n\n var internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext: canvasContext,\n viewport: viewport,\n transform: transform,\n imageLayer: imageLayer,\n background: background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap: annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug\n });\n ((_intentState = intentState).renderTasks || (_intentState.renderTasks = new Set())).add(internalRenderTask);\n var renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(function (_ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n transparency = _ref7[0],\n optionalContentConfig = _ref7[1];\n\n if (_this5.pendingCleanup) {\n complete();\n return;\n }\n\n if (_this5._stats) {\n _this5._stats.time(\"Rendering\");\n }\n\n internalRenderTask.initializeGraphics({\n transparency: transparency,\n optionalContentConfig: optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n })[\"catch\"](complete);\n return renderTask;\n }\n }, {\n key: \"getOperatorList\",\n value: function getOperatorList() {\n var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref8$intent = _ref8.intent,\n intent = _ref8$intent === void 0 ? \"display\" : _ref8$intent,\n _ref8$annotationMode = _ref8.annotationMode,\n annotationMode = _ref8$annotationMode === void 0 ? _util.AnnotationMode.ENABLE : _ref8$annotationMode;\n\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n intentState.renderTasks[\"delete\"](opListTask);\n }\n }\n\n var intentArgs = this._transport.getRenderingIntent(intent, annotationMode, true);\n\n var intentState = this._intentStates.get(intentArgs.cacheKey);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n var opListTask;\n\n if (!intentState.opListReadCapability) {\n var _intentState2;\n\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = (0, _util.createPromiseCapability)();\n ((_intentState2 = intentState).renderTasks || (_intentState2.renderTasks = new Set())).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList(intentArgs);\n }\n\n return intentState.opListReadCapability.promise;\n }\n }, {\n key: \"streamTextContent\",\n value: function streamTextContent() {\n var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref9$normalizeWhites = _ref9.normalizeWhitespace,\n normalizeWhitespace = _ref9$normalizeWhites === void 0 ? false : _ref9$normalizeWhites,\n _ref9$disableCombineT = _ref9.disableCombineTextItems,\n disableCombineTextItems = _ref9$disableCombineT === void 0 ? false : _ref9$disableCombineT,\n _ref9$includeMarkedCo = _ref9.includeMarkedContent,\n includeMarkedContent = _ref9$includeMarkedCo === void 0 ? false : _ref9$includeMarkedCo;\n\n var TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n normalizeWhitespace: normalizeWhitespace === true,\n combineTextItems: disableCombineTextItems !== true,\n includeMarkedContent: includeMarkedContent === true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size: function size(textContent) {\n return textContent.items.length;\n }\n });\n }\n }, {\n key: \"getTextContent\",\n value: function getTextContent() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (this._transport._htmlForXfa) {\n return this.getXfa().then(function (xfa) {\n return _xfa_text.XfaText.textContent(xfa);\n });\n }\n\n var readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function (_ref10) {\n var _textContent$items;\n\n var value = _ref10.value,\n done = _ref10.done;\n\n if (done) {\n resolve(textContent);\n return;\n }\n\n Object.assign(textContent.styles, value.styles);\n\n (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items));\n\n pump();\n }, reject);\n }\n\n var reader = readableStream.getReader();\n var textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n }, {\n key: \"getStructTree\",\n value: function getStructTree() {\n return this._structTreePromise || (this._structTreePromise = this._transport.getStructTree(this._pageIndex));\n }\n }, {\n key: \"_destroy\",\n value: function _destroy() {\n this.destroyed = true;\n var waitOn = [];\n\n var _iterator6 = _createForOfIteratorHelper(this._intentStates.values()),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var intentState = _step6.value;\n\n this._abortOperatorList({\n intentState: intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n\n if (intentState.opListReadCapability) {\n continue;\n }\n\n var _iterator7 = _createForOfIteratorHelper(intentState.renderTasks),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var internalRenderTask = _step7.value;\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n this.objs.clear();\n\n this._annotationPromises.clear();\n\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n }, {\n key: \"cleanup\",\n value: function cleanup() {\n var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n }, {\n key: \"_tryCleanup\",\n value: function _tryCleanup() {\n var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!this.pendingCleanup) {\n return false;\n }\n\n var _iterator8 = _createForOfIteratorHelper(this._intentStates.values()),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var _step8$value = _step8.value,\n renderTasks = _step8$value.renderTasks,\n operatorList = _step8$value.operatorList;\n\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n\n this._intentStates.clear();\n\n this.objs.clear();\n\n this._annotationPromises.clear();\n\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n\n if (resetStats && this._stats) {\n this._stats = new _display_utils.StatTimer();\n }\n\n this.pendingCleanup = false;\n return true;\n }\n }, {\n key: \"_startRenderPage\",\n value: function _startRenderPage(transparency, cacheKey) {\n var intentState = this._intentStates.get(cacheKey);\n\n if (!intentState) {\n return;\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Page Request\");\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n }, {\n key: \"_renderPageChunk\",\n value: function _renderPageChunk(operatorListChunk, intentState) {\n for (var i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n var _iterator9 = _createForOfIteratorHelper(intentState.renderTasks),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var internalRenderTask = _step9.value;\n internalRenderTask.operatorListChanged();\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n }, {\n key: \"_pumpOperatorList\",\n value: function _pumpOperatorList(_ref11) {\n var _this6 = this;\n\n var renderingIntent = _ref11.renderingIntent,\n cacheKey = _ref11.cacheKey;\n\n var readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey: cacheKey,\n annotationStorage: renderingIntent & _util.RenderingIntentFlag.ANNOTATIONS_STORAGE ? this._transport.annotationStorage.serializable : null\n });\n\n var reader = readableStream.getReader();\n\n var intentState = this._intentStates.get(cacheKey);\n\n intentState.streamReader = reader;\n\n var pump = function pump() {\n reader.read().then(function (_ref12) {\n var value = _ref12.value,\n done = _ref12.done;\n\n if (done) {\n intentState.streamReader = null;\n return;\n }\n\n if (_this6._transport.destroyed) {\n return;\n }\n\n _this6._renderPageChunk(value, intentState);\n\n pump();\n }, function (reason) {\n intentState.streamReader = null;\n\n if (_this6._transport.destroyed) {\n return;\n }\n\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n\n var _iterator10 = _createForOfIteratorHelper(intentState.renderTasks),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var internalRenderTask = _step10.value;\n internalRenderTask.operatorListChanged();\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n\n _this6._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n\n pump();\n }\n }, {\n key: \"_abortOperatorList\",\n value: function _abortOperatorList(_ref13) {\n var _this7 = this;\n\n var intentState = _ref13.intentState,\n reason = _ref13.reason,\n _ref13$force = _ref13.force,\n force = _ref13$force === void 0 ? false : _ref13$force;\n\n if (!intentState.streamReader) {\n return;\n }\n\n if (!force) {\n if (intentState.renderTasks.size > 0) {\n return;\n }\n\n if (reason instanceof _display_utils.RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(function () {\n _this7._abortOperatorList({\n intentState: intentState,\n reason: reason,\n force: true\n });\n\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n\n intentState.streamReader.cancel(new _util.AbortException(reason.message))[\"catch\"](function () {});\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n var _iterator11 = _createForOfIteratorHelper(this._intentStates),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var _step11$value = _slicedToArray(_step11.value, 2),\n curCacheKey = _step11$value[0],\n curIntentState = _step11$value[1];\n\n if (curIntentState === intentState) {\n this._intentStates[\"delete\"](curCacheKey);\n\n break;\n }\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n this.cleanup();\n }\n }, {\n key: \"stats\",\n get: function get() {\n return this._stats;\n }\n }]);\n\n return PDFPageProxy;\n}();\n\nexports.PDFPageProxy = PDFPageProxy;\n\nvar LoopbackPort = /*#__PURE__*/function () {\n function LoopbackPort() {\n _classCallCheck(this, LoopbackPort);\n\n this._listeners = [];\n this._deferred = Promise.resolve();\n }\n\n _createClass(LoopbackPort, [{\n key: \"postMessage\",\n value: function postMessage(obj, transfers) {\n var _this8 = this;\n\n function cloneValue(object) {\n if (globalThis.structuredClone) {\n return globalThis.structuredClone(object, transfers);\n }\n\n function fallbackCloneValue(value) {\n if (typeof value === \"function\" || _typeof(value) === \"symbol\" || value instanceof URL) {\n throw new Error(\"LoopbackPort.postMessage - cannot clone: \".concat(value === null || value === void 0 ? void 0 : value.toString()));\n }\n\n if (_typeof(value) !== \"object\" || value === null) {\n return value;\n }\n\n if (cloned.has(value)) {\n return cloned.get(value);\n }\n\n var buffer, result;\n\n if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {\n if (transfers !== null && transfers !== void 0 && transfers.includes(buffer)) {\n result = new value.constructor(buffer, value.byteOffset, value.byteLength);\n } else {\n result = new value.constructor(value);\n }\n\n cloned.set(value, result);\n return result;\n }\n\n if (value instanceof Map) {\n result = new Map();\n cloned.set(value, result);\n\n var _iterator12 = _createForOfIteratorHelper(value),\n _step12;\n\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var _step12$value = _slicedToArray(_step12.value, 2),\n key = _step12$value[0],\n val = _step12$value[1];\n\n result.set(key, fallbackCloneValue(val));\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n\n return result;\n }\n\n if (value instanceof Set) {\n result = new Set();\n cloned.set(value, result);\n\n var _iterator13 = _createForOfIteratorHelper(value),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var _val = _step13.value;\n result.add(fallbackCloneValue(_val));\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n\n return result;\n }\n\n result = Array.isArray(value) ? [] : Object.create(null);\n cloned.set(value, result);\n\n for (var i in value) {\n var _value$hasOwnProperty;\n\n var desc = void 0,\n p = value;\n\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n\n if (typeof desc.value === \"undefined\") {\n continue;\n }\n\n if (typeof desc.value === \"function\" && !((_value$hasOwnProperty = value.hasOwnProperty) !== null && _value$hasOwnProperty !== void 0 && _value$hasOwnProperty.call(value, i))) {\n continue;\n }\n\n result[i] = fallbackCloneValue(desc.value);\n }\n\n return result;\n }\n\n var cloned = new WeakMap();\n return fallbackCloneValue(object);\n }\n\n var event = {\n data: cloneValue(obj)\n };\n\n this._deferred.then(function () {\n var _iterator14 = _createForOfIteratorHelper(_this8._listeners),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var listener = _step14.value;\n listener.call(_this8, event);\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n });\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(name, listener) {\n var i = this._listeners.indexOf(listener);\n\n this._listeners.splice(i, 1);\n }\n }, {\n key: \"terminate\",\n value: function terminate() {\n this._listeners.length = 0;\n }\n }]);\n\n return LoopbackPort;\n}();\n\nexports.LoopbackPort = LoopbackPort;\nvar PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0\n};\n{\n if (_is_node.isNodeJS && typeof require === \"function\") {\n PDFWorkerUtil.isWorkerDisabled = true;\n PDFWorkerUtil.fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if ((typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === \"object\") {\n var _document, _document$currentScri;\n\n var pdfjsFilePath = (_document = document) === null || _document === void 0 ? void 0 : (_document$currentScri = _document.currentScript) === null || _document$currentScri === void 0 ? void 0 : _document$currentScri.src;\n\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n\n PDFWorkerUtil.createCDNWrapper = function (url) {\n var wrapper = \"importScripts(\\\"\".concat(url, \"\\\");\");\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\n\nvar PDFWorker = /*#__PURE__*/function () {\n function PDFWorker() {\n var _ref14 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref14$name = _ref14.name,\n name = _ref14$name === void 0 ? null : _ref14$name,\n _ref14$port = _ref14.port,\n port = _ref14$port === void 0 ? null : _ref14$port,\n _ref14$verbosity = _ref14.verbosity,\n verbosity = _ref14$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref14$verbosity;\n\n _classCallCheck(this, PDFWorker);\n\n if (port && PDFWorker._workerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n this._readyCapability = (0, _util.createPromiseCapability)();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n PDFWorker._workerPorts.set(port, this);\n\n this._initializeFromPort(port);\n\n return;\n }\n\n this._initialize();\n }\n\n _createClass(PDFWorker, [{\n key: \"promise\",\n get: function get() {\n return this._readyCapability.promise;\n }\n }, {\n key: \"port\",\n get: function get() {\n return this._port;\n }\n }, {\n key: \"messageHandler\",\n get: function get() {\n return this._messageHandler;\n }\n }, {\n key: \"_initializeFromPort\",\n value: function _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n\n this._messageHandler.on(\"ready\", function () {});\n\n this._readyCapability.resolve();\n }\n }, {\n key: \"_initialize\",\n value: function _initialize() {\n var _this9 = this;\n\n if (typeof Worker !== \"undefined\" && !PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) {\n var workerSrc = PDFWorker.workerSrc;\n\n try {\n if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n\n var worker = new Worker(workerSrc);\n var messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n\n var terminateEarly = function terminateEarly() {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n\n if (_this9.destroyed) {\n _this9._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n _this9._setupFakeWorker();\n }\n };\n\n var onWorkerError = function onWorkerError() {\n if (!_this9._webWorker) {\n terminateEarly();\n }\n };\n\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", function (data) {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (_this9.destroyed) {\n terminateEarly();\n return;\n }\n\n if (data) {\n _this9._messageHandler = messageHandler;\n _this9._port = worker;\n _this9._webWorker = worker;\n\n _this9._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: _this9.verbosity\n });\n } else {\n _this9._setupFakeWorker();\n\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", function (data) {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (_this9.destroyed) {\n terminateEarly();\n return;\n }\n\n try {\n sendTest();\n } catch (e) {\n _this9._setupFakeWorker();\n }\n });\n\n var sendTest = function sendTest() {\n var testObj = new Uint8Array([255]);\n\n try {\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n } catch (ex) {\n (0, _util.warn)(\"Cannot use postMessage transfers.\");\n testObj[0] = 0;\n messageHandler.send(\"test\", testObj);\n }\n };\n\n sendTest();\n return;\n } catch (e) {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n\n this._setupFakeWorker();\n }\n }, {\n key: \"_setupFakeWorker\",\n value: function _setupFakeWorker() {\n var _this10 = this;\n\n if (!PDFWorkerUtil.isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n\n PDFWorker._setupFakeWorkerGlobal.then(function (WorkerMessageHandler) {\n if (_this10.destroyed) {\n _this10._readyCapability.reject(new Error(\"Worker was destroyed\"));\n\n return;\n }\n\n var port = new LoopbackPort();\n _this10._port = port;\n var id = \"fake\".concat(PDFWorkerUtil.fakeWorkerId++);\n var workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n var messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n _this10._messageHandler = messageHandler;\n\n _this10._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: _this10.verbosity\n });\n })[\"catch\"](function (reason) {\n _this10._readyCapability.reject(new Error(\"Setting up fake worker failed: \\\"\".concat(reason.message, \"\\\".\")));\n });\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.destroyed = true;\n\n if (this._webWorker) {\n this._webWorker.terminate();\n\n this._webWorker = null;\n }\n\n PDFWorker._workerPorts[\"delete\"](this._port);\n\n this._port = null;\n\n if (this._messageHandler) {\n this._messageHandler.destroy();\n\n this._messageHandler = null;\n }\n }\n }], [{\n key: \"_workerPorts\",\n get: function get() {\n return (0, _util.shadow)(this, \"_workerPorts\", new WeakMap());\n }\n }, {\n key: \"fromPort\",\n value: function fromPort(params) {\n if (!(params !== null && params !== void 0 && params.port)) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n\n if (this._workerPorts.has(params.port)) {\n return this._workerPorts.get(params.port);\n }\n\n return new PDFWorker(params);\n }\n }, {\n key: \"workerSrc\",\n get: function get() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n\n if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n if (!_is_node.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n }, {\n key: \"_mainThreadWorkerMessageHandler\",\n get: function get() {\n try {\n var _globalThis$pdfjsWork;\n\n return ((_globalThis$pdfjsWork = globalThis.pdfjsWorker) === null || _globalThis$pdfjsWork === void 0 ? void 0 : _globalThis$pdfjsWork.WorkerMessageHandler) || null;\n } catch (ex) {\n return null;\n }\n }\n }, {\n key: \"_setupFakeWorkerGlobal\",\n get: function get() {\n var _this11 = this;\n\n var loader = /*#__PURE__*/function () {\n var _ref15 = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee4() {\n var mainWorkerMessageHandler, worker;\n return _regenerator[\"default\"].wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n mainWorkerMessageHandler = _this11._mainThreadWorkerMessageHandler;\n\n if (!mainWorkerMessageHandler) {\n _context4.next = 3;\n break;\n }\n\n return _context4.abrupt(\"return\", mainWorkerMessageHandler);\n\n case 3:\n if (!(_is_node.isNodeJS && typeof require === \"function\")) {\n _context4.next = 6;\n break;\n }\n\n worker = eval(\"require\")(_this11.workerSrc);\n return _context4.abrupt(\"return\", worker.WorkerMessageHandler);\n\n case 6:\n _context4.next = 8;\n return (0, _display_utils.loadScript)(_this11.workerSrc);\n\n case 8:\n return _context4.abrupt(\"return\", window.pdfjsWorker.WorkerMessageHandler);\n\n case 9:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n return function loader() {\n return _ref15.apply(this, arguments);\n };\n }();\n\n return (0, _util.shadow)(this, \"_setupFakeWorkerGlobal\", loader());\n }\n }]);\n\n return PDFWorker;\n}();\n\nexports.PDFWorker = PDFWorker;\n{\n PDFWorker.getWorkerSrc = function () {\n (0, _display_utils.deprecated)(\"`PDFWorker.getWorkerSrc()`, please use `PDFWorker.workerSrc` instead.\");\n return this.workerSrc;\n };\n}\n\nvar _docStats = /*#__PURE__*/new WeakMap();\n\nvar _pageCache = /*#__PURE__*/new WeakMap();\n\nvar _pagePromises = /*#__PURE__*/new WeakMap();\n\nvar _metadataPromise = /*#__PURE__*/new WeakMap();\n\nvar WorkerTransport = /*#__PURE__*/function () {\n function WorkerTransport(messageHandler, loadingTask, networkStream, params) {\n _classCallCheck(this, WorkerTransport);\n\n _classPrivateFieldInitSpec(this, _docStats, {\n writable: true,\n value: null\n });\n\n _classPrivateFieldInitSpec(this, _pageCache, {\n writable: true,\n value: new Map()\n });\n\n _classPrivateFieldInitSpec(this, _pagePromises, {\n writable: true,\n value: new Map()\n });\n\n _classPrivateFieldInitSpec(this, _metadataPromise, {\n writable: true,\n value: null\n });\n\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader({\n docId: loadingTask.docId,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement\n });\n this._params = params;\n\n if (!params.useWorkerFetch) {\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked\n });\n this.StandardFontDataFactory = new params.StandardFontDataFactory({\n baseUrl: params.standardFontDataUrl\n });\n }\n\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n this.setupMessageHandler();\n }\n\n _createClass(WorkerTransport, [{\n key: \"annotationStorage\",\n get: function get() {\n return (0, _util.shadow)(this, \"annotationStorage\", new _annotation_storage.AnnotationStorage());\n }\n }, {\n key: \"stats\",\n get: function get() {\n return _classPrivateFieldGet(this, _docStats);\n }\n }, {\n key: \"getRenderingIntent\",\n value: function getRenderingIntent(intent) {\n var annotationMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _util.AnnotationMode.ENABLE;\n var isOpList = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var renderingIntent = _util.RenderingIntentFlag.DISPLAY;\n var lastModified = \"\";\n\n switch (intent) {\n case \"any\":\n renderingIntent = _util.RenderingIntentFlag.ANY;\n break;\n\n case \"display\":\n break;\n\n case \"print\":\n renderingIntent = _util.RenderingIntentFlag.PRINT;\n break;\n\n default:\n (0, _util.warn)(\"getRenderingIntent - invalid intent: \".concat(intent));\n }\n\n switch (annotationMode) {\n case _util.AnnotationMode.DISABLE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n\n case _util.AnnotationMode.ENABLE:\n break;\n\n case _util.AnnotationMode.ENABLE_FORMS:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n\n case _util.AnnotationMode.ENABLE_STORAGE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE;\n lastModified = this.annotationStorage.lastModified;\n break;\n\n default:\n (0, _util.warn)(\"getRenderingIntent - invalid annotationMode: \".concat(annotationMode));\n }\n\n if (isOpList) {\n renderingIntent += _util.RenderingIntentFlag.OPLIST;\n }\n\n return {\n renderingIntent: renderingIntent,\n cacheKey: \"\".concat(renderingIntent, \"_\").concat(lastModified)\n };\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this12 = this;\n\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n\n this.destroyed = true;\n this.destroyCapability = (0, _util.createPromiseCapability)();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n }\n\n var waitOn = [];\n\n var _iterator15 = _createForOfIteratorHelper(_classPrivateFieldGet(this, _pageCache).values()),\n _step15;\n\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var page = _step15.value;\n waitOn.push(page._destroy());\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n\n _classPrivateFieldGet(this, _pageCache).clear();\n\n _classPrivateFieldGet(this, _pagePromises).clear();\n\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n\n var terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(function () {\n _this12.commonObjs.clear();\n\n _this12.fontLoader.clear();\n\n _classPrivateFieldSet(_this12, _metadataPromise, null);\n\n _this12._getFieldObjectsPromise = null;\n _this12._hasJSActionsPromise = null;\n\n if (_this12._networkStream) {\n _this12._networkStream.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n }\n\n if (_this12.messageHandler) {\n _this12.messageHandler.destroy();\n\n _this12.messageHandler = null;\n }\n\n _this12.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n }, {\n key: \"setupMessageHandler\",\n value: function setupMessageHandler() {\n var _this13 = this;\n\n var messageHandler = this.messageHandler,\n loadingTask = this.loadingTask;\n messageHandler.on(\"GetReader\", function (data, sink) {\n (0, _util.assert)(_this13._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n _this13._fullReader = _this13._networkStream.getFullReader();\n\n _this13._fullReader.onProgress = function (evt) {\n _this13._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n\n sink.onPull = function () {\n _this13._fullReader.read().then(function (_ref16) {\n var value = _ref16.value,\n done = _ref16.done;\n\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n })[\"catch\"](function (reason) {\n sink.error(reason);\n });\n };\n\n sink.onCancel = function (reason) {\n _this13._fullReader.cancel(reason);\n\n sink.ready[\"catch\"](function (readyReason) {\n if (_this13.destroyed) {\n return;\n }\n\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", function (data) {\n var headersCapability = (0, _util.createPromiseCapability)();\n var fullReader = _this13._fullReader;\n fullReader.headersReady.then(function () {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (_this13._lastProgress) {\n var _loadingTask$onProgre;\n\n (_loadingTask$onProgre = loadingTask.onProgress) === null || _loadingTask$onProgre === void 0 ? void 0 : _loadingTask$onProgre.call(loadingTask, _this13._lastProgress);\n }\n\n fullReader.onProgress = function (evt) {\n var _loadingTask$onProgre2;\n\n (_loadingTask$onProgre2 = loadingTask.onProgress) === null || _loadingTask$onProgre2 === void 0 ? void 0 : _loadingTask$onProgre2.call(loadingTask, {\n loaded: evt.loaded,\n total: evt.total\n });\n };\n }\n\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", function (data, sink) {\n (0, _util.assert)(_this13._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n\n var rangeReader = _this13._networkStream.getRangeReader(data.begin, data.end);\n\n if (!rangeReader) {\n sink.close();\n return;\n }\n\n sink.onPull = function () {\n rangeReader.read().then(function (_ref17) {\n var value = _ref17.value,\n done = _ref17.done;\n\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n })[\"catch\"](function (reason) {\n sink.error(reason);\n });\n };\n\n sink.onCancel = function (reason) {\n rangeReader.cancel(reason);\n sink.ready[\"catch\"](function (readyReason) {\n if (_this13.destroyed) {\n return;\n }\n\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", function (_ref18) {\n var pdfInfo = _ref18.pdfInfo;\n _this13._numPages = pdfInfo.numPages;\n _this13._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\n\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, _this13));\n });\n messageHandler.on(\"DocException\", function (ex) {\n var reason;\n\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n\n default:\n (0, _util.unreachable)(\"DocException - expected a valid Error.\");\n }\n\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", function (exception) {\n _this13._passwordCapability = (0, _util.createPromiseCapability)();\n\n if (loadingTask.onPassword) {\n var updatePassword = function updatePassword(password) {\n _this13._passwordCapability.resolve({\n password: password\n });\n };\n\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n _this13._passwordCapability.reject(ex);\n }\n } else {\n _this13._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n\n return _this13._passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", function (data) {\n var _loadingTask$onProgre3;\n\n (_loadingTask$onProgre3 = loadingTask.onProgress) === null || _loadingTask$onProgre3 === void 0 ? void 0 : _loadingTask$onProgre3.call(loadingTask, {\n loaded: data.length,\n total: data.length\n });\n\n _this13.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", function (data) {\n if (_this13.destroyed) {\n return;\n }\n\n var page = _classPrivateFieldGet(_this13, _pageCache).get(data.pageIndex);\n\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n messageHandler.on(\"commonobj\", function (_ref19) {\n var _globalThis$FontInspe;\n\n var _ref20 = _slicedToArray(_ref19, 3),\n id = _ref20[0],\n type = _ref20[1],\n exportedData = _ref20[2];\n\n if (_this13.destroyed) {\n return;\n }\n\n if (_this13.commonObjs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Font\":\n var params = _this13._params;\n\n if (\"error\" in exportedData) {\n var exportedError = exportedData.error;\n (0, _util.warn)(\"Error during font loading: \".concat(exportedError));\n\n _this13.commonObjs.resolve(id, exportedError);\n\n break;\n }\n\n var fontRegistry = null;\n\n if (params.pdfBug && (_globalThis$FontInspe = globalThis.FontInspector) !== null && _globalThis$FontInspe !== void 0 && _globalThis$FontInspe.enabled) {\n fontRegistry = {\n registerFont: function registerFont(font, url) {\n globalThis.FontInspector.fontAdded(font, url);\n }\n };\n }\n\n var font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: _this13._onUnsupportedFeature.bind(_this13),\n fontRegistry: fontRegistry\n });\n\n _this13.fontLoader.bind(font)[\"catch\"](function (reason) {\n return messageHandler.sendWithPromise(\"FontFallback\", {\n id: id\n });\n })[\"finally\"](function () {\n if (!params.fontExtraProperties && font.data) {\n font.data = null;\n }\n\n _this13.commonObjs.resolve(id, font);\n });\n\n break;\n\n case \"FontPath\":\n case \"Image\":\n _this13.commonObjs.resolve(id, exportedData);\n\n break;\n\n default:\n throw new Error(\"Got unknown common object type \".concat(type));\n }\n });\n messageHandler.on(\"obj\", function (_ref21) {\n var _imageData$data;\n\n var _ref22 = _slicedToArray(_ref21, 4),\n id = _ref22[0],\n pageIndex = _ref22[1],\n type = _ref22[2],\n imageData = _ref22[3];\n\n if (_this13.destroyed) {\n return;\n }\n\n var pageProxy = _classPrivateFieldGet(_this13, _pageCache).get(pageIndex);\n\n if (pageProxy.objs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n var MAX_IMAGE_SIZE_TO_STORE = 8000000;\n\n if ((imageData === null || imageData === void 0 ? void 0 : (_imageData$data = imageData.data) === null || _imageData$data === void 0 ? void 0 : _imageData$data.length) > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n\n break;\n\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n\n default:\n throw new Error(\"Got unknown object type \".concat(type));\n }\n });\n messageHandler.on(\"DocProgress\", function (data) {\n var _loadingTask$onProgre4;\n\n if (_this13.destroyed) {\n return;\n }\n\n (_loadingTask$onProgre4 = loadingTask.onProgress) === null || _loadingTask$onProgre4 === void 0 ? void 0 : _loadingTask$onProgre4.call(loadingTask, {\n loaded: data.loaded,\n total: data.total\n });\n });\n messageHandler.on(\"DocStats\", function (data) {\n if (_this13.destroyed) {\n return;\n }\n\n _classPrivateFieldSet(_this13, _docStats, Object.freeze({\n streamTypes: Object.freeze(data.streamTypes),\n fontTypes: Object.freeze(data.fontTypes)\n }));\n });\n messageHandler.on(\"UnsupportedFeature\", this._onUnsupportedFeature.bind(this));\n messageHandler.on(\"FetchBuiltInCMap\", function (data) {\n if (_this13.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n\n if (!_this13.CMapReaderFactory) {\n return Promise.reject(new Error(\"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n\n return _this13.CMapReaderFactory.fetch(data);\n });\n messageHandler.on(\"FetchStandardFontData\", function (data) {\n if (_this13.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n\n if (!_this13.StandardFontDataFactory) {\n return Promise.reject(new Error(\"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n\n return _this13.StandardFontDataFactory.fetch(data);\n });\n }\n }, {\n key: \"_onUnsupportedFeature\",\n value: function _onUnsupportedFeature(_ref23) {\n var _this$loadingTask$onU, _this$loadingTask;\n\n var featureId = _ref23.featureId;\n\n if (this.destroyed) {\n return;\n }\n\n (_this$loadingTask$onU = (_this$loadingTask = this.loadingTask).onUnsupportedFeature) === null || _this$loadingTask$onU === void 0 ? void 0 : _this$loadingTask$onU.call(_this$loadingTask, featureId);\n }\n }, {\n key: \"getData\",\n value: function getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n }, {\n key: \"getPage\",\n value: function getPage(pageNumber) {\n var _this14 = this;\n\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request\"));\n }\n\n var pageIndex = pageNumber - 1,\n cachedPromise = _classPrivateFieldGet(this, _pagePromises).get(pageIndex);\n\n if (cachedPromise) {\n return cachedPromise;\n }\n\n var promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex: pageIndex\n }).then(function (pageInfo) {\n if (_this14.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n\n var page = new PDFPageProxy(pageIndex, pageInfo, _this14, _this14._params.ownerDocument, _this14._params.pdfBug);\n\n _classPrivateFieldGet(_this14, _pageCache).set(pageIndex, page);\n\n return page;\n });\n\n _classPrivateFieldGet(this, _pagePromises).set(pageIndex, promise);\n\n return promise;\n }\n }, {\n key: \"getPageIndex\",\n value: function getPageIndex(ref) {\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n ref: ref\n });\n }\n }, {\n key: \"getAnnotations\",\n value: function getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex: pageIndex,\n intent: intent\n });\n }\n }, {\n key: \"saveDocument\",\n value: function saveDocument() {\n var _this$_fullReader$fil,\n _this$_fullReader,\n _this15 = this;\n\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n isPureXfa: !!this._htmlForXfa,\n numPages: this._numPages,\n annotationStorage: this.annotationStorage.serializable,\n filename: (_this$_fullReader$fil = (_this$_fullReader = this._fullReader) === null || _this$_fullReader === void 0 ? void 0 : _this$_fullReader.filename) !== null && _this$_fullReader$fil !== void 0 ? _this$_fullReader$fil : null\n })[\"finally\"](function () {\n _this15.annotationStorage.resetModified();\n });\n }\n }, {\n key: \"getFieldObjects\",\n value: function getFieldObjects() {\n return this._getFieldObjectsPromise || (this._getFieldObjectsPromise = this.messageHandler.sendWithPromise(\"GetFieldObjects\", null));\n }\n }, {\n key: \"hasJSActions\",\n value: function hasJSActions() {\n return this._hasJSActionsPromise || (this._hasJSActionsPromise = this.messageHandler.sendWithPromise(\"HasJSActions\", null));\n }\n }, {\n key: \"getCalculationOrderIds\",\n value: function getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n }, {\n key: \"getDestinations\",\n value: function getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n }, {\n key: \"getDestination\",\n value: function getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id: id\n });\n }\n }, {\n key: \"getPageLabels\",\n value: function getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n }, {\n key: \"getPageLayout\",\n value: function getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n }, {\n key: \"getPageMode\",\n value: function getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n }, {\n key: \"getViewerPreferences\",\n value: function getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n }, {\n key: \"getOpenAction\",\n value: function getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n }, {\n key: \"getAttachments\",\n value: function getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n }, {\n key: \"getJavaScript\",\n value: function getJavaScript() {\n return this.messageHandler.sendWithPromise(\"GetJavaScript\", null);\n }\n }, {\n key: \"getDocJSActions\",\n value: function getDocJSActions() {\n return this.messageHandler.sendWithPromise(\"GetDocJSActions\", null);\n }\n }, {\n key: \"getPageJSActions\",\n value: function getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex: pageIndex\n });\n }\n }, {\n key: \"getStructTree\",\n value: function getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex: pageIndex\n });\n }\n }, {\n key: \"getOutline\",\n value: function getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n }, {\n key: \"getOptionalContentConfig\",\n value: function getOptionalContentConfig() {\n return this.messageHandler.sendWithPromise(\"GetOptionalContentConfig\", null).then(function (results) {\n return new _optional_content_config.OptionalContentConfig(results);\n });\n }\n }, {\n key: \"getPermissions\",\n value: function getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n }, {\n key: \"getMetadata\",\n value: function getMetadata() {\n var _this16 = this;\n\n return _classPrivateFieldGet(this, _metadataPromise) || _classPrivateFieldSet(this, _metadataPromise, this.messageHandler.sendWithPromise(\"GetMetadata\", null).then(function (results) {\n var _this16$_fullReader$f, _this16$_fullReader, _this16$_fullReader$c, _this16$_fullReader2;\n\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: (_this16$_fullReader$f = (_this16$_fullReader = _this16._fullReader) === null || _this16$_fullReader === void 0 ? void 0 : _this16$_fullReader.filename) !== null && _this16$_fullReader$f !== void 0 ? _this16$_fullReader$f : null,\n contentLength: (_this16$_fullReader$c = (_this16$_fullReader2 = _this16._fullReader) === null || _this16$_fullReader2 === void 0 ? void 0 : _this16$_fullReader2.contentLength) !== null && _this16$_fullReader$c !== void 0 ? _this16$_fullReader$c : null\n };\n }));\n }\n }, {\n key: \"getMarkInfo\",\n value: function getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n }, {\n key: \"startCleanup\",\n value: function () {\n var _startCleanup = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee5() {\n var keepLoadedFonts,\n _iterator16,\n _step16,\n page,\n cleanupSuccessful,\n _args5 = arguments;\n\n return _regenerator[\"default\"].wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n keepLoadedFonts = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : false;\n _context5.next = 3;\n return this.messageHandler.sendWithPromise(\"Cleanup\", null);\n\n case 3:\n if (!this.destroyed) {\n _context5.next = 5;\n break;\n }\n\n return _context5.abrupt(\"return\");\n\n case 5:\n _iterator16 = _createForOfIteratorHelper(_classPrivateFieldGet(this, _pageCache).values());\n _context5.prev = 6;\n\n _iterator16.s();\n\n case 8:\n if ((_step16 = _iterator16.n()).done) {\n _context5.next = 15;\n break;\n }\n\n page = _step16.value;\n cleanupSuccessful = page.cleanup();\n\n if (cleanupSuccessful) {\n _context5.next = 13;\n break;\n }\n\n throw new Error(\"startCleanup: Page \".concat(page.pageNumber, \" is currently rendering.\"));\n\n case 13:\n _context5.next = 8;\n break;\n\n case 15:\n _context5.next = 20;\n break;\n\n case 17:\n _context5.prev = 17;\n _context5.t0 = _context5[\"catch\"](6);\n\n _iterator16.e(_context5.t0);\n\n case 20:\n _context5.prev = 20;\n\n _iterator16.f();\n\n return _context5.finish(20);\n\n case 23:\n this.commonObjs.clear();\n\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n\n _classPrivateFieldSet(this, _metadataPromise, null);\n\n this._getFieldObjectsPromise = null;\n this._hasJSActionsPromise = null;\n\n case 28:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this, [[6, 17, 20, 23]]);\n }));\n\n function startCleanup() {\n return _startCleanup.apply(this, arguments);\n }\n\n return startCleanup;\n }()\n }, {\n key: \"loadingParams\",\n get: function get() {\n var params = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch: params.disableAutoFetch,\n enableXfa: params.enableXfa\n });\n }\n }]);\n\n return WorkerTransport;\n}();\n\nvar PDFObjects = /*#__PURE__*/function () {\n function PDFObjects() {\n _classCallCheck(this, PDFObjects);\n\n this._objs = Object.create(null);\n }\n\n _createClass(PDFObjects, [{\n key: \"_ensureObj\",\n value: function _ensureObj(objId) {\n if (this._objs[objId]) {\n return this._objs[objId];\n }\n\n return this._objs[objId] = {\n capability: (0, _util.createPromiseCapability)(),\n data: null,\n resolved: false\n };\n }\n }, {\n key: \"get\",\n value: function get(objId) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (callback) {\n this._ensureObj(objId).capability.promise.then(callback);\n\n return null;\n }\n\n var obj = this._objs[objId];\n\n if (!obj || !obj.resolved) {\n throw new Error(\"Requesting object that isn't resolved yet \".concat(objId, \".\"));\n }\n\n return obj.data;\n }\n }, {\n key: \"has\",\n value: function has(objId) {\n var obj = this._objs[objId];\n return (obj === null || obj === void 0 ? void 0 : obj.resolved) || false;\n }\n }, {\n key: \"resolve\",\n value: function resolve(objId, data) {\n var obj = this._ensureObj(objId);\n\n obj.resolved = true;\n obj.data = data;\n obj.capability.resolve(data);\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this._objs = Object.create(null);\n }\n }]);\n\n return PDFObjects;\n}();\n\nvar RenderTask = /*#__PURE__*/function () {\n function RenderTask(internalRenderTask) {\n _classCallCheck(this, RenderTask);\n\n this._internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n\n _createClass(RenderTask, [{\n key: \"promise\",\n get: function get() {\n return this._internalRenderTask.capability.promise;\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n this._internalRenderTask.cancel();\n }\n }]);\n\n return RenderTask;\n}();\n\nexports.RenderTask = RenderTask;\n\nvar InternalRenderTask = /*#__PURE__*/function () {\n function InternalRenderTask(_ref24) {\n var callback = _ref24.callback,\n params = _ref24.params,\n objs = _ref24.objs,\n commonObjs = _ref24.commonObjs,\n annotationCanvasMap = _ref24.annotationCanvasMap,\n operatorList = _ref24.operatorList,\n pageIndex = _ref24.pageIndex,\n canvasFactory = _ref24.canvasFactory,\n _ref24$useRequestAnim = _ref24.useRequestAnimationFrame,\n useRequestAnimationFrame = _ref24$useRequestAnim === void 0 ? false : _ref24$useRequestAnim,\n _ref24$pdfBug = _ref24.pdfBug,\n pdfBug = _ref24$pdfBug === void 0 ? false : _ref24$pdfBug;\n\n _classCallCheck(this, InternalRenderTask);\n\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this._pdfBug = pdfBug;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = (0, _util.createPromiseCapability)();\n this.task = new RenderTask(this);\n this._cancelBound = this.cancel.bind(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n\n _createClass(InternalRenderTask, [{\n key: \"completed\",\n get: function get() {\n return this.capability.promise[\"catch\"](function () {});\n }\n }, {\n key: \"initializeGraphics\",\n value: function initializeGraphics(_ref25) {\n var _globalThis$StepperMa;\n\n var _ref25$transparency = _ref25.transparency,\n transparency = _ref25$transparency === void 0 ? false : _ref25$transparency,\n optionalContentConfig = _ref25.optionalContentConfig;\n\n if (this.cancelled) {\n return;\n }\n\n if (this._canvas) {\n if (InternalRenderTask.canvasInUse.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n\n InternalRenderTask.canvasInUse.add(this._canvas);\n }\n\n if (this._pdfBug && (_globalThis$StepperMa = globalThis.StepperManager) !== null && _globalThis$StepperMa !== void 0 && _globalThis$StepperMa.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n\n var _this$params = this.params,\n canvasContext = _this$params.canvasContext,\n viewport = _this$params.viewport,\n transform = _this$params.transform,\n imageLayer = _this$params.imageLayer,\n background = _this$params.background;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, imageLayer, optionalContentConfig, this.annotationCanvasMap);\n this.gfx.beginDrawing({\n transform: transform,\n viewport: viewport,\n transparency: transparency,\n background: background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n this.running = false;\n this.cancelled = true;\n\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n\n if (this._canvas) {\n InternalRenderTask.canvasInUse[\"delete\"](this._canvas);\n }\n\n this.callback(error || new _display_utils.RenderingCancelledException(\"Rendering cancelled, page \".concat(this._pageIndex + 1), \"canvas\"));\n }\n }, {\n key: \"operatorListChanged\",\n value: function operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n\n return;\n }\n\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n\n if (this.running) {\n return;\n }\n\n this._continue();\n }\n }, {\n key: \"_continue\",\n value: function _continue() {\n this.running = true;\n\n if (this.cancelled) {\n return;\n }\n\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n }, {\n key: \"_scheduleNext\",\n value: function _scheduleNext() {\n var _this17 = this;\n\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(function () {\n _this17._nextBound()[\"catch\"](_this17._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound)[\"catch\"](this._cancelBound);\n }\n }\n }, {\n key: \"_next\",\n value: function () {\n var _next2 = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee6() {\n return _regenerator[\"default\"].wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n if (!this.cancelled) {\n _context6.next = 2;\n break;\n }\n\n return _context6.abrupt(\"return\");\n\n case 2:\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n\n if (this._canvas) {\n InternalRenderTask.canvasInUse[\"delete\"](this._canvas);\n }\n\n this.callback();\n }\n }\n\n case 4:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function _next() {\n return _next2.apply(this, arguments);\n }\n\n return _next;\n }()\n }], [{\n key: \"canvasInUse\",\n get: function get() {\n return (0, _util.shadow)(this, \"canvasInUse\", new WeakSet());\n }\n }]);\n\n return InternalRenderTask;\n}();\n\nvar version = '2.12.313';\nexports.version = version;\nvar build = 'a2ae56f39';\nexports.build = build;\n\n/***/ }),\n/* 137 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FontLoader = exports.FontFaceObject = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(4);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar BaseFontLoader = /*#__PURE__*/function () {\n function BaseFontLoader(_ref) {\n var docId = _ref.docId,\n onUnsupportedFeature = _ref.onUnsupportedFeature,\n _ref$ownerDocument = _ref.ownerDocument,\n ownerDocument = _ref$ownerDocument === void 0 ? globalThis.document : _ref$ownerDocument,\n _ref$styleElement = _ref.styleElement,\n styleElement = _ref$styleElement === void 0 ? null : _ref$styleElement;\n\n _classCallCheck(this, BaseFontLoader);\n\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)(\"Cannot initialize BaseFontLoader.\");\n }\n\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this._document = ownerDocument;\n this.nativeFontFaces = [];\n this.styleElement = null;\n }\n\n _createClass(BaseFontLoader, [{\n key: \"addNativeFontFace\",\n value: function addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n\n this._document.fonts.add(nativeFontFace);\n }\n }, {\n key: \"insertRule\",\n value: function insertRule(rule) {\n var styleElement = this.styleElement;\n\n if (!styleElement) {\n styleElement = this.styleElement = this._document.createElement(\"style\");\n styleElement.id = \"PDFJS_FONT_STYLE_TAG_\".concat(this.docId);\n\n this._document.documentElement.getElementsByTagName(\"head\")[0].appendChild(styleElement);\n }\n\n var styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n }, {\n key: \"clear\",\n value: function clear() {\n var _iterator = _createForOfIteratorHelper(this.nativeFontFaces),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var nativeFontFace = _step.value;\n\n this._document.fonts[\"delete\"](nativeFontFace);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this.nativeFontFaces.length = 0;\n\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n }, {\n key: \"bind\",\n value: function () {\n var _bind = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee(font) {\n var _this = this;\n\n var nativeFontFace, rule;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(font.attached || font.missingFile)) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 2:\n font.attached = true;\n\n if (!this.isFontLoadingAPISupported) {\n _context.next = 19;\n break;\n }\n\n nativeFontFace = font.createNativeFontFace();\n\n if (!nativeFontFace) {\n _context.next = 18;\n break;\n }\n\n this.addNativeFontFace(nativeFontFace);\n _context.prev = 7;\n _context.next = 10;\n return nativeFontFace.loaded;\n\n case 10:\n _context.next = 18;\n break;\n\n case 12:\n _context.prev = 12;\n _context.t0 = _context[\"catch\"](7);\n\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative\n });\n\n (0, _util.warn)(\"Failed to load font '\".concat(nativeFontFace.family, \"': '\").concat(_context.t0, \"'.\"));\n font.disableFontFace = true;\n throw _context.t0;\n\n case 18:\n return _context.abrupt(\"return\");\n\n case 19:\n rule = font.createFontFaceRule();\n\n if (!rule) {\n _context.next = 26;\n break;\n }\n\n this.insertRule(rule);\n\n if (!this.isSyncFontLoadingSupported) {\n _context.next = 24;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 24:\n _context.next = 26;\n return new Promise(function (resolve) {\n var request = _this._queueLoadingCallback(resolve);\n\n _this._prepareFontLoadEvent([rule], [font], request);\n });\n\n case 26:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[7, 12]]);\n }));\n\n function bind(_x) {\n return _bind.apply(this, arguments);\n }\n\n return bind;\n }()\n }, {\n key: \"_queueLoadingCallback\",\n value: function _queueLoadingCallback(callback) {\n (0, _util.unreachable)(\"Abstract method `_queueLoadingCallback`.\");\n }\n }, {\n key: \"isFontLoadingAPISupported\",\n get: function get() {\n var _this$_document;\n\n var hasFonts = !!((_this$_document = this._document) !== null && _this$_document !== void 0 && _this$_document.fonts);\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n }, {\n key: \"isSyncFontLoadingSupported\",\n get: function get() {\n (0, _util.unreachable)(\"Abstract method `isSyncFontLoadingSupported`.\");\n }\n }, {\n key: \"_loadTestFont\",\n get: function get() {\n (0, _util.unreachable)(\"Abstract method `_loadTestFont`.\");\n }\n }, {\n key: \"_prepareFontLoadEvent\",\n value: function _prepareFontLoadEvent(rules, fontsToLoad, request) {\n (0, _util.unreachable)(\"Abstract method `_prepareFontLoadEvent`.\");\n }\n }]);\n\n return BaseFontLoader;\n}();\n\nvar FontLoader;\nexports.FontLoader = FontLoader;\n{\n exports.FontLoader = FontLoader = /*#__PURE__*/function (_BaseFontLoader) {\n _inherits(GenericFontLoader, _BaseFontLoader);\n\n var _super = _createSuper(GenericFontLoader);\n\n function GenericFontLoader(params) {\n var _this2;\n\n _classCallCheck(this, GenericFontLoader);\n\n _this2 = _super.call(this, params);\n _this2.loadingContext = {\n requests: [],\n nextRequestId: 0\n };\n _this2.loadTestFontId = 0;\n return _this2;\n }\n\n _createClass(GenericFontLoader, [{\n key: \"isSyncFontLoadingSupported\",\n get: function get() {\n var supported = false;\n\n if (typeof navigator === \"undefined\") {\n supported = true;\n } else {\n var m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n\n if ((m === null || m === void 0 ? void 0 : m[1]) >= 14) {\n supported = true;\n }\n }\n\n return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n }\n }, {\n key: \"_queueLoadingCallback\",\n value: function _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n\n while (context.requests.length > 0 && context.requests[0].done) {\n var otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n\n var context = this.loadingContext;\n var request = {\n id: \"pdfjs-font-loading-\".concat(context.nextRequestId++),\n done: false,\n complete: completeRequest,\n callback: callback\n };\n context.requests.push(request);\n return request;\n }\n }, {\n key: \"_loadTestFont\",\n get: function get() {\n var getLoadTestFont = function getLoadTestFont() {\n return atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n };\n\n return (0, _util.shadow)(this, \"_loadTestFont\", getLoadTestFont());\n }\n }, {\n key: \"_prepareFontLoadEvent\",\n value: function _prepareFontLoadEvent(rules, fonts, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n\n function spliceString(s, offset, remove, insert) {\n var chunk1 = s.substring(0, offset);\n var chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n\n var i, ii;\n\n var canvas = this._document.createElement(\"canvas\");\n\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext(\"2d\");\n var called = 0;\n\n function isFontReady(name, callback) {\n called++;\n\n if (called > 30) {\n (0, _util.warn)(\"Load test font never loaded.\");\n callback();\n return;\n }\n\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n var imageData = ctx.getImageData(0, 0, 1, 1);\n\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n var loadTestFontId = \"lt\".concat(Date.now()).concat(this.loadTestFontId++);\n var data = this._loadTestFont;\n var COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n var CFF_CHECKSUM_OFFSET = 16;\n var XXXX_VALUE = 0x58585858;\n var checksum = int32(data, CFF_CHECKSUM_OFFSET);\n\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n var url = \"url(data:font/opentype;base64,\".concat(btoa(data), \");\");\n var rule = \"@font-face {font-family:\\\"\".concat(loadTestFontId, \"\\\";src:\").concat(url, \"}\");\n this.insertRule(rule);\n var names = [];\n\n var _iterator2 = _createForOfIteratorHelper(fonts),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var font = _step2.value;\n names.push(font.loadedName);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n names.push(loadTestFontId);\n\n var div = this._document.createElement(\"div\");\n\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n\n for (var _i = 0, _names = names; _i < _names.length; _i++) {\n var name = _names[_i];\n\n var span = this._document.createElement(\"span\");\n\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.appendChild(span);\n }\n\n this._document.body.appendChild(div);\n\n isFontReady(loadTestFontId, function () {\n div.remove();\n request.complete();\n });\n }\n }]);\n\n return GenericFontLoader;\n }(BaseFontLoader);\n}\n\nvar FontFaceObject = /*#__PURE__*/function () {\n function FontFaceObject(translatedData, _ref2) {\n var _ref2$isEvalSupported = _ref2.isEvalSupported,\n isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported,\n _ref2$disableFontFace = _ref2.disableFontFace,\n disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace,\n _ref2$ignoreErrors = _ref2.ignoreErrors,\n ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors,\n onUnsupportedFeature = _ref2.onUnsupportedFeature,\n _ref2$fontRegistry = _ref2.fontRegistry,\n fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry;\n\n _classCallCheck(this, FontFaceObject);\n\n this.compiledGlyphs = Object.create(null);\n\n for (var i in translatedData) {\n this[i] = translatedData[i];\n }\n\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n\n _createClass(FontFaceObject, [{\n key: \"createNativeFontFace\",\n value: function createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n var nativeFontFace;\n\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n var css = {\n weight: this.cssFontInfo.fontWeight\n };\n\n if (this.cssFontInfo.italicAngle) {\n css.style = \"oblique \".concat(this.cssFontInfo.italicAngle, \"deg\");\n }\n\n nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n }\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n\n return nativeFontFace;\n }\n }, {\n key: \"createFontFaceRule\",\n value: function createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n var data = (0, _util.bytesToString)(this.data);\n var url = \"url(data:\".concat(this.mimetype, \";base64,\").concat(btoa(data), \");\");\n var rule;\n\n if (!this.cssFontInfo) {\n rule = \"@font-face {font-family:\\\"\".concat(this.loadedName, \"\\\";src:\").concat(url, \"}\");\n } else {\n var css = \"font-weight: \".concat(this.cssFontInfo.fontWeight, \";\");\n\n if (this.cssFontInfo.italicAngle) {\n css += \"font-style: oblique \".concat(this.cssFontInfo.italicAngle, \"deg;\");\n }\n\n rule = \"@font-face {font-family:\\\"\".concat(this.cssFontInfo.fontFamily, \"\\\";\").concat(css, \"src:\").concat(url, \"}\");\n }\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\n }\n\n return rule;\n }\n }, {\n key: \"getPathGenerator\",\n value: function getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n\n var cmds;\n\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath\n });\n\n (0, _util.warn)(\"getPathGenerator - ignoring character: \\\"\".concat(ex, \"\\\".\"));\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n\n if (this.isEvalSupported && _util.IsEvalSupportedCached.value) {\n var jsBuf = [];\n\n var _iterator3 = _createForOfIteratorHelper(cmds),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var current = _step3.value;\n var args = current.args !== undefined ? current.args.join(\",\") : \"\";\n jsBuf.push(\"c.\", current.cmd, \"(\", args, \");\\n\");\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return this.compiledGlyphs[character] = new Function(\"c\", \"size\", jsBuf.join(\"\"));\n }\n\n return this.compiledGlyphs[character] = function (c, size) {\n var _iterator4 = _createForOfIteratorHelper(cmds),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _current = _step4.value;\n\n if (_current.cmd === \"scale\") {\n _current.args = [size, -size];\n }\n\n c[_current.cmd].apply(c, _current.args);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n };\n }\n }]);\n\n return FontFaceObject;\n}();\n\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 138 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NodeStandardFontDataFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0;\n\nvar _base_factory = __w_pdfjs_require__(135);\n\nvar _is_node = __w_pdfjs_require__(6);\n\nvar _util = __w_pdfjs_require__(4);\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar NodeCanvasFactory = function NodeCanvasFactory() {\n _classCallCheck(this, NodeCanvasFactory);\n\n (0, _util.unreachable)(\"Not implemented: NodeCanvasFactory\");\n};\n\nexports.NodeCanvasFactory = NodeCanvasFactory;\n\nvar NodeCMapReaderFactory = function NodeCMapReaderFactory() {\n _classCallCheck(this, NodeCMapReaderFactory);\n\n (0, _util.unreachable)(\"Not implemented: NodeCMapReaderFactory\");\n};\n\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\n\nvar NodeStandardFontDataFactory = function NodeStandardFontDataFactory() {\n _classCallCheck(this, NodeStandardFontDataFactory);\n\n (0, _util.unreachable)(\"Not implemented: NodeStandardFontDataFactory\");\n};\n\nexports.NodeStandardFontDataFactory = NodeStandardFontDataFactory;\n\nif (_is_node.isNodeJS) {\n var fetchData = function fetchData(url) {\n return new Promise(function (resolve, reject) {\n var fs = require(\"fs\");\n\n fs.readFile(url, function (error, data) {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n\n resolve(new Uint8Array(data));\n });\n });\n };\n\n exports.NodeCanvasFactory = NodeCanvasFactory = /*#__PURE__*/function (_BaseCanvasFactory) {\n _inherits(NodeCanvasFactory, _BaseCanvasFactory);\n\n var _super = _createSuper(NodeCanvasFactory);\n\n function NodeCanvasFactory() {\n _classCallCheck(this, NodeCanvasFactory);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(NodeCanvasFactory, [{\n key: \"_createCanvas\",\n value: function _createCanvas(width, height) {\n var Canvas = require(\"canvas\");\n\n return Canvas.createCanvas(width, height);\n }\n }]);\n\n return NodeCanvasFactory;\n }(_base_factory.BaseCanvasFactory);\n\n exports.NodeCMapReaderFactory = NodeCMapReaderFactory = /*#__PURE__*/function (_BaseCMapReaderFactor) {\n _inherits(NodeCMapReaderFactory, _BaseCMapReaderFactor);\n\n var _super2 = _createSuper(NodeCMapReaderFactory);\n\n function NodeCMapReaderFactory() {\n _classCallCheck(this, NodeCMapReaderFactory);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NodeCMapReaderFactory, [{\n key: \"_fetchData\",\n value: function _fetchData(url, compressionType) {\n return fetchData(url).then(function (data) {\n return {\n cMapData: data,\n compressionType: compressionType\n };\n });\n }\n }]);\n\n return NodeCMapReaderFactory;\n }(_base_factory.BaseCMapReaderFactory);\n\n exports.NodeStandardFontDataFactory = NodeStandardFontDataFactory = /*#__PURE__*/function (_BaseStandardFontData) {\n _inherits(NodeStandardFontDataFactory, _BaseStandardFontData);\n\n var _super3 = _createSuper(NodeStandardFontDataFactory);\n\n function NodeStandardFontDataFactory() {\n _classCallCheck(this, NodeStandardFontDataFactory);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(NodeStandardFontDataFactory, [{\n key: \"_fetchData\",\n value: function _fetchData(url) {\n return fetchData(url);\n }\n }]);\n\n return NodeStandardFontDataFactory;\n }(_base_factory.BaseStandardFontDataFactory);\n}\n\n/***/ }),\n/* 139 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationStorage = void 0;\n\nvar _util = __w_pdfjs_require__(4);\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar AnnotationStorage = /*#__PURE__*/function () {\n function AnnotationStorage() {\n _classCallCheck(this, AnnotationStorage);\n\n this._storage = new Map();\n this._timeStamp = Date.now();\n this._modified = false;\n this.onSetModified = null;\n this.onResetModified = null;\n }\n\n _createClass(AnnotationStorage, [{\n key: \"getValue\",\n value: function getValue(key, defaultValue) {\n var value = this._storage.get(key);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return Object.assign(defaultValue, value);\n }\n }, {\n key: \"setValue\",\n value: function setValue(key, value) {\n var obj = this._storage.get(key);\n\n var modified = false;\n\n if (obj !== undefined) {\n for (var _i = 0, _Object$entries = Object.entries(value); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n entry = _Object$entries$_i[0],\n val = _Object$entries$_i[1];\n\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n modified = true;\n\n this._storage.set(key, value);\n }\n\n if (modified) {\n this._timeStamp = Date.now();\n\n this._setModified();\n }\n }\n }, {\n key: \"getAll\",\n value: function getAll() {\n return this._storage.size > 0 ? (0, _util.objectFromMap)(this._storage) : null;\n }\n }, {\n key: \"size\",\n get: function get() {\n return this._storage.size;\n }\n }, {\n key: \"_setModified\",\n value: function _setModified() {\n if (!this._modified) {\n this._modified = true;\n\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n }, {\n key: \"resetModified\",\n value: function resetModified() {\n if (this._modified) {\n this._modified = false;\n\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n }, {\n key: \"serializable\",\n get: function get() {\n return this._storage.size > 0 ? this._storage : null;\n }\n }, {\n key: \"lastModified\",\n get: function get() {\n return this._timeStamp.toString();\n }\n }]);\n\n return AnnotationStorage;\n}();\n\nexports.AnnotationStorage = AnnotationStorage;\n\n/***/ }),\n/* 140 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.CanvasGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(4);\n\nvar _pattern_helper = __w_pdfjs_require__(141);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar MIN_FONT_SIZE = 16;\nvar MAX_FONT_SIZE = 100;\nvar MAX_GROUP_SIZE = 4096;\nvar EXECUTION_TIME = 15;\nvar EXECUTION_STEPS = 10;\nvar COMPILE_TYPE3_GLYPHS = true;\nvar MAX_SIZE_TO_COMPILE = 1000;\nvar FULL_CHUNK_HEIGHT = 16;\nvar LINEWIDTH_SCALE_FACTOR = 1.000001;\n\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\n }\n\n ctx.__originalSave = ctx.save;\n ctx.__originalRestore = ctx.restore;\n ctx.__originalRotate = ctx.rotate;\n ctx.__originalScale = ctx.scale;\n ctx.__originalTranslate = ctx.translate;\n ctx.__originalTransform = ctx.transform;\n ctx.__originalSetTransform = ctx.setTransform;\n ctx.__originalResetTransform = ctx.resetTransform;\n ctx.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n\n ctx._removeMirroring = function () {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n\n ctx.save = function ctxSave() {\n destCtx.save();\n\n this.__originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n\n this.__originalRestore();\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n\n this.__originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n\n this.__originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n\n this.__originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n\n this.__originalResetTransform();\n };\n\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n\n this.__originalRotate(angle);\n };\n\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n\n this.__originalClip(rule);\n };\n\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n\n this.__originalMoveTo(x, y);\n };\n\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n\n this.__originalLineTo(x, y);\n };\n\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n\n this.__originalRect(x, y, width, height);\n };\n\n ctx.closePath = function () {\n destCtx.closePath();\n\n this.__originalClosePath();\n };\n\n ctx.beginPath = function () {\n destCtx.beginPath();\n\n this.__originalBeginPath();\n };\n}\n\nfunction addContextCurrentTransform(ctx) {\n if (ctx.mozCurrentTransform) {\n return;\n }\n\n ctx._originalSave = ctx.save;\n ctx._originalRestore = ctx.restore;\n ctx._originalRotate = ctx.rotate;\n ctx._originalScale = ctx.scale;\n ctx._originalTranslate = ctx.translate;\n ctx._originalTransform = ctx.transform;\n ctx._originalSetTransform = ctx.setTransform;\n ctx._originalResetTransform = ctx.resetTransform;\n ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n\n try {\n var desc = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(ctx), \"lineWidth\");\n ctx._setLineWidth = desc.set;\n ctx._getLineWidth = desc.get;\n Object.defineProperty(ctx, \"lineWidth\", {\n set: function setLineWidth(width) {\n this._setLineWidth(width * LINEWIDTH_SCALE_FACTOR);\n },\n get: function getLineWidth() {\n return this._getLineWidth();\n }\n });\n } catch (_) {}\n\n Object.defineProperty(ctx, \"mozCurrentTransform\", {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n }\n });\n Object.defineProperty(ctx, \"mozCurrentTransformInverse\", {\n get: function getCurrentTransformInverse() {\n var _this$_transformMatri = _slicedToArray(this._transformMatrix, 6),\n a = _this$_transformMatri[0],\n b = _this$_transformMatri[1],\n c = _this$_transformMatri[2],\n d = _this$_transformMatri[3],\n e = _this$_transformMatri[4],\n f = _this$_transformMatri[5];\n\n var ad_bc = a * d - b * c;\n var bc_ad = b * c - a * d;\n return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc];\n }\n });\n\n ctx.save = function ctxSave() {\n var old = this._transformMatrix;\n\n this._transformStack.push(old);\n\n this._transformMatrix = old.slice(0, 6);\n\n this._originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n var prev = this._transformStack.pop();\n\n if (prev) {\n this._transformMatrix = prev;\n\n this._originalRestore();\n }\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n var m = this._transformMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n\n this._originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n var m = this._transformMatrix;\n m[0] *= x;\n m[1] *= x;\n m[2] *= y;\n m[3] *= y;\n\n this._originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]];\n\n ctx._originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n this._transformMatrix = [a, b, c, d, e, f];\n\n ctx._originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.resetTransform = function ctxResetTransform() {\n this._transformMatrix = [1, 0, 0, 1, 0, 0];\n\n ctx._originalResetTransform();\n };\n\n ctx.rotate = function ctxRotate(angle) {\n var cosValue = Math.cos(angle);\n var sinValue = Math.sin(angle);\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]];\n\n this._originalRotate(angle);\n };\n}\n\nvar CachedCanvases = /*#__PURE__*/function () {\n function CachedCanvases(canvasFactory) {\n _classCallCheck(this, CachedCanvases);\n\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n\n _createClass(CachedCanvases, [{\n key: \"getCanvas\",\n value: function getCanvas(id, width, height, trackTransform) {\n var canvasEntry;\n\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n\n return canvasEntry;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n for (var id in this.cache) {\n var canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n }]);\n\n return CachedCanvases;\n}();\n\nfunction compileType3Glyph(imgData) {\n var POINT_TO_PROCESS_LIMIT = 1000;\n var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n var width = imgData.width,\n height = imgData.height,\n width1 = width + 1;\n var i, ii, j, j0;\n var points = new Uint8Array(width1 * (height + 1));\n var lineSize = width + 7 & ~7,\n data0 = imgData.data;\n var data = new Uint8Array(lineSize * height);\n var pos = 0;\n\n for (i = 0, ii = data0.length; i < ii; i++) {\n var elem = data0[i];\n var mask = 128;\n\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n var count = 0;\n pos = 0;\n\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n\n var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n\n pos = lineSize * (height - 1);\n j0 = i * width1;\n\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n var outlines = [];\n\n for (i = 0; count && i <= height; i++) {\n var p = i * width1;\n var end = p + width;\n\n while (p < end && !points[p]) {\n p++;\n }\n\n if (p === end) {\n continue;\n }\n\n var coords = [p % width1, i];\n var p0 = p;\n var type = points[p];\n\n do {\n var step = steps[type];\n\n do {\n p += step;\n } while (!points[p]);\n\n var pp = points[p];\n\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n\n coords.push(p % width1, p / width1 | 0);\n\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n\n outlines.push(coords);\n --i;\n }\n\n var drawOutline = function drawOutline(c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.beginPath();\n\n for (var k = 0, kk = outlines.length; k < kk; k++) {\n var o = outlines[k];\n c.moveTo(o[0], o[1]);\n\n for (var l = 2, ll = o.length; l < ll; l += 2) {\n c.lineTo(o[l], o[l + 1]);\n }\n }\n\n c.fill();\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n}\n\nvar CanvasExtraState = /*#__PURE__*/function () {\n function CanvasExtraState(width, height) {\n _classCallCheck(this, CanvasExtraState);\n\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.transferMaps = null;\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n\n _createClass(CanvasExtraState, [{\n key: \"clone\",\n value: function clone() {\n var clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n }, {\n key: \"setCurrentPoint\",\n value: function setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n }, {\n key: \"updatePathMinMax\",\n value: function updatePathMinMax(transform, x, y) {\n var _Util$applyTransform = _util.Util.applyTransform([x, y], transform);\n\n var _Util$applyTransform2 = _slicedToArray(_Util$applyTransform, 2);\n\n x = _Util$applyTransform2[0];\n y = _Util$applyTransform2[1];\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n }, {\n key: \"updateCurvePathMinMax\",\n value: function updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3) {\n var box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n\n this.updatePathMinMax(transform, box[0], box[1]);\n this.updatePathMinMax(transform, box[2], box[3]);\n }\n }, {\n key: \"getPathBoundingBox\",\n value: function getPathBoundingBox() {\n var pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pattern_helper.PathType.FILL;\n var transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var box = [this.minX, this.minY, this.maxX, this.maxY];\n\n if (pathType === _pattern_helper.PathType.STROKE) {\n if (!transform) {\n (0, _util.unreachable)(\"Stroke bounding box must include transform.\");\n }\n\n var scale = _util.Util.singularValueDecompose2dScale(transform);\n\n var xStrokePad = scale[0] * this.lineWidth / 2;\n var yStrokePad = scale[1] * this.lineWidth / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n\n return box;\n }\n }, {\n key: \"updateClipFromPath\",\n value: function updateClipFromPath() {\n var intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox());\n\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n }, {\n key: \"startNewPathAndClipBox\",\n value: function startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n }, {\n key: \"getClippedPathBoundingBox\",\n value: function getClippedPathBoundingBox() {\n var pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pattern_helper.PathType.FILL;\n var transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n }\n }]);\n\n return CanvasExtraState;\n}();\n\nfunction putBinaryImageData(ctx, imgData) {\n var transferMaps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0,\n destPos;\n var src = imgData.data;\n var dest = chunkImgData.data;\n var i, j, thisChunkHeight, elemsInThisChunk;\n var transferMapRed, transferMapGreen, transferMapBlue, transferMapGray;\n\n if (transferMaps) {\n switch (transferMaps.length) {\n case 1:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[0];\n transferMapBlue = transferMaps[0];\n transferMapGray = transferMaps[0];\n break;\n\n case 4:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[1];\n transferMapBlue = transferMaps[2];\n transferMapGray = transferMaps[3];\n break;\n }\n }\n\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n var srcLength = src.byteLength;\n var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n var dest32DataLength = dest32.length;\n var fullSrcDiff = width + 7 >> 3;\n var white = 0xffffffff;\n var black = _util.IsLittleEndianCached.value ? 0xff000000 : 0x000000ff;\n\n if (transferMapGray) {\n if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) {\n var _ref = [black, white];\n white = _ref[0];\n black = _ref[1];\n }\n }\n\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n\n for (j = 0; j < thisChunkHeight; j++) {\n var srcDiff = srcLength - srcPos;\n var k = 0;\n var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n var kEndUnrolled = kEnd & ~7;\n var mask = 0;\n var srcByte = 0;\n\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n var hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n\n if (hasTransferMaps) {\n for (var _k = 0; _k < elemsInThisChunk; _k += 4) {\n if (transferMapRed) {\n dest[_k + 0] = transferMapRed[dest[_k + 0]];\n }\n\n if (transferMapGreen) {\n dest[_k + 1] = transferMapGreen[dest[_k + 1]];\n }\n\n if (transferMapBlue) {\n dest[_k + 2] = transferMapBlue[dest[_k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n\n if (hasTransferMaps) {\n for (var _k2 = 0; _k2 < elemsInThisChunk; _k2 += 4) {\n if (transferMapRed) {\n dest[_k2 + 0] = transferMapRed[dest[_k2 + 0]];\n }\n\n if (transferMapGreen) {\n dest[_k2 + 1] = transferMapGreen[dest[_k2 + 1]];\n }\n\n if (transferMapBlue) {\n dest[_k2 + 2] = transferMapBlue[dest[_k2 + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n var _hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n\n if (_hasTransferMaps) {\n for (var _k3 = 0; _k3 < destPos; _k3 += 4) {\n if (transferMapRed) {\n dest[_k3 + 0] = transferMapRed[dest[_k3 + 0]];\n }\n\n if (transferMapGreen) {\n dest[_k3 + 1] = transferMapGreen[dest[_k3 + 1]];\n }\n\n if (transferMapBlue) {\n dest[_k3 + 2] = transferMapBlue[dest[_k3 + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(\"bad image kind: \".concat(imgData.kind));\n }\n}\n\nfunction putBinaryImageMask(ctx, imgData) {\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0;\n var src = imgData.data;\n var dest = chunkImgData.data;\n\n for (var i = 0; i < totalChunks; i++) {\n var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n var destPos = 3;\n\n for (var j = 0; j < thisChunkHeight; j++) {\n var elem = void 0,\n mask = 0;\n\n for (var k = 0; k < width; k++) {\n if (!mask) {\n elem = src[srcPos++];\n mask = 128;\n }\n\n dest[destPos] = elem & mask ? 0 : 255;\n destPos += 4;\n mask >>= 1;\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\n\nfunction copyCtxState(sourceCtx, destCtx) {\n var properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\"];\n\n for (var i = 0, ii = properties.length; i < ii; i++) {\n var property = properties[i];\n\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n}\n\nfunction resetCtxToDefault(ctx) {\n ctx.strokeStyle = \"#000000\";\n ctx.fillStyle = \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n}\n\nfunction composeSMaskBackdrop(bytes, r0, g0, b0) {\n var length = bytes.length;\n\n for (var i = 3; i < length; i += 4) {\n var alpha = bytes[i];\n\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n var alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n}\n\nfunction composeSMaskAlpha(maskData, layerData, transferMap) {\n var length = maskData.length;\n var scale = 1 / 255;\n\n for (var i = 3; i < length; i += 4) {\n var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n}\n\nfunction composeSMaskLuminosity(maskData, layerData, transferMap) {\n var length = maskData.length;\n\n for (var i = 3; i < length; i += 4) {\n var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n}\n\nfunction genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n var hasBackdrop = !!backdrop;\n var r0 = hasBackdrop ? backdrop[0] : 0;\n var g0 = hasBackdrop ? backdrop[1] : 0;\n var b0 = hasBackdrop ? backdrop[2] : 0;\n var composeFn;\n\n if (subtype === \"Luminosity\") {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n var PIXELS_TO_PROCESS = 1048576;\n var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n\n for (var row = 0; row < height; row += chunkSize) {\n var chunkHeight = Math.min(chunkSize, height - row);\n var maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight);\n var layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight);\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n\n composeFn(maskData.data, layerData.data, transferMap);\n layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n }\n}\n\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n var layerOffsetX = layerBox[0];\n var layerOffsetY = layerBox[1];\n var layerWidth = layerBox[2] - layerOffsetX;\n var layerHeight = layerBox[3] - layerOffsetY;\n\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n\n genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n}\n\nfunction getImageSmoothingEnabled(transform, interpolate) {\n var scale = _util.Util.singularValueDecompose2dScale(transform);\n\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n var actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n\n if (interpolate !== undefined) {\n return interpolate;\n } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n return true;\n }\n\n return false;\n}\n\nvar LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nvar LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nvar NORMAL_CLIP = {};\nvar EO_CLIP = {};\n\nvar CanvasGraphics = /*#__PURE__*/function () {\n function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, imageLayer, optionalContentConfig, annotationCanvasMap) {\n _classCallCheck(this, CanvasGraphics);\n\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n\n if (canvasCtx) {\n addContextCurrentTransform(canvasCtx);\n }\n\n this._cachedGetSinglePixelWidth = null;\n }\n\n _createClass(CanvasGraphics, [{\n key: \"beginDrawing\",\n value: function beginDrawing(_ref2) {\n var transform = _ref2.transform,\n viewport = _ref2.viewport,\n _ref2$transparency = _ref2.transparency,\n transparency = _ref2$transparency === void 0 ? false : _ref2$transparency,\n _ref2$background = _ref2.background,\n background = _ref2$background === void 0 ? null : _ref2$background;\n var width = this.ctx.canvas.width;\n var height = this.ctx.canvas.height;\n this.ctx.save();\n this.ctx.fillStyle = background || \"rgb(255, 255, 255)\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n\n if (transparency) {\n var transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height, true);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.viewportScale = viewport.scale;\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n this._combinedScaleFactor = Math.hypot(this.baseTransform[0], this.baseTransform[2]);\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n }\n }, {\n key: \"executeOperatorList\",\n value: function executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var i = executionStartIdx || 0;\n var argsArrayLen = argsArray.length;\n\n if (argsArrayLen === i) {\n return i;\n }\n\n var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n var steps = 0;\n var commonObjs = this.commonObjs;\n var objs = this.objs;\n var fnId;\n\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n\n fnId = fnArray[i];\n\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n var _iterator = _createForOfIteratorHelper(argsArray[i]),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var depObjId = _step.value;\n var objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n i++;\n\n if (i === argsArrayLen) {\n return i;\n }\n\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n\n steps = 0;\n }\n }\n }\n }, {\n key: \"endDrawing\",\n value: function endDrawing() {\n while (this.stateStack.length || this.current.activeSMask !== null) {\n this.restore();\n }\n\n this.ctx.restore();\n\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n }\n }, {\n key: \"_scaleImage\",\n value: function _scaleImage(img, inverseTransform) {\n var width = img.width;\n var height = img.height;\n var widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n var heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n var paintWidth = width,\n paintHeight = height;\n var tmpCanvasId = \"prescale1\";\n var tmpCanvas, tmpCtx;\n\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n var newWidth = paintWidth,\n newHeight = paintHeight;\n\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n\n return {\n img: img,\n paintWidth: paintWidth,\n paintHeight: paintHeight\n };\n }\n }, {\n key: \"_createMaskCanvas\",\n value: function _createMaskCanvas(img) {\n var ctx = this.ctx;\n var width = img.width,\n height = img.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n putBinaryImageMask(maskCtx, img);\n var objToCanvas = ctx.mozCurrentTransform;\n\n var maskToCanvas = _util.Util.transform(objToCanvas, [1 / width, 0, 0, -1 / height, 0, 0]);\n\n maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n\n var cord1 = _util.Util.applyTransform([0, 0], maskToCanvas);\n\n var cord2 = _util.Util.applyTransform([width, height], maskToCanvas);\n\n var rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n\n var drawnWidth = Math.ceil(rect[2] - rect[0]);\n var drawnHeight = Math.ceil(rect[3] - rect[1]);\n var fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight, true);\n var fillCtx = fillCanvas.context;\n var offsetX = Math.min(cord1[0], cord2[0]);\n var offsetY = Math.min(cord1[1], cord2[1]);\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform.apply(fillCtx, maskToCanvas);\n\n var scaled = this._scaleImage(maskCanvas.canvas, fillCtx.mozCurrentTransformInverse);\n\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(fillCtx.mozCurrentTransform, img.interpolate);\n fillCtx.drawImage(scaled.img, 0, 0, scaled.img.width, scaled.img.height, 0, 0, width, height);\n fillCtx.globalCompositeOperation = \"source-in\";\n\n var inverse = _util.Util.transform(fillCtx.mozCurrentTransformInverse, [1, 0, 0, 1, -offsetX, -offsetY]);\n\n fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor;\n fillCtx.fillRect(0, 0, width, height);\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n }, {\n key: \"setLineWidth\",\n value: function setLineWidth(width) {\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n }, {\n key: \"setLineCap\",\n value: function setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n }, {\n key: \"setLineJoin\",\n value: function setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n }, {\n key: \"setMiterLimit\",\n value: function setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n }, {\n key: \"setDash\",\n value: function setDash(dashArray, dashPhase) {\n var ctx = this.ctx;\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n }, {\n key: \"setRenderingIntent\",\n value: function setRenderingIntent(intent) {}\n }, {\n key: \"setFlatness\",\n value: function setFlatness(flatness) {}\n }, {\n key: \"setGState\",\n value: function setGState(states) {\n for (var i = 0, ii = states.length; i < ii; i++) {\n var state = states[i];\n var key = state[0];\n var value = state[1];\n\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n\n case \"CA\":\n this.current.strokeAlpha = state[1];\n break;\n\n case \"ca\":\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n\n case \"SMask\":\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n\n case \"TR\":\n this.current.transferMaps = value;\n }\n }\n }\n }, {\n key: \"checkSMaskState\",\n value: function checkSMaskState() {\n var inSMaskMode = !!this.suspendedCtx;\n\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n }\n }, {\n key: \"beginSMaskMode\",\n value: function beginSMaskMode() {\n if (this.suspendedCtx) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n\n var drawnWidth = this.ctx.canvas.width;\n var drawnHeight = this.ctx.canvas.height;\n var cacheId = \"smaskGroupAt\" + this.groupLevel;\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n var ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.suspendedCtx.mozCurrentTransform);\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n }\n }, {\n key: \"endSMaskMode\",\n value: function endSMaskMode() {\n if (!this.suspendedCtx) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n\n this.ctx._removeMirroring();\n\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n this.current.activeSMask = null;\n this.suspendedCtx = null;\n }\n }, {\n key: \"compose\",\n value: function compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n\n var smask = this.current.activeSMask;\n var suspendedCtx = this.suspendedCtx;\n composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n }, {\n key: \"save\",\n value: function save() {\n this.ctx.save();\n var old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n }, {\n key: \"restore\",\n value: function restore() {\n if (this.stateStack.length === 0 && this.current.activeSMask) {\n this.endSMaskMode();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n this.ctx.restore();\n this.checkSMaskState();\n this.pendingClip = null;\n this._cachedGetSinglePixelWidth = null;\n }\n }\n }, {\n key: \"transform\",\n value: function transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedGetSinglePixelWidth = null;\n }\n }, {\n key: \"constructPath\",\n value: function constructPath(ops, args) {\n var ctx = this.ctx;\n var current = this.current;\n var x = current.x,\n y = current.y;\n var startX, startY;\n\n for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n var xw = x + width;\n var yh = y + height;\n ctx.moveTo(x, y);\n\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n\n current.updatePathMinMax(ctx.mozCurrentTransform, x, y);\n current.updatePathMinMax(ctx.mozCurrentTransform, xw, yh);\n ctx.closePath();\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n current.updatePathMinMax(ctx.mozCurrentTransform, x, y);\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n current.updatePathMinMax(ctx.mozCurrentTransform, x, y);\n break;\n\n case _util.OPS.curveTo:\n startX = x;\n startY = y;\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n current.updateCurvePathMinMax(ctx.mozCurrentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n current.updateCurvePathMinMax(ctx.mozCurrentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(ctx.mozCurrentTransform, startX, startY, args[j], args[j + 1], x, y, x, y);\n j += 4;\n break;\n\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n\n current.setCurrentPoint(x, y);\n }\n }, {\n key: \"closePath\",\n value: function closePath() {\n this.ctx.closePath();\n }\n }, {\n key: \"stroke\",\n value: function stroke(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n var ctx = this.ctx;\n var strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n\n if (this.contentVisible) {\n if (_typeof(strokeColor) === \"object\" && strokeColor !== null && strokeColor !== void 0 && strokeColor.getPattern) {\n var lineWidth = this.getSinglePixelWidth();\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.STROKE);\n ctx.lineWidth = Math.max(lineWidth, this.current.lineWidth);\n ctx.stroke();\n ctx.restore();\n } else {\n var _lineWidth = this.getSinglePixelWidth();\n\n if (_lineWidth < 0 && -_lineWidth >= this.current.lineWidth) {\n ctx.save();\n ctx.resetTransform();\n ctx.lineWidth = Math.round(this._combinedScaleFactor);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.lineWidth = Math.max(_lineWidth, this.current.lineWidth);\n ctx.stroke();\n }\n }\n }\n\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\n }\n\n ctx.globalAlpha = this.current.fillAlpha;\n }\n }, {\n key: \"closeStroke\",\n value: function closeStroke() {\n this.closePath();\n this.stroke();\n }\n }, {\n key: \"fill\",\n value: function fill(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var needRestore = false;\n\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.FILL);\n needRestore = true;\n }\n\n var intersect = this.current.getClippedPathBoundingBox();\n\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n\n if (needRestore) {\n ctx.restore();\n }\n\n if (consumePath) {\n this.consumePath(intersect);\n }\n }\n }, {\n key: \"eoFill\",\n value: function eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n }, {\n key: \"fillStroke\",\n value: function fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n }\n }, {\n key: \"eoFillStroke\",\n value: function eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n }, {\n key: \"closeFillStroke\",\n value: function closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n }, {\n key: \"closeEOFillStroke\",\n value: function closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n }, {\n key: \"endPath\",\n value: function endPath() {\n this.consumePath();\n }\n }, {\n key: \"clip\",\n value: function clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n }, {\n key: \"eoClip\",\n value: function eoClip() {\n this.pendingClip = EO_CLIP;\n }\n }, {\n key: \"beginText\",\n value: function beginText() {\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n }, {\n key: \"endText\",\n value: function endText() {\n var paths = this.pendingTextPaths;\n var ctx = this.ctx;\n\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n\n for (var i = 0; i < paths.length; i++) {\n var path = paths[i];\n ctx.setTransform.apply(ctx, path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n }, {\n key: \"setCharSpacing\",\n value: function setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n }, {\n key: \"setWordSpacing\",\n value: function setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n }, {\n key: \"setHScale\",\n value: function setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n }, {\n key: \"setLeading\",\n value: function setLeading(leading) {\n this.current.leading = -leading;\n }\n }, {\n key: \"setFont\",\n value: function setFont(fontRefName, size) {\n var fontObj = this.commonObjs.get(fontRefName);\n var current = this.current;\n\n if (!fontObj) {\n throw new Error(\"Can't find font for \".concat(fontRefName));\n }\n\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n }\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n this.current.font = fontObj;\n this.current.fontSize = size;\n\n if (fontObj.isType3Font) {\n return;\n }\n\n var name = fontObj.loadedName || \"sans-serif\";\n var bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n var italic = fontObj.italic ? \"italic\" : \"normal\";\n var typeface = \"\\\"\".concat(name, \"\\\", \").concat(fontObj.fallbackName);\n var browserFontSize = size;\n\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = \"\".concat(italic, \" \").concat(bold, \" \").concat(browserFontSize, \"px \").concat(typeface);\n }\n }, {\n key: \"setTextRenderingMode\",\n value: function setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n }, {\n key: \"setTextRise\",\n value: function setTextRise(rise) {\n this.current.textRise = rise;\n }\n }, {\n key: \"moveText\",\n value: function moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n }, {\n key: \"setLeadingMoveText\",\n value: function setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n }, {\n key: \"setTextMatrix\",\n value: function setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n }, {\n key: \"nextLine\",\n value: function nextLine() {\n this.moveText(0, this.current.leading);\n }\n }, {\n key: \"paintChar\",\n value: function paintChar(character, x, y, patternTransform, resetLineWidthToOne) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var textRenderingMode = current.textRenderingMode;\n var fontSize = current.fontSize / current.fontSizeScale;\n var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n var patternFill = current.patternFill && !font.missingFile;\n var addToPath;\n\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (resetLineWidthToOne) {\n ctx.resetTransform();\n ctx.lineWidth = Math.round(this._combinedScaleFactor);\n }\n\n ctx.stroke();\n }\n\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (resetLineWidthToOne) {\n ctx.save();\n ctx.moveTo(x, y);\n ctx.resetTransform();\n ctx.lineWidth = Math.round(this._combinedScaleFactor);\n ctx.strokeText(character, 0, 0);\n ctx.restore();\n } else {\n ctx.strokeText(character, x, y);\n }\n }\n }\n\n if (isAddToPathSet) {\n var paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: ctx.mozCurrentTransform,\n x: x,\n y: y,\n fontSize: fontSize,\n addToPath: addToPath\n });\n }\n }\n }, {\n key: \"isFontSubpixelAAEnabled\",\n get: function get() {\n var _this$cachedCanvases$ = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10),\n ctx = _this$cachedCanvases$.context;\n\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n var data = ctx.getImageData(0, 0, 10, 10).data;\n var enabled = false;\n\n for (var i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n\n return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n }, {\n key: \"showText\",\n value: function showText(glyphs) {\n var current = this.current;\n var font = current.font;\n\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n var fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return undefined;\n }\n\n var ctx = this.ctx;\n var fontSizeScale = current.fontSizeScale;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var fontDirection = current.fontDirection;\n var textHScale = current.textHScale * fontDirection;\n var glyphsLength = glyphs.length;\n var vertical = font.vertical;\n var spacingDir = vertical ? 1 : -1;\n var defaultVMetrics = font.defaultVMetrics;\n var widthAdvanceScale = fontSize * current.fontMatrix[0];\n var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n\n var patternTransform;\n\n if (current.patternFill) {\n ctx.save();\n var pattern = current.fillColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.FILL);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n\n var lineWidth = current.lineWidth;\n var resetLineWidthToOne = false;\n var scale = current.textMatrixScale;\n\n if (scale === 0 || lineWidth === 0) {\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n this._cachedGetSinglePixelWidth = null;\n lineWidth = this.getSinglePixelWidth();\n resetLineWidthToOne = lineWidth < 0;\n }\n } else {\n lineWidth /= scale;\n }\n\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n\n ctx.lineWidth = lineWidth;\n var x = 0,\n i;\n\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n var restoreNeeded = false;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var character = glyph.fontChar;\n var accent = glyph.accent;\n var scaledX = void 0,\n scaledY = void 0;\n var width = glyph.width;\n\n if (vertical) {\n var vmetric = glyph.vmetric || defaultVMetrics;\n var vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n var vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (font.remeasure && width > 0) {\n var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n var characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform, resetLineWidthToOne);\n\n if (accent) {\n var scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n var scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform, resetLineWidthToOne);\n }\n }\n }\n\n var charWidth = void 0;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n ctx.restore();\n this.compose();\n return undefined;\n }\n }, {\n key: \"showType3Text\",\n value: function showType3Text(glyphs) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n var fontDirection = current.fontDirection;\n var spacingDir = font.vertical ? 1 : -1;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var textHScale = current.textHScale * fontDirection;\n var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n var glyphsLength = glyphs.length;\n var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n var i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var operatorList = font.charProcOperatorList[glyph.operatorListId];\n\n if (!operatorList) {\n (0, _util.warn)(\"Type3 character \\\"\".concat(glyph.operatorListId, \"\\\" is not available.\"));\n continue;\n }\n\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n\n var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n\n ctx.restore();\n this.processingType3 = null;\n }\n }, {\n key: \"setCharWidth\",\n value: function setCharWidth(xWidth, yWidth) {}\n }, {\n key: \"setCharWidthAndBounds\",\n value: function setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.clip();\n this.endPath();\n }\n }, {\n key: \"getColorN_Pattern\",\n value: function getColorN_Pattern(IR) {\n var _this = this;\n\n var pattern;\n\n if (IR[0] === \"TilingPattern\") {\n var color = IR[1];\n var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();\n var canvasGraphicsFactory = {\n createCanvasGraphics: function createCanvasGraphics(ctx) {\n return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory);\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = this._getPattern(IR[1], IR[2]);\n }\n\n return pattern;\n }\n }, {\n key: \"setStrokeColorN\",\n value: function setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n }, {\n key: \"setFillColorN\",\n value: function setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n }, {\n key: \"setStrokeRGBColor\",\n value: function setStrokeRGBColor(r, g, b) {\n var color = _util.Util.makeHexColor(r, g, b);\n\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n }\n }, {\n key: \"setFillRGBColor\",\n value: function setFillRGBColor(r, g, b) {\n var color = _util.Util.makeHexColor(r, g, b);\n\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n }\n }, {\n key: \"_getPattern\",\n value: function _getPattern(objId) {\n var matrix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var pattern;\n\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = (0, _pattern_helper.getShadingPattern)(this.objs.get(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n\n if (matrix) {\n pattern.matrix = matrix;\n }\n\n return pattern;\n }\n }, {\n key: \"shadingFill\",\n value: function shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n\n var ctx = this.ctx;\n this.save();\n\n var pattern = this._getPattern(objId);\n\n ctx.fillStyle = pattern.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.SHADING);\n var inv = ctx.mozCurrentTransformInverse;\n\n if (inv) {\n var canvas = ctx.canvas;\n var width = canvas.width;\n var height = canvas.height;\n\n var bl = _util.Util.applyTransform([0, 0], inv);\n\n var br = _util.Util.applyTransform([0, height], inv);\n\n var ul = _util.Util.applyTransform([width, 0], inv);\n\n var ur = _util.Util.applyTransform([width, height], inv);\n\n var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore();\n }\n }, {\n key: \"beginInlineImage\",\n value: function beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n }\n }, {\n key: \"beginImageData\",\n value: function beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n }\n }, {\n key: \"paintFormXObjectBegin\",\n value: function paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n\n this.baseTransform = this.ctx.mozCurrentTransform;\n\n if (bbox) {\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.current.updatePathMinMax(this.ctx.mozCurrentTransform, bbox[0], bbox[1]);\n this.current.updatePathMinMax(this.ctx.mozCurrentTransform, bbox[2], bbox[3]);\n this.clip();\n this.endPath();\n }\n }\n }, {\n key: \"paintFormXObjectEnd\",\n value: function paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n }, {\n key: \"beginGroup\",\n value: function beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n var suspendedCtx = this.suspendedCtx;\n\n if (this.current.activeSMask) {\n this.suspendedCtx = null;\n this.current.activeSMask = null;\n }\n\n var currentCtx = this.ctx;\n\n if (!group.isolated) {\n (0, _util.info)(\"TODO: Support non-isolated groups.\");\n }\n\n if (group.knockout) {\n (0, _util.warn)(\"Knockout groups not supported.\");\n }\n\n var currentTransform = currentCtx.mozCurrentTransform;\n\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n\n var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);\n\n var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n var scaleX = 1,\n scaleY = 1;\n\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n\n this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n var cacheId = \"groupAt\" + this.groupLevel;\n\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX: offsetX,\n offsetY: offsetY,\n scaleX: scaleX,\n scaleY: scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n currentCtx.save();\n }\n\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push({\n ctx: currentCtx,\n suspendedCtx: suspendedCtx\n });\n this.groupLevel++;\n }\n }, {\n key: \"endGroup\",\n value: function endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.groupLevel--;\n var groupCtx = this.ctx;\n\n var _this$groupStack$pop = this.groupStack.pop(),\n ctx = _this$groupStack$pop.ctx,\n suspendedCtx = _this$groupStack$pop.suspendedCtx;\n\n this.ctx = ctx;\n this.ctx.imageSmoothingEnabled = false;\n\n if (suspendedCtx) {\n this.suspendedCtx = suspendedCtx;\n }\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n var currentMtx = this.ctx.mozCurrentTransform;\n this.restore();\n this.ctx.save();\n this.ctx.setTransform.apply(this.ctx, currentMtx);\n\n var dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx);\n\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n }, {\n key: \"beginAnnotations\",\n value: function beginAnnotations() {\n this.save();\n\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n }\n }, {\n key: \"endAnnotations\",\n value: function endAnnotations() {\n this.restore();\n }\n }, {\n key: \"beginAnnotation\",\n value: function beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n this.save();\n\n if (Array.isArray(rect) && rect.length === 4) {\n var width = rect[2] - rect[0];\n var height = rect[3] - rect[1];\n\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n\n var _Util$singularValueDe = _util.Util.singularValueDecompose2dScale(this.ctx.mozCurrentTransform),\n _Util$singularValueDe2 = _slicedToArray(_Util$singularValueDe, 2),\n scaleX = _Util$singularValueDe2[0],\n scaleY = _Util$singularValueDe2[1];\n\n var viewportScale = this.viewportScale;\n var canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n var canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n var _this$annotationCanva = this.annotationCanvas,\n canvas = _this$annotationCanva.canvas,\n context = _this$annotationCanva.context;\n canvas.style.width = \"calc(\".concat(width, \"px * var(--viewport-scale-factor))\");\n canvas.style.height = \"calc(\".concat(height, \"px * var(--viewport-scale-factor))\");\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n addContextCurrentTransform(this.ctx);\n resetCtxToDefault(this.ctx);\n } else {\n resetCtxToDefault(this.ctx);\n this.ctx.rect(rect[0], rect[1], width, height);\n this.clip();\n this.endPath();\n }\n }\n\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.transform.apply(this, transform);\n this.transform.apply(this, matrix);\n }\n }, {\n key: \"endAnnotation\",\n value: function endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n\n this.restore();\n }\n }, {\n key: \"paintImageMaskXObject\",\n value: function paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n\n var ctx = this.ctx;\n var width = img.width,\n height = img.height;\n var glyph = this.processingType3;\n\n if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {\n if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n glyph.compiled = compileType3Glyph({\n data: img.data,\n width: width,\n height: height\n });\n } else {\n glyph.compiled = null;\n }\n }\n\n if (glyph !== null && glyph !== void 0 && glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n\n var mask = this._createMaskCanvas(img);\n\n var maskCanvas = mask.canvas;\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n }, {\n key: \"paintImageMaskXObjectRepeat\",\n value: function paintImageMaskXObjectRepeat(imgData, scaleX) {\n var skewX = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var skewY = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var scaleY = arguments.length > 4 ? arguments[4] : undefined;\n var positions = arguments.length > 5 ? arguments[5] : undefined;\n\n if (!this.contentVisible) {\n return;\n }\n\n var ctx = this.ctx;\n ctx.save();\n var currentTransform = ctx.mozCurrentTransform;\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n\n var mask = this._createMaskCanvas(imgData);\n\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n var trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n\n var _Util$applyTransform3 = _util.Util.applyTransform([0, 0], trans),\n _Util$applyTransform4 = _slicedToArray(_Util$applyTransform3, 2),\n x = _Util$applyTransform4[0],\n y = _Util$applyTransform4[1];\n\n ctx.drawImage(mask.canvas, x, y);\n }\n\n ctx.restore();\n this.compose();\n }\n }, {\n key: \"paintImageMaskXObjectGroup\",\n value: function paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n\n for (var i = 0, ii = images.length; i < ii; i++) {\n var image = images[i];\n var width = image.width,\n height = image.height;\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, image);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.FILL) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform.apply(ctx, image.transform);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n\n this.compose();\n }\n }, {\n key: \"paintImageXObject\",\n value: function paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n\n var imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n }, {\n key: \"paintImageXObjectRepeat\",\n value: function paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n\n var imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n var width = imgData.width;\n var height = imgData.height;\n var map = [];\n\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n\n this.paintInlineImageXObjectGroup(imgData, map);\n }\n }, {\n key: \"paintInlineImageXObject\",\n value: function paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n\n var width = imgData.width;\n var height = imgData.height;\n var ctx = this.ctx;\n this.save();\n ctx.scale(1 / width, -1 / height);\n var imgToPaint;\n\n if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n var tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n imgToPaint = tmpCanvas.canvas;\n }\n\n var scaled = this._scaleImage(imgToPaint, ctx.mozCurrentTransformInverse);\n\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled(ctx.mozCurrentTransform, imgData.interpolate);\n ctx.drawImage(scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData: imgData,\n left: position[0],\n top: position[1],\n width: width / ctx.mozCurrentTransformInverse[0],\n height: height / ctx.mozCurrentTransformInverse[3]\n });\n }\n\n this.compose();\n this.restore();\n }\n }, {\n key: \"paintInlineImageXObjectGroup\",\n value: function paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n\n var ctx = this.ctx;\n var w = imgData.width;\n var h = imgData.height;\n var tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n\n for (var i = 0, ii = map.length; i < ii; i++) {\n var entry = map[i];\n ctx.save();\n ctx.transform.apply(ctx, entry.transform);\n ctx.scale(1, -1);\n ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData: imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h\n });\n }\n\n ctx.restore();\n }\n\n this.compose();\n }\n }, {\n key: \"paintSolidColorImageMask\",\n value: function paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n }, {\n key: \"markPoint\",\n value: function markPoint(tag) {}\n }, {\n key: \"markPointProps\",\n value: function markPointProps(tag, properties) {}\n }, {\n key: \"beginMarkedContent\",\n value: function beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n }\n }, {\n key: \"beginMarkedContentProps\",\n value: function beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n\n this.contentVisible = this.isContentVisible();\n }\n }, {\n key: \"endMarkedContent\",\n value: function endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n }, {\n key: \"beginCompat\",\n value: function beginCompat() {}\n }, {\n key: \"endCompat\",\n value: function endCompat() {}\n }, {\n key: \"consumePath\",\n value: function consumePath(clipBox) {\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n\n var ctx = this.ctx;\n\n if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n\n this.pendingClip = null;\n }\n\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n }, {\n key: \"getSinglePixelWidth\",\n value: function getSinglePixelWidth() {\n if (this._cachedGetSinglePixelWidth === null) {\n var m = this.ctx.mozCurrentTransform;\n var absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n var sqNorm1 = Math.pow(m[0], 2) + Math.pow(m[2], 2);\n var sqNorm2 = Math.pow(m[1], 2) + Math.pow(m[3], 2);\n var pixelHeight = Math.sqrt(Math.max(sqNorm1, sqNorm2)) / absDet;\n\n if (sqNorm1 !== sqNorm2 && this._combinedScaleFactor * pixelHeight > 1) {\n this._cachedGetSinglePixelWidth = -(this._combinedScaleFactor * pixelHeight);\n } else if (absDet > Number.EPSILON) {\n this._cachedGetSinglePixelWidth = pixelHeight;\n } else {\n this._cachedGetSinglePixelWidth = 1;\n }\n }\n\n return this._cachedGetSinglePixelWidth;\n }\n }, {\n key: \"getCanvasPosition\",\n value: function getCanvasPosition(x, y) {\n var transform = this.ctx.mozCurrentTransform;\n return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];\n }\n }, {\n key: \"isContentVisible\",\n value: function isContentVisible() {\n for (var i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n\n return true;\n }\n }]);\n\n return CanvasGraphics;\n}();\n\nexports.CanvasGraphics = CanvasGraphics;\n\nfor (var op in _util.OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\n/***/ }),\n/* 141 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TilingPattern = exports.PathType = void 0;\nexports.getShadingPattern = getShadingPattern;\n\nvar _util = __w_pdfjs_require__(4);\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\"\n};\nexports.PathType = PathType;\n\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox || typeof Path2D === \"undefined\") {\n return;\n }\n\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n var region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\n\nvar BaseShadingPattern = /*#__PURE__*/function () {\n function BaseShadingPattern() {\n _classCallCheck(this, BaseShadingPattern);\n\n if (this.constructor === BaseShadingPattern) {\n (0, _util.unreachable)(\"Cannot initialize BaseShadingPattern.\");\n }\n }\n\n _createClass(BaseShadingPattern, [{\n key: \"getPattern\",\n value: function getPattern() {\n (0, _util.unreachable)(\"Abstract method `getPattern` called.\");\n }\n }]);\n\n return BaseShadingPattern;\n}();\n\nvar RadialAxialShadingPattern = /*#__PURE__*/function (_BaseShadingPattern) {\n _inherits(RadialAxialShadingPattern, _BaseShadingPattern);\n\n var _super = _createSuper(RadialAxialShadingPattern);\n\n function RadialAxialShadingPattern(IR) {\n var _this;\n\n _classCallCheck(this, RadialAxialShadingPattern);\n\n _this = _super.call(this);\n _this._type = IR[1];\n _this._bbox = IR[2];\n _this._colorStops = IR[3];\n _this._p0 = IR[4];\n _this._p1 = IR[5];\n _this._r0 = IR[6];\n _this._r1 = IR[7];\n _this.matrix = null;\n return _this;\n }\n\n _createClass(RadialAxialShadingPattern, [{\n key: \"_createGradient\",\n value: function _createGradient(ctx) {\n var grad;\n\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n } else if (this._type === \"radial\") {\n grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);\n }\n\n var _iterator = _createForOfIteratorHelper(this._colorStops),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var colorStop = _step.value;\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return grad;\n }\n }, {\n key: \"getPattern\",\n value: function getPattern(ctx, owner, inverse, pathType) {\n var pattern;\n\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n var ownerBBox = owner.current.getClippedPathBoundingBox(pathType, ctx.mozCurrentTransform) || [0, 0, 0, 0];\n var width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n var height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n var tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", width, height, true);\n var tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n tmpCtx.transform.apply(tmpCtx, owner.baseTransform);\n\n if (this.matrix) {\n tmpCtx.transform.apply(tmpCtx, this.matrix);\n }\n\n applyBoundingBox(tmpCtx, this._bbox);\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n var domMatrix = new DOMMatrix(inverse);\n\n try {\n pattern.setTransform(domMatrix);\n } catch (ex) {\n (0, _util.warn)(\"RadialAxialShadingPattern.getPattern: \\\"\".concat(ex === null || ex === void 0 ? void 0 : ex.message, \"\\\".\"));\n }\n } else {\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n\n return pattern;\n }\n }]);\n\n return RadialAxialShadingPattern;\n}(BaseShadingPattern);\n\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n var coords = context.coords,\n colors = context.colors;\n var bytes = data.data,\n rowSize = data.width * 4;\n var tmp;\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n var x1 = (coords[p1] + context.offsetX) * context.scaleX;\n var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n var x2 = (coords[p2] + context.offsetX) * context.scaleX;\n var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n var x3 = (coords[p3] + context.offsetX) * context.scaleX;\n var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n\n if (y1 >= y3) {\n return;\n }\n\n var c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n var c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n var c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n var minY = Math.round(y1),\n maxY = Math.round(y3);\n var xa, car, cag, cab;\n var xb, cbr, cbg, cbb;\n\n for (var y = minY; y <= maxY; y++) {\n if (y < y2) {\n var _k = void 0;\n\n if (y < y1) {\n _k = 0;\n } else {\n _k = (y1 - y) / (y1 - y2);\n }\n\n xa = x1 - (x1 - x2) * _k;\n car = c1r - (c1r - c2r) * _k;\n cag = c1g - (c1g - c2g) * _k;\n cab = c1b - (c1b - c2b) * _k;\n } else {\n var _k2 = void 0;\n\n if (y > y3) {\n _k2 = 1;\n } else if (y2 === y3) {\n _k2 = 0;\n } else {\n _k2 = (y2 - y) / (y2 - y3);\n }\n\n xa = x2 - (x2 - x3) * _k2;\n car = c2r - (c2r - c3r) * _k2;\n cag = c2g - (c2g - c3g) * _k2;\n cab = c2b - (c2b - c3b) * _k2;\n }\n\n var k = void 0;\n\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n var x1_ = Math.round(Math.min(xa, xb));\n var x2_ = Math.round(Math.max(xa, xb));\n var j = rowSize * y + x1_ * 4;\n\n for (var x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n}\n\nfunction drawFigure(data, figure, context) {\n var ps = figure.coords;\n var cs = figure.colors;\n var i, ii;\n\n switch (figure.type) {\n case \"lattice\":\n var verticesPerRow = figure.verticesPerRow;\n var rows = Math.floor(ps.length / verticesPerRow) - 1;\n var cols = verticesPerRow - 1;\n\n for (i = 0; i < rows; i++) {\n var q = i * verticesPerRow;\n\n for (var j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n\n break;\n\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n\n break;\n\n default:\n throw new Error(\"illegal figure\");\n }\n}\n\nvar MeshShadingPattern = /*#__PURE__*/function (_BaseShadingPattern2) {\n _inherits(MeshShadingPattern, _BaseShadingPattern2);\n\n var _super2 = _createSuper(MeshShadingPattern);\n\n function MeshShadingPattern(IR) {\n var _this2;\n\n _classCallCheck(this, MeshShadingPattern);\n\n _this2 = _super2.call(this);\n _this2._coords = IR[2];\n _this2._colors = IR[3];\n _this2._figures = IR[4];\n _this2._bounds = IR[5];\n _this2._bbox = IR[7];\n _this2._background = IR[8];\n _this2.matrix = null;\n return _this2;\n }\n\n _createClass(MeshShadingPattern, [{\n key: \"_createMeshCanvas\",\n value: function _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n var EXPECTED_SCALE = 1.1;\n var MAX_PATTERN_SIZE = 3000;\n var BORDER_SIZE = 2;\n var offsetX = Math.floor(this._bounds[0]);\n var offsetY = Math.floor(this._bounds[1]);\n var boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n var boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var scaleX = boundsWidth / width;\n var scaleY = boundsHeight / height;\n var context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n var paddedWidth = width + BORDER_SIZE * 2;\n var paddedHeight = height + BORDER_SIZE * 2;\n var tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n var tmpCtx = tmpCanvas.context;\n var data = tmpCtx.createImageData(width, height);\n\n if (backgroundColor) {\n var bytes = data.data;\n\n for (var i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n\n var _iterator2 = _createForOfIteratorHelper(this._figures),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var figure = _step2.value;\n drawFigure(data, figure, context);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n var canvas = tmpCanvas.canvas;\n return {\n canvas: canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX: scaleX,\n scaleY: scaleY\n };\n }\n }, {\n key: \"getPattern\",\n value: function getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n var scale;\n\n if (pathType === PathType.SHADING) {\n scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n\n if (this.matrix) {\n var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n\n var temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);\n\n if (pathType !== PathType.SHADING) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n\n if (this.matrix) {\n ctx.transform.apply(ctx, this.matrix);\n }\n }\n\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n }]);\n\n return MeshShadingPattern;\n}(BaseShadingPattern);\n\nvar DummyShadingPattern = /*#__PURE__*/function (_BaseShadingPattern3) {\n _inherits(DummyShadingPattern, _BaseShadingPattern3);\n\n var _super3 = _createSuper(DummyShadingPattern);\n\n function DummyShadingPattern() {\n _classCallCheck(this, DummyShadingPattern);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(DummyShadingPattern, [{\n key: \"getPattern\",\n value: function getPattern() {\n return \"hotpink\";\n }\n }]);\n\n return DummyShadingPattern;\n}(BaseShadingPattern);\n\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n\n throw new Error(\"Unknown IR type: \".concat(IR[0]));\n}\n\nvar PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n};\n\nvar TilingPattern = /*#__PURE__*/function () {\n function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n _classCallCheck(this, TilingPattern);\n\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n\n _createClass(TilingPattern, [{\n key: \"createPatternCanvas\",\n value: function createPatternCanvas(owner) {\n var operatorList = this.operatorList;\n var bbox = this.bbox;\n var xstep = this.xstep;\n var ystep = this.ystep;\n var paintType = this.paintType;\n var tilingType = this.tilingType;\n var color = this.color;\n var canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n var x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n\n var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n\n var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n var tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n var tmpCtx = tmpCanvas.context;\n var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n var adjustedX0 = x0;\n var adjustedY0 = y0;\n var adjustedX1 = x1;\n var adjustedY1 = y1;\n\n if (x0 < 0) {\n adjustedX0 = 0;\n adjustedX1 += Math.abs(x0);\n }\n\n if (y0 < 0) {\n adjustedY0 = 0;\n adjustedY1 += Math.abs(y0);\n }\n\n tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n graphics.baseTransform = graphics.ctx.mozCurrentTransform.slice();\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: adjustedX0,\n offsetY: adjustedY0\n };\n }\n }, {\n key: \"getSizeAndScale\",\n value: function getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n var maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n var size = Math.ceil(step * scale);\n\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n\n return {\n scale: scale,\n size: size\n };\n }\n }, {\n key: \"clipBbox\",\n value: function clipBbox(graphics, x0, y0, x1, y1) {\n var bboxWidth = x1 - x0;\n var bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.clip();\n graphics.endPath();\n }\n }, {\n key: \"setFillAndStrokeStyleToContext\",\n value: function setFillAndStrokeStyleToContext(graphics, paintType, color) {\n var context = graphics.ctx,\n current = graphics.current;\n\n switch (paintType) {\n case PaintType.COLORED:\n var ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n\n case PaintType.UNCOLORED:\n var cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]);\n\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n\n default:\n throw new _util.FormatError(\"Unsupported paint type: \".concat(paintType));\n }\n }\n }, {\n key: \"getPattern\",\n value: function getPattern(ctx, owner, inverse, pathType) {\n var matrix = inverse;\n\n if (pathType !== PathType.SHADING) {\n matrix = _util.Util.transform(matrix, owner.baseTransform);\n\n if (this.matrix) {\n matrix = _util.Util.transform(matrix, this.matrix);\n }\n }\n\n var temporaryPatternCanvas = this.createPatternCanvas(owner);\n var domMatrix = new DOMMatrix(matrix);\n domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n var pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n\n try {\n pattern.setTransform(domMatrix);\n } catch (ex) {\n (0, _util.warn)(\"TilingPattern.getPattern: \\\"\".concat(ex === null || ex === void 0 ? void 0 : ex.message, \"\\\".\"));\n }\n\n return pattern;\n }\n }], [{\n key: \"MAX_PATTERN_SIZE\",\n get: function get() {\n return (0, _util.shadow)(this, \"MAX_PATTERN_SIZE\", 3000);\n }\n }]);\n\n return TilingPattern;\n}();\n\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 142 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GlobalWorkerOptions = void 0;\nvar GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\nGlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? \"\" : GlobalWorkerOptions.workerSrc;\n\n/***/ }),\n/* 143 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MessageHandler = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(4);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n};\nvar StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n};\n\nfunction wrapReason(reason) {\n if (!(reason instanceof Error || _typeof(reason) === \"object\" && reason !== null)) {\n (0, _util.warn)('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n return reason;\n }\n\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n\n case \"PasswordException\":\n return new _util.PasswordException(reason.message, reason.code);\n\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n\n default:\n return new _util.UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nvar MessageHandler = /*#__PURE__*/function () {\n function MessageHandler(sourceName, targetName, comObj) {\n var _this = this;\n\n _classCallCheck(this, MessageHandler);\n\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = function (event) {\n var data = event.data;\n\n if (data.targetName !== _this.sourceName) {\n return;\n }\n\n if (data.stream) {\n _this._processStreamMessage(data);\n\n return;\n }\n\n if (data.callback) {\n var callbackId = data.callbackId;\n var capability = _this.callbackCapabilities[callbackId];\n\n if (!capability) {\n throw new Error(\"Cannot resolve callback \".concat(callbackId));\n }\n\n delete _this.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n\n return;\n }\n\n var action = _this.actionHandler[data.action];\n\n if (!action) {\n throw new Error(\"Unknown action from worker: \".concat(data.action));\n }\n\n if (data.callbackId) {\n var cbSourceName = _this.sourceName;\n var cbTargetName = data.sourceName;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n\n if (data.streamId) {\n _this._createStreamSink(data);\n\n return;\n }\n\n action(data.data);\n };\n\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n _createClass(MessageHandler, [{\n key: \"on\",\n value: function on(actionName, handler) {\n var ah = this.actionHandler;\n\n if (ah[actionName]) {\n throw new Error(\"There is already an actionName called \\\"\".concat(actionName, \"\\\"\"));\n }\n\n ah[actionName] = handler;\n }\n }, {\n key: \"send\",\n value: function send(actionName, data, transfers) {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data: data\n }, transfers);\n }\n }, {\n key: \"sendWithPromise\",\n value: function sendWithPromise(actionName, data, transfers) {\n var callbackId = this.callbackId++;\n var capability = (0, _util.createPromiseCapability)();\n this.callbackCapabilities[callbackId] = capability;\n\n try {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId: callbackId,\n data: data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n\n return capability.promise;\n }\n }, {\n key: \"sendWithStream\",\n value: function sendWithStream(actionName, data, queueingStrategy, transfers) {\n var _this2 = this;\n\n var streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n return new ReadableStream({\n start: function start(controller) {\n var startCapability = (0, _util.createPromiseCapability)();\n _this2.streamControllers[streamId] = {\n controller: controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n action: actionName,\n streamId: streamId,\n data: data,\n desiredSize: controller.desiredSize\n }, transfers);\n return startCapability.promise;\n },\n pull: function pull(controller) {\n var pullCapability = (0, _util.createPromiseCapability)();\n _this2.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.PULL,\n streamId: streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: function cancel(reason) {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n var cancelCapability = (0, _util.createPromiseCapability)();\n _this2.streamControllers[streamId].cancelCall = cancelCapability;\n _this2.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.CANCEL,\n streamId: streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n }, {\n key: \"_createStreamSink\",\n value: function _createStreamSink(data) {\n var streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n var self = this,\n action = this.actionHandler[data.action];\n var streamSink = {\n enqueue: function enqueue(chunk) {\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var transfers = arguments.length > 2 ? arguments[2] : undefined;\n\n if (this.isCancelled) {\n return;\n }\n\n var lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.ENQUEUE,\n streamId: streamId,\n chunk: chunk\n }, transfers);\n },\n close: function close() {\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.CLOSE,\n streamId: streamId\n });\n delete self.streamSinks[streamId];\n },\n error: function error(reason) {\n (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.ERROR,\n streamId: streamId,\n reason: wrapReason(reason)\n });\n },\n sinkCapability: (0, _util.createPromiseCapability)(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.START_COMPLETE,\n streamId: streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.START_COMPLETE,\n streamId: streamId,\n reason: wrapReason(reason)\n });\n });\n }\n }, {\n key: \"_processStreamMessage\",\n value: function _processStreamMessage(data) {\n var streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n var streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL:\n if (!streamSink) {\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId: streamId,\n success: true\n });\n break;\n }\n\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n\n streamSink.desiredSize = data.desiredSize;\n new Promise(function (resolve) {\n resolve(streamSink.onPull && streamSink.onPull());\n }).then(function () {\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId: streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId: streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n\n case StreamKind.ENQUEUE:\n (0, _util.assert)(streamController, \"enqueue should have stream controller\");\n\n if (streamController.isClosed) {\n break;\n }\n\n streamController.controller.enqueue(data.chunk);\n break;\n\n case StreamKind.CLOSE:\n (0, _util.assert)(streamController, \"close should have stream controller\");\n\n if (streamController.isClosed) {\n break;\n }\n\n streamController.isClosed = true;\n streamController.controller.close();\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.ERROR:\n (0, _util.assert)(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n\n new Promise(function (resolve) {\n resolve(streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId: streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId: streamId,\n reason: wrapReason(reason)\n });\n });\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n }, {\n key: \"_deleteStreamController\",\n value: function () {\n var _deleteStreamController2 = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee(streamController, streamId) {\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return Promise.allSettled([streamController.startCall && streamController.startCall.promise, streamController.pullCall && streamController.pullCall.promise, streamController.cancelCall && streamController.cancelCall.promise]);\n\n case 2:\n delete this.streamControllers[streamId];\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function _deleteStreamController(_x, _x2) {\n return _deleteStreamController2.apply(this, arguments);\n }\n\n return _deleteStreamController;\n }()\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n }]);\n\n return MessageHandler;\n}();\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 144 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Metadata = void 0;\n\nvar _util = __w_pdfjs_require__(4);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\nvar _metadataMap = /*#__PURE__*/new WeakMap();\n\nvar _data = /*#__PURE__*/new WeakMap();\n\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(_ref) {\n var parsedData = _ref.parsedData,\n rawData = _ref.rawData;\n\n _classCallCheck(this, Metadata);\n\n _classPrivateFieldInitSpec(this, _metadataMap, {\n writable: true,\n value: void 0\n });\n\n _classPrivateFieldInitSpec(this, _data, {\n writable: true,\n value: void 0\n });\n\n _classPrivateFieldSet(this, _metadataMap, parsedData);\n\n _classPrivateFieldSet(this, _data, rawData);\n }\n\n _createClass(Metadata, [{\n key: \"getRaw\",\n value: function getRaw() {\n return _classPrivateFieldGet(this, _data);\n }\n }, {\n key: \"get\",\n value: function get(name) {\n var _classPrivateFieldGet2;\n\n return (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _metadataMap).get(name)) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : null;\n }\n }, {\n key: \"getAll\",\n value: function getAll() {\n return (0, _util.objectFromMap)(_classPrivateFieldGet(this, _metadataMap));\n }\n }, {\n key: \"has\",\n value: function has(name) {\n return _classPrivateFieldGet(this, _metadataMap).has(name);\n }\n }]);\n\n return Metadata;\n}();\n\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 145 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.OptionalContentConfig = void 0;\n\nvar _util = __w_pdfjs_require__(4);\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar OptionalContentGroup = function OptionalContentGroup(name, intent) {\n _classCallCheck(this, OptionalContentGroup);\n\n this.visible = true;\n this.name = name;\n this.intent = intent;\n};\n\nvar OptionalContentConfig = /*#__PURE__*/function () {\n function OptionalContentConfig(data) {\n _classCallCheck(this, OptionalContentConfig);\n\n this.name = null;\n this.creator = null;\n this._order = null;\n this._groups = new Map();\n\n if (data === null) {\n return;\n }\n\n this.name = data.name;\n this.creator = data.creator;\n this._order = data.order;\n\n var _iterator = _createForOfIteratorHelper(data.groups),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _group = _step.value;\n\n this._groups.set(_group.id, new OptionalContentGroup(_group.name, _group.intent));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (data.baseState === \"OFF\") {\n var _iterator2 = _createForOfIteratorHelper(this._groups),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var group = _step2.value;\n group.visible = false;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n\n var _iterator3 = _createForOfIteratorHelper(data.on),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var on = _step3.value;\n this._groups.get(on).visible = true;\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n var _iterator4 = _createForOfIteratorHelper(data.off),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var off = _step4.value;\n this._groups.get(off).visible = false;\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n\n _createClass(OptionalContentConfig, [{\n key: \"_evaluateVisibilityExpression\",\n value: function _evaluateVisibilityExpression(array) {\n var length = array.length;\n\n if (length < 2) {\n return true;\n }\n\n var operator = array[0];\n\n for (var i = 1; i < length; i++) {\n var element = array[i];\n var state = void 0;\n\n if (Array.isArray(element)) {\n state = this._evaluateVisibilityExpression(element);\n } else if (this._groups.has(element)) {\n state = this._groups.get(element).visible;\n } else {\n (0, _util.warn)(\"Optional content group not found: \".concat(element));\n return true;\n }\n\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n\n break;\n\n case \"Or\":\n if (state) {\n return true;\n }\n\n break;\n\n case \"Not\":\n return !state;\n\n default:\n return true;\n }\n }\n\n return operator === \"And\";\n }\n }, {\n key: \"isVisible\",\n value: function isVisible(group) {\n if (this._groups.size === 0) {\n return true;\n }\n\n if (!group) {\n (0, _util.warn)(\"Optional content group not defined.\");\n return true;\n }\n\n if (group.type === \"OCG\") {\n if (!this._groups.has(group.id)) {\n (0, _util.warn)(\"Optional content group not found: \".concat(group.id));\n return true;\n }\n\n return this._groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n return this._evaluateVisibilityExpression(group.expression);\n }\n\n if (!group.policy || group.policy === \"AnyOn\") {\n var _iterator5 = _createForOfIteratorHelper(group.ids),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var id = _step5.value;\n\n if (!this._groups.has(id)) {\n (0, _util.warn)(\"Optional content group not found: \".concat(id));\n return true;\n }\n\n if (this._groups.get(id).visible) {\n return true;\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n return false;\n } else if (group.policy === \"AllOn\") {\n var _iterator6 = _createForOfIteratorHelper(group.ids),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var _id = _step6.value;\n\n if (!this._groups.has(_id)) {\n (0, _util.warn)(\"Optional content group not found: \".concat(_id));\n return true;\n }\n\n if (!this._groups.get(_id).visible) {\n return false;\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n return true;\n } else if (group.policy === \"AnyOff\") {\n var _iterator7 = _createForOfIteratorHelper(group.ids),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var _id2 = _step7.value;\n\n if (!this._groups.has(_id2)) {\n (0, _util.warn)(\"Optional content group not found: \".concat(_id2));\n return true;\n }\n\n if (!this._groups.get(_id2).visible) {\n return true;\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n return false;\n } else if (group.policy === \"AllOff\") {\n var _iterator8 = _createForOfIteratorHelper(group.ids),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var _id3 = _step8.value;\n\n if (!this._groups.has(_id3)) {\n (0, _util.warn)(\"Optional content group not found: \".concat(_id3));\n return true;\n }\n\n if (this._groups.get(_id3).visible) {\n return false;\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n\n return true;\n }\n\n (0, _util.warn)(\"Unknown optional content policy \".concat(group.policy, \".\"));\n return true;\n }\n\n (0, _util.warn)(\"Unknown group type \".concat(group.type, \".\"));\n return true;\n }\n }, {\n key: \"setVisibility\",\n value: function setVisibility(id) {\n var visible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (!this._groups.has(id)) {\n (0, _util.warn)(\"Optional content group not found: \".concat(id));\n return;\n }\n\n this._groups.get(id).visible = !!visible;\n }\n }, {\n key: \"getOrder\",\n value: function getOrder() {\n if (!this._groups.size) {\n return null;\n }\n\n if (this._order) {\n return this._order.slice();\n }\n\n return Array.from(this._groups.keys());\n }\n }, {\n key: \"getGroups\",\n value: function getGroups() {\n return this._groups.size > 0 ? (0, _util.objectFromMap)(this._groups) : null;\n }\n }, {\n key: \"getGroup\",\n value: function getGroup(id) {\n return this._groups.get(id) || null;\n }\n }]);\n\n return OptionalContentConfig;\n}();\n\nexports.OptionalContentConfig = OptionalContentConfig;\n\n/***/ }),\n/* 146 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFDataTransportStream = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(4);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar PDFDataTransportStream = /*#__PURE__*/function () {\n function PDFDataTransportStream(params, pdfDataRangeTransport) {\n var _this = this;\n\n _classCallCheck(this, PDFDataTransportStream);\n\n (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n this._queuedChunks = [];\n this._progressiveDone = params.progressiveDone || false;\n this._contentDispositionFilename = params.contentDispositionFilename || null;\n var initialData = params.initialData;\n\n if ((initialData === null || initialData === void 0 ? void 0 : initialData.length) > 0) {\n var buffer = new Uint8Array(initialData).buffer;\n\n this._queuedChunks.push(buffer);\n }\n\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !params.disableStream;\n this._isRangeSupported = !params.disableRange;\n this._contentLength = params.length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) {\n _this._onReceiveData({\n begin: begin,\n chunk: chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressListener(function (loaded, total) {\n _this._onProgress({\n loaded: loaded,\n total: total\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) {\n _this._onReceiveData({\n chunk: chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveDoneListener(function () {\n _this._onProgressiveDone();\n });\n\n this._pdfDataRangeTransport.transportReady();\n }\n\n _createClass(PDFDataTransportStream, [{\n key: \"_onReceiveData\",\n value: function _onReceiveData(args) {\n var buffer = new Uint8Array(args.chunk).buffer;\n\n if (args.begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n var found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n\n rangeReader._enqueue(buffer);\n\n return true;\n });\n\n (0, _util.assert)(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n }, {\n key: \"_progressiveDataLength\",\n get: function get() {\n var _this$_fullRequestRea, _this$_fullRequestRea2;\n\n return (_this$_fullRequestRea = (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2._loaded) !== null && _this$_fullRequestRea !== void 0 ? _this$_fullRequestRea : 0;\n }\n }, {\n key: \"_onProgress\",\n value: function _onProgress(evt) {\n if (evt.total === undefined) {\n var firstReader = this._rangeReaders[0];\n\n if (firstReader !== null && firstReader !== void 0 && firstReader.onProgress) {\n firstReader.onProgress({\n loaded: evt.loaded\n });\n }\n } else {\n var fullReader = this._fullRequestReader;\n\n if (fullReader !== null && fullReader !== void 0 && fullReader.onProgress) {\n fullReader.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n }\n }, {\n key: \"_onProgressiveDone\",\n value: function _onProgressiveDone() {\n if (this._fullRequestReader) {\n this._fullRequestReader.progressiveDone();\n }\n\n this._progressiveDone = true;\n }\n }, {\n key: \"_removeRangeReader\",\n value: function _removeRangeReader(reader) {\n var i = this._rangeReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n }, {\n key: \"getFullReader\",\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n var queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename);\n }\n }, {\n key: \"getRangeReader\",\n value: function getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n var reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n\n this._rangeReaders.push(reader);\n\n return reader;\n }\n }, {\n key: \"cancelAllRequests\",\n value: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n var _iterator = _createForOfIteratorHelper(this._rangeReaders.slice(0)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var reader = _step.value;\n reader.cancel(reason);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this._pdfDataRangeTransport.abort();\n }\n }]);\n\n return PDFDataTransportStream;\n}();\n\nexports.PDFDataTransportStream = PDFDataTransportStream;\n\nvar PDFDataTransportStreamReader = /*#__PURE__*/function () {\n function PDFDataTransportStreamReader(stream, queuedChunks) {\n var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var contentDispositionFilename = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, PDFDataTransportStreamReader);\n\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n\n var _iterator2 = _createForOfIteratorHelper(this._queuedChunks),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var chunk = _step2.value;\n this._loaded += chunk.byteLength;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n\n _createClass(PDFDataTransportStreamReader, [{\n key: \"_enqueue\",\n value: function _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n\n this._loaded += chunk.byteLength;\n }\n }, {\n key: \"headersReady\",\n get: function get() {\n return this._headersReady;\n }\n }, {\n key: \"filename\",\n get: function get() {\n return this._filename;\n }\n }, {\n key: \"isRangeSupported\",\n get: function get() {\n return this._stream._isRangeSupported;\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return this._stream._isStreamingSupported;\n }\n }, {\n key: \"contentLength\",\n get: function get() {\n return this._stream._contentLength;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var chunk, requestCapability;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(this._queuedChunks.length > 0)) {\n _context.next = 3;\n break;\n }\n\n chunk = this._queuedChunks.shift();\n return _context.abrupt(\"return\", {\n value: chunk,\n done: false\n });\n\n case 3:\n if (!this._done) {\n _context.next = 5;\n break;\n }\n\n return _context.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 5:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context.abrupt(\"return\", requestCapability.promise);\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _read.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n this._done = true;\n\n var _iterator3 = _createForOfIteratorHelper(this._requests),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var requestCapability = _step3.value;\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n this._requests.length = 0;\n }\n }, {\n key: \"progressiveDone\",\n value: function progressiveDone() {\n if (this._done) {\n return;\n }\n\n this._done = true;\n }\n }]);\n\n return PDFDataTransportStreamReader;\n}();\n\nvar PDFDataTransportStreamRangeReader = /*#__PURE__*/function () {\n function PDFDataTransportStreamRangeReader(stream, begin, end) {\n _classCallCheck(this, PDFDataTransportStreamRangeReader);\n\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n\n _createClass(PDFDataTransportStreamRangeReader, [{\n key: \"_enqueue\",\n value: function _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n var requestsCapability = this._requests.shift();\n\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n\n var _iterator4 = _createForOfIteratorHelper(this._requests),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var requestCapability = _step4.value;\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n this._requests.length = 0;\n }\n\n this._done = true;\n\n this._stream._removeRangeReader(this);\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return false;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee2() {\n var chunk, requestCapability;\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!this._queuedChunk) {\n _context2.next = 4;\n break;\n }\n\n chunk = this._queuedChunk;\n this._queuedChunk = null;\n return _context2.abrupt(\"return\", {\n value: chunk,\n done: false\n });\n\n case 4:\n if (!this._done) {\n _context2.next = 6;\n break;\n }\n\n return _context2.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 6:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context2.abrupt(\"return\", requestCapability.promise);\n\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _read2.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n this._done = true;\n\n var _iterator5 = _createForOfIteratorHelper(this._requests),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var requestCapability = _step5.value;\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n this._requests.length = 0;\n\n this._stream._removeRangeReader(this);\n }\n }]);\n\n return PDFDataTransportStreamRangeReader;\n}();\n\n/***/ }),\n/* 147 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaText = void 0;\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar XfaText = /*#__PURE__*/function () {\n function XfaText() {\n _classCallCheck(this, XfaText);\n }\n\n _createClass(XfaText, null, [{\n key: \"textContent\",\n value: function textContent(xfa) {\n var items = [];\n var output = {\n items: items,\n styles: Object.create(null)\n };\n\n function walk(node) {\n var _node$attributes;\n\n if (!node) {\n return;\n }\n\n var str = null;\n var name = node.name;\n\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node !== null && node !== void 0 && (_node$attributes = node.attributes) !== null && _node$attributes !== void 0 && _node$attributes.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n\n if (str !== null) {\n items.push({\n str: str\n });\n }\n\n if (!node.children) {\n return;\n }\n\n var _iterator = _createForOfIteratorHelper(node.children),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var child = _step.value;\n walk(child);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n walk(xfa);\n return output;\n }\n }, {\n key: \"shouldBuildText\",\n value: function shouldBuildText(name) {\n return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n }\n }]);\n\n return XfaText;\n}();\n\nexports.XfaText = XfaText;\n\n/***/ }),\n/* 148 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationLayer = void 0;\n\nvar _util = __w_pdfjs_require__(4);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _annotation_storage = __w_pdfjs_require__(139);\n\nvar _scripting_utils = __w_pdfjs_require__(149);\n\nvar _xfa_layer = __w_pdfjs_require__(150);\n\nfunction _classStaticPrivateMethodGet(receiver, classConstructor, method) { _classCheckPrivateStaticAccess(receiver, classConstructor); return method; }\n\nfunction _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError(\"Private static access of wrong provenance\"); } }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar DEFAULT_TAB_INDEX = 1000;\nvar GetElementsByNameSet = new WeakSet();\n\nvar AnnotationElementFactory = /*#__PURE__*/function () {\n function AnnotationElementFactory() {\n _classCallCheck(this, AnnotationElementFactory);\n }\n\n _createClass(AnnotationElementFactory, null, [{\n key: \"create\",\n value: function create(parameters) {\n var subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case _util.AnnotationType.WIDGET:\n var fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n\n return new PushButtonWidgetAnnotationElement(parameters);\n\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n\n return new WidgetAnnotationElement(parameters);\n\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\n }\n }\n }]);\n\n return AnnotationElementFactory;\n}();\n\nvar AnnotationElement = /*#__PURE__*/function () {\n function AnnotationElement(parameters) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$isRenderable = _ref.isRenderable,\n isRenderable = _ref$isRenderable === void 0 ? false : _ref$isRenderable,\n _ref$ignoreBorder = _ref.ignoreBorder,\n ignoreBorder = _ref$ignoreBorder === void 0 ? false : _ref$ignoreBorder,\n _ref$createQuadrilate = _ref.createQuadrilaterals,\n createQuadrilaterals = _ref$createQuadrilate === void 0 ? false : _ref$createQuadrilate;\n\n _classCallCheck(this, AnnotationElement);\n\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this._mouseState = parameters.mouseState;\n\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n\n if (createQuadrilaterals) {\n this.quadrilaterals = this._createQuadrilaterals(ignoreBorder);\n }\n }\n\n _createClass(AnnotationElement, [{\n key: \"_createContainer\",\n value: function _createContainer() {\n var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var data = this.data,\n page = this.page,\n viewport = this.viewport;\n var container = document.createElement(\"section\");\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n container.setAttribute(\"data-annotation-id\", data.id);\n\n var rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n\n if (data.hasOwnCanvas) {\n var transform = viewport.transform.slice();\n\n var _Util$singularValueDe = _util.Util.singularValueDecompose2dScale(transform),\n _Util$singularValueDe2 = _slicedToArray(_Util$singularValueDe, 2),\n scaleX = _Util$singularValueDe2[0],\n scaleY = _Util$singularValueDe2[1];\n\n width = Math.ceil(width * scaleX);\n height = Math.ceil(height * scaleY);\n rect[0] *= scaleX;\n rect[1] *= scaleY;\n\n for (var i = 0; i < 4; i++) {\n transform[i] = Math.sign(transform[i]);\n }\n\n container.style.transform = \"matrix(\".concat(transform.join(\",\"), \")\");\n } else {\n container.style.transform = \"matrix(\".concat(viewport.transform.join(\",\"), \")\");\n }\n\n container.style.transformOrigin = \"\".concat(-rect[0], \"px \").concat(-rect[1], \"px\");\n\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = \"\".concat(data.borderStyle.width, \"px\");\n\n if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {\n width -= 2 * data.borderStyle.width;\n height -= 2 * data.borderStyle.width;\n }\n\n var horizontalRadius = data.borderStyle.horizontalCornerRadius;\n var verticalRadius = data.borderStyle.verticalCornerRadius;\n\n if (horizontalRadius > 0 || verticalRadius > 0) {\n var radius = \"\".concat(horizontalRadius, \"px / \").concat(verticalRadius, \"px\");\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n\n default:\n break;\n }\n\n var borderColor = data.borderColor || data.color || null;\n\n if (borderColor) {\n container.style.borderColor = _util.Util.makeHexColor(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = \"\".concat(rect[0], \"px\");\n container.style.top = \"\".concat(rect[1], \"px\");\n\n if (data.hasOwnCanvas) {\n container.style.width = container.style.height = \"auto\";\n } else {\n container.style.width = \"\".concat(width, \"px\");\n container.style.height = \"\".concat(height, \"px\");\n }\n\n return container;\n }\n }, {\n key: \"_createQuadrilaterals\",\n value: function _createQuadrilaterals() {\n var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!this.data.quadPoints) {\n return null;\n }\n\n var quadrilaterals = [];\n var savedRect = this.data.rect;\n\n var _iterator = _createForOfIteratorHelper(this.data.quadPoints),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var quadPoint = _step.value;\n this.data.rect = [quadPoint[2].x, quadPoint[2].y, quadPoint[1].x, quadPoint[1].y];\n quadrilaterals.push(this._createContainer(ignoreBorder));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this.data.rect = savedRect;\n return quadrilaterals;\n }\n }, {\n key: \"_createPopup\",\n value: function _createPopup(trigger, data) {\n var container = this.container;\n\n if (this.quadrilaterals) {\n trigger = trigger || this.quadrilaterals;\n container = this.quadrilaterals[0];\n }\n\n if (!trigger) {\n trigger = document.createElement(\"div\");\n trigger.style.height = container.style.height;\n trigger.style.width = container.style.width;\n container.appendChild(trigger);\n }\n\n var popupElement = new PopupElement({\n container: container,\n trigger: trigger,\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n hideWrapper: true\n });\n var popup = popupElement.render();\n popup.style.left = container.style.width;\n container.appendChild(popup);\n }\n }, {\n key: \"_renderQuadrilaterals\",\n value: function _renderQuadrilaterals(className) {\n var _iterator2 = _createForOfIteratorHelper(this.quadrilaterals),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var quadrilateral = _step2.value;\n quadrilateral.className = className;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return this.quadrilaterals;\n }\n }, {\n key: \"render\",\n value: function render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n }, {\n key: \"_getElementsByName\",\n value: function _getElementsByName(name) {\n var skipId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var fields = [];\n\n if (this._fieldObjects) {\n var fieldObj = this._fieldObjects[name];\n\n if (fieldObj) {\n var _iterator3 = _createForOfIteratorHelper(fieldObj),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _step3$value = _step3.value,\n page = _step3$value.page,\n id = _step3$value.id,\n exportValues = _step3$value.exportValues;\n\n if (page === -1) {\n continue;\n }\n\n if (id === skipId) {\n continue;\n }\n\n var exportValue = typeof exportValues === \"string\" ? exportValues : null;\n var domElement = document.getElementById(id);\n\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(\"_getElementsByName - element not allowed: \".concat(id));\n continue;\n }\n\n fields.push({\n id: id,\n exportValue: exportValue,\n domElement: domElement\n });\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n\n return fields;\n }\n\n var _iterator4 = _createForOfIteratorHelper(document.getElementsByName(name)),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _domElement = _step4.value;\n var _id = _domElement.id,\n _exportValue = _domElement.exportValue;\n\n if (_id === skipId) {\n continue;\n }\n\n if (!GetElementsByNameSet.has(_domElement)) {\n continue;\n }\n\n fields.push({\n id: _id,\n exportValue: _exportValue,\n domElement: _domElement\n });\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return fields;\n }\n }], [{\n key: \"platform\",\n get: function get() {\n var platform = typeof navigator !== \"undefined\" ? navigator.platform : \"\";\n return (0, _util.shadow)(this, \"platform\", {\n isWin: platform.includes(\"Win\"),\n isMac: platform.includes(\"Mac\")\n });\n }\n }]);\n\n return AnnotationElement;\n}();\n\nvar LinkAnnotationElement = /*#__PURE__*/function (_AnnotationElement) {\n _inherits(LinkAnnotationElement, _AnnotationElement);\n\n var _super = _createSuper(LinkAnnotationElement);\n\n function LinkAnnotationElement(parameters) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, LinkAnnotationElement);\n\n var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action || parameters.data.isTooltipOnly || parameters.data.resetForm || parameters.data.actions && (parameters.data.actions.Action || parameters.data.actions[\"Mouse Up\"] || parameters.data.actions[\"Mouse Down\"]));\n return _super.call(this, parameters, {\n isRenderable: isRenderable,\n ignoreBorder: !!(options !== null && options !== void 0 && options.ignoreBorder),\n createQuadrilaterals: true\n });\n }\n\n _createClass(LinkAnnotationElement, [{\n key: \"render\",\n value: function render() {\n var data = this.data,\n linkService = this.linkService;\n var link = document.createElement(\"a\");\n\n if (data.url) {\n var _linkService$addLinkA;\n\n if (!linkService.addLinkAttributes) {\n (0, _util.warn)(\"LinkAnnotationElement.render - missing `addLinkAttributes`-method on the `linkService`-instance.\");\n }\n\n (_linkService$addLinkA = linkService.addLinkAttributes) === null || _linkService$addLinkA === void 0 ? void 0 : _linkService$addLinkA.call(linkService, link, data.url, data.newWindow);\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n } else {\n var hasClickAction = false;\n\n if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n hasClickAction = true;\n\n this._bindJSAction(link, data);\n }\n\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n } else if (!hasClickAction) {\n this._bindLink(link, \"\");\n }\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"linkAnnotation\").map(function (quadrilateral, index) {\n var linkElement = index === 0 ? link : link.cloneNode();\n quadrilateral.appendChild(linkElement);\n return quadrilateral;\n });\n }\n\n this.container.className = \"linkAnnotation\";\n this.container.appendChild(link);\n return this.container;\n }\n }, {\n key: \"_bindLink\",\n value: function _bindLink(link, destination) {\n var _this = this;\n\n link.href = this.linkService.getDestinationHash(destination);\n\n link.onclick = function () {\n if (destination) {\n _this.linkService.goToDestination(destination);\n }\n\n return false;\n };\n\n if (destination || destination === \"\") {\n link.className = \"internalLink\";\n }\n }\n }, {\n key: \"_bindNamedAction\",\n value: function _bindNamedAction(link, action) {\n var _this2 = this;\n\n link.href = this.linkService.getAnchorUrl(\"\");\n\n link.onclick = function () {\n _this2.linkService.executeNamedAction(action);\n\n return false;\n };\n\n link.className = \"internalLink\";\n }\n }, {\n key: \"_bindJSAction\",\n value: function _bindJSAction(link, data) {\n var _this3 = this;\n\n link.href = this.linkService.getAnchorUrl(\"\");\n var map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n\n var _loop = function _loop() {\n var name = _Object$keys[_i2];\n var jsName = map.get(name);\n\n if (!jsName) {\n return \"continue\";\n }\n\n link[jsName] = function () {\n var _this3$linkService$ev;\n\n (_this3$linkService$ev = _this3.linkService.eventBus) === null || _this3$linkService$ev === void 0 ? void 0 : _this3$linkService$ev.dispatch(\"dispatcheventinsandbox\", {\n source: _this3,\n detail: {\n id: data.id,\n name: name\n }\n });\n return false;\n };\n };\n\n for (var _i2 = 0, _Object$keys = Object.keys(data.actions); _i2 < _Object$keys.length; _i2++) {\n var _ret = _loop();\n\n if (_ret === \"continue\") continue;\n }\n\n if (!link.onclick) {\n link.onclick = function () {\n return false;\n };\n }\n\n link.className = \"internalLink\";\n }\n }, {\n key: \"_bindResetFormAction\",\n value: function _bindResetFormAction(link, resetForm) {\n var _this4 = this;\n\n var otherClickAction = link.onclick;\n\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n\n link.className = \"internalLink\";\n\n if (!this._fieldObjects) {\n (0, _util.warn)(\"_bindResetFormAction - \\\"resetForm\\\" action not supported, \" + \"ensure that the `fieldObjects` parameter is provided.\");\n\n if (!otherClickAction) {\n link.onclick = function () {\n return false;\n };\n }\n\n return;\n }\n\n link.onclick = function () {\n if (otherClickAction) {\n otherClickAction();\n }\n\n var resetFormFields = resetForm.fields,\n resetFormRefs = resetForm.refs,\n include = resetForm.include;\n var allFields = [];\n\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n var fieldIds = new Set(resetFormRefs);\n\n var _iterator5 = _createForOfIteratorHelper(resetFormFields),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var fieldName = _step5.value;\n\n var _fields = _this4._fieldObjects[fieldName] || [];\n\n var _iterator7 = _createForOfIteratorHelper(_fields),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var id = _step7.value.id;\n fieldIds.add(id);\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n for (var _i3 = 0, _Object$values = Object.values(_this4._fieldObjects); _i3 < _Object$values.length; _i3++) {\n var fields = _Object$values[_i3];\n\n var _iterator6 = _createForOfIteratorHelper(fields),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var field = _step6.value;\n\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n }\n } else {\n for (var _i4 = 0, _Object$values2 = Object.values(_this4._fieldObjects); _i4 < _Object$values2.length; _i4++) {\n var _fields2 = _Object$values2[_i4];\n allFields.push.apply(allFields, _toConsumableArray(_fields2));\n }\n }\n\n var storage = _this4.annotationStorage;\n var allIds = [];\n\n for (var _i5 = 0, _allFields = allFields; _i5 < _allFields.length; _i5++) {\n var _field = _allFields[_i5];\n var _id2 = _field.id;\n allIds.push(_id2);\n\n switch (_field.type) {\n case \"text\":\n {\n var value = _field.defaultValue || \"\";\n storage.setValue(_id2, {\n value: value,\n valueAsString: value\n });\n break;\n }\n\n case \"checkbox\":\n case \"radiobutton\":\n {\n var _value = _field.defaultValue === _field.exportValues;\n\n storage.setValue(_id2, {\n value: _value\n });\n break;\n }\n\n case \"combobox\":\n case \"listbox\":\n {\n var _value2 = _field.defaultValue || \"\";\n\n storage.setValue(_id2, {\n value: _value2\n });\n break;\n }\n\n default:\n continue;\n }\n\n var domElement = document.getElementById(_id2);\n\n if (!domElement || !GetElementsByNameSet.has(domElement)) {\n continue;\n }\n\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n\n if (_this4.enableScripting) {\n var _this4$linkService$ev;\n\n (_this4$linkService$ev = _this4.linkService.eventBus) === null || _this4$linkService$ev === void 0 ? void 0 : _this4$linkService$ev.dispatch(\"dispatcheventinsandbox\", {\n source: _this4,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\"\n }\n });\n }\n\n return false;\n };\n }\n }]);\n\n return LinkAnnotationElement;\n}(AnnotationElement);\n\nvar TextAnnotationElement = /*#__PURE__*/function (_AnnotationElement2) {\n _inherits(TextAnnotationElement, _AnnotationElement2);\n\n var _super2 = _createSuper(TextAnnotationElement);\n\n function TextAnnotationElement(parameters) {\n var _parameters$data$titl, _parameters$data$cont, _parameters$data$rich;\n\n _classCallCheck(this, TextAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl = parameters.data.titleObj) !== null && _parameters$data$titl !== void 0 && _parameters$data$titl.str || (_parameters$data$cont = parameters.data.contentsObj) !== null && _parameters$data$cont !== void 0 && _parameters$data$cont.str || (_parameters$data$rich = parameters.data.richText) !== null && _parameters$data$rich !== void 0 && _parameters$data$rich.str);\n return _super2.call(this, parameters, {\n isRenderable: isRenderable\n });\n }\n\n _createClass(TextAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"textAnnotation\";\n var image = document.createElement(\"img\");\n image.style.height = this.container.style.height;\n image.style.width = this.container.style.width;\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n\n if (!this.data.hasPopup) {\n this._createPopup(image, this.data);\n }\n\n this.container.appendChild(image);\n return this.container;\n }\n }]);\n\n return TextAnnotationElement;\n}(AnnotationElement);\n\nvar WidgetAnnotationElement = /*#__PURE__*/function (_AnnotationElement3) {\n _inherits(WidgetAnnotationElement, _AnnotationElement3);\n\n var _super3 = _createSuper(WidgetAnnotationElement);\n\n function WidgetAnnotationElement() {\n _classCallCheck(this, WidgetAnnotationElement);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(WidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n if (this.data.alternativeText) {\n this.container.title = this.data.alternativeText;\n }\n\n return this.container;\n }\n }, {\n key: \"_getKeyModifier\",\n value: function _getKeyModifier(event) {\n var _AnnotationElement$pl = AnnotationElement.platform,\n isWin = _AnnotationElement$pl.isWin,\n isMac = _AnnotationElement$pl.isMac;\n return isWin && event.ctrlKey || isMac && event.metaKey;\n }\n }, {\n key: \"_setEventListener\",\n value: function _setEventListener(element, baseName, eventName, valueGetter) {\n var _this5 = this;\n\n if (baseName.includes(\"mouse\")) {\n element.addEventListener(baseName, function (event) {\n var _this5$linkService$ev;\n\n (_this5$linkService$ev = _this5.linkService.eventBus) === null || _this5$linkService$ev === void 0 ? void 0 : _this5$linkService$ev.dispatch(\"dispatcheventinsandbox\", {\n source: _this5,\n detail: {\n id: _this5.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: _this5._getKeyModifier(event)\n }\n });\n });\n } else {\n element.addEventListener(baseName, function (event) {\n var _this5$linkService$ev2;\n\n (_this5$linkService$ev2 = _this5.linkService.eventBus) === null || _this5$linkService$ev2 === void 0 ? void 0 : _this5$linkService$ev2.dispatch(\"dispatcheventinsandbox\", {\n source: _this5,\n detail: {\n id: _this5.data.id,\n name: eventName,\n value: event.target.checked\n }\n });\n });\n }\n }\n }, {\n key: \"_setEventListeners\",\n value: function _setEventListeners(element, names, getter) {\n var _iterator8 = _createForOfIteratorHelper(names),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var _this$data$actions;\n\n var _step8$value = _slicedToArray(_step8.value, 2),\n baseName = _step8$value[0],\n eventName = _step8$value[1];\n\n if (eventName === \"Action\" || (_this$data$actions = this.data.actions) !== null && _this$data$actions !== void 0 && _this$data$actions[eventName]) {\n this._setEventListener(element, baseName, eventName, getter);\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n }, {\n key: \"_setBackgroundColor\",\n value: function _setBackgroundColor(element) {\n var color = this.data.backgroundColor || null;\n element.style.backgroundColor = color === null ? \"transparent\" : _util.Util.makeHexColor(color[0], color[1], color[2]);\n }\n }, {\n key: \"_dispatchEventFromSandbox\",\n value: function _dispatchEventFromSandbox(actions, jsEvent) {\n var _this6 = this;\n\n var setColor = function setColor(jsName, styleName, event) {\n var color = event.detail[jsName];\n event.target.style[styleName] = _scripting_utils.ColorConverters[\"\".concat(color[0], \"_HTML\")](color.slice(1));\n };\n\n var commonActions = {\n display: function display(event) {\n var hidden = event.detail.display % 2 === 1;\n event.target.style.visibility = hidden ? \"hidden\" : \"visible\";\n\n _this6.annotationStorage.setValue(_this6.data.id, {\n hidden: hidden,\n print: event.detail.display === 0 || event.detail.display === 3\n });\n },\n print: function print(event) {\n _this6.annotationStorage.setValue(_this6.data.id, {\n print: event.detail.print\n });\n },\n hidden: function hidden(event) {\n event.target.style.visibility = event.detail.hidden ? \"hidden\" : \"visible\";\n\n _this6.annotationStorage.setValue(_this6.data.id, {\n hidden: event.detail.hidden\n });\n },\n focus: function focus(event) {\n setTimeout(function () {\n return event.target.focus({\n preventScroll: false\n });\n }, 0);\n },\n userName: function userName(event) {\n event.target.title = event.detail.userName;\n },\n readonly: function readonly(event) {\n if (event.detail.readonly) {\n event.target.setAttribute(\"readonly\", \"\");\n } else {\n event.target.removeAttribute(\"readonly\");\n }\n },\n required: function required(event) {\n if (event.detail.required) {\n event.target.setAttribute(\"required\", \"\");\n } else {\n event.target.removeAttribute(\"required\");\n }\n },\n bgColor: function bgColor(event) {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: function fillColor(event) {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: function fgColor(event) {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: function textColor(event) {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: function borderColor(event) {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: function strokeColor(event) {\n setColor(\"strokeColor\", \"borderColor\", event);\n }\n };\n\n for (var _i6 = 0, _Object$keys2 = Object.keys(jsEvent.detail); _i6 < _Object$keys2.length; _i6++) {\n var name = _Object$keys2[_i6];\n var action = actions[name] || commonActions[name];\n\n if (action) {\n action(jsEvent);\n }\n }\n }\n }]);\n\n return WidgetAnnotationElement;\n}(AnnotationElement);\n\nvar TextWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem) {\n _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem);\n\n var _super4 = _createSuper(TextWidgetAnnotationElement);\n\n function TextWidgetAnnotationElement(parameters) {\n _classCallCheck(this, TextWidgetAnnotationElement);\n\n var isRenderable = parameters.renderForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n return _super4.call(this, parameters, {\n isRenderable: isRenderable\n });\n }\n\n _createClass(TextWidgetAnnotationElement, [{\n key: \"setPropertyOnSiblings\",\n value: function setPropertyOnSiblings(base, key, value, keyInStorage) {\n var storage = this.annotationStorage;\n\n var _iterator9 = _createForOfIteratorHelper(this._getElementsByName(base.name, base.id)),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var element = _step9.value;\n\n if (element.domElement) {\n element.domElement[key] = value;\n }\n\n storage.setValue(element.id, _defineProperty({}, keyInStorage, value));\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this7 = this;\n\n var storage = this.annotationStorage;\n var id = this.data.id;\n this.container.className = \"textWidgetAnnotation\";\n var element = null;\n\n if (this.renderForms) {\n var storedData = storage.getValue(id, {\n value: this.data.fieldValue,\n valueAsString: this.data.fieldValue\n });\n var textContent = storedData.valueAsString || storedData.value || \"\";\n var elementData = {\n userValue: null,\n formattedValue: null,\n beforeInputSelectionRange: null,\n beforeInputValue: null\n };\n\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = textContent;\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", textContent);\n }\n\n GetElementsByNameSet.add(element);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n elementData.userValue = textContent;\n element.setAttribute(\"id\", id);\n element.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: event.target.value\n });\n\n _this7.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n });\n element.addEventListener(\"resetform\", function (event) {\n var defaultValue = _this7.data.defaultFieldValue || \"\";\n element.value = elementData.userValue = defaultValue;\n delete elementData.formattedValue;\n });\n\n var blurListener = function blurListener(event) {\n if (elementData.formattedValue) {\n event.target.value = elementData.formattedValue;\n }\n\n event.target.scrollLeft = 0;\n elementData.beforeInputSelectionRange = null;\n };\n\n if (this.enableScripting && this.hasJSActions) {\n var _this$data$actions2;\n\n element.addEventListener(\"focus\", function (event) {\n if (elementData.userValue) {\n event.target.value = elementData.userValue;\n }\n });\n element.addEventListener(\"updatefromsandbox\", function (jsEvent) {\n var actions = {\n value: function value(event) {\n elementData.userValue = event.detail.value || \"\";\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\n\n if (!elementData.formattedValue) {\n event.target.value = elementData.userValue;\n }\n },\n valueAsString: function valueAsString(event) {\n elementData.formattedValue = event.detail.valueAsString || \"\";\n\n if (event.target !== document.activeElement) {\n event.target.value = elementData.formattedValue;\n }\n\n storage.setValue(id, {\n formattedValue: elementData.formattedValue\n });\n },\n selRange: function selRange(event) {\n var _event$detail$selRang = _slicedToArray(event.detail.selRange, 2),\n selStart = _event$detail$selRang[0],\n selEnd = _event$detail$selRang[1];\n\n if (selStart >= 0 && selEnd < event.target.value.length) {\n event.target.setSelectionRange(selStart, selEnd);\n }\n }\n };\n\n _this7._dispatchEventFromSandbox(actions, jsEvent);\n });\n element.addEventListener(\"keydown\", function (event) {\n var _this7$linkService$ev;\n\n elementData.beforeInputValue = event.target.value;\n var commitKey = -1;\n\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\") {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n commitKey = 3;\n }\n\n if (commitKey === -1) {\n return;\n }\n\n elementData.userValue = event.target.value;\n (_this7$linkService$ev = _this7.linkService.eventBus) === null || _this7$linkService$ev === void 0 ? void 0 : _this7$linkService$ev.dispatch(\"dispatcheventinsandbox\", {\n source: _this7,\n detail: {\n id: id,\n name: \"Keystroke\",\n value: event.target.value,\n willCommit: true,\n commitKey: commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n });\n var _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", function (event) {\n if (_this7._mouseState.isDown) {\n var _this7$linkService$ev2;\n\n elementData.userValue = event.target.value;\n (_this7$linkService$ev2 = _this7.linkService.eventBus) === null || _this7$linkService$ev2 === void 0 ? void 0 : _this7$linkService$ev2.dispatch(\"dispatcheventinsandbox\", {\n source: _this7,\n detail: {\n id: id,\n name: \"Keystroke\",\n value: event.target.value,\n willCommit: true,\n commitKey: 1,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n }\n\n _blurListener(event);\n });\n element.addEventListener(\"mousedown\", function (event) {\n elementData.beforeInputValue = event.target.value;\n elementData.beforeInputSelectionRange = null;\n });\n element.addEventListener(\"keyup\", function (event) {\n if (event.target.selectionStart === event.target.selectionEnd) {\n elementData.beforeInputSelectionRange = null;\n }\n });\n element.addEventListener(\"select\", function (event) {\n elementData.beforeInputSelectionRange = [event.target.selectionStart, event.target.selectionEnd];\n });\n\n if ((_this$data$actions2 = this.data.actions) !== null && _this$data$actions2 !== void 0 && _this$data$actions2.Keystroke) {\n element.addEventListener(\"input\", function (event) {\n var _this7$linkService$ev3;\n\n var selStart = -1;\n var selEnd = -1;\n\n if (elementData.beforeInputSelectionRange) {\n var _elementData$beforeIn = _slicedToArray(elementData.beforeInputSelectionRange, 2);\n\n selStart = _elementData$beforeIn[0];\n selEnd = _elementData$beforeIn[1];\n }\n\n (_this7$linkService$ev3 = _this7.linkService.eventBus) === null || _this7$linkService$ev3 === void 0 ? void 0 : _this7$linkService$ev3.dispatch(\"dispatcheventinsandbox\", {\n source: _this7,\n detail: {\n id: id,\n name: \"Keystroke\",\n value: elementData.beforeInputValue,\n change: event.data,\n willCommit: false,\n selStart: selStart,\n selEnd: selEnd\n }\n });\n });\n }\n\n this._setEventListeners(element, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], function (event) {\n return event.target.value;\n });\n }\n\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n\n if (this.data.comb) {\n var fieldWidth = this.data.rect[2] - this.data.rect[0];\n var combWidth = fieldWidth / this.data.maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = \"calc(\".concat(combWidth, \"px - 1ch)\");\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n }\n\n this._setTextStyle(element);\n\n this._setBackgroundColor(element);\n\n this.container.appendChild(element);\n return this.container;\n }\n }, {\n key: \"_setTextStyle\",\n value: function _setTextStyle(element) {\n var TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n var _this$data$defaultApp = this.data.defaultAppearanceData,\n fontSize = _this$data$defaultApp.fontSize,\n fontColor = _this$data$defaultApp.fontColor;\n var style = element.style;\n\n if (fontSize) {\n style.fontSize = \"\".concat(fontSize, \"px\");\n }\n\n style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n }]);\n\n return TextWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar CheckboxWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem2) {\n _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2);\n\n var _super5 = _createSuper(CheckboxWidgetAnnotationElement);\n\n function CheckboxWidgetAnnotationElement(parameters) {\n _classCallCheck(this, CheckboxWidgetAnnotationElement);\n\n return _super5.call(this, parameters, {\n isRenderable: parameters.renderForms\n });\n }\n\n _createClass(CheckboxWidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n var _this8 = this;\n\n var storage = this.annotationStorage;\n var data = this.data;\n var id = data.id;\n var value = storage.getValue(id, {\n value: data.exportValue === data.fieldValue\n }).value;\n\n if (typeof value === \"string\") {\n value = value !== \"Off\";\n storage.setValue(id, {\n value: value\n });\n }\n\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n var element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.disabled = data.readOnly;\n element.type = \"checkbox\";\n element.name = data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.setAttribute(\"id\", id);\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", function (event) {\n var _event$target = event.target,\n name = _event$target.name,\n checked = _event$target.checked;\n\n var _iterator10 = _createForOfIteratorHelper(_this8._getElementsByName(name, id)),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var checkbox = _step10.value;\n var curChecked = checked && checkbox.exportValue === data.exportValue;\n\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n\n storage.setValue(checkbox.id, {\n value: curChecked\n });\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", function (event) {\n var defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\n });\n\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", function (jsEvent) {\n var actions = {\n value: function value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, {\n value: event.target.checked\n });\n }\n };\n\n _this8._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n this._setEventListeners(element, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], function (event) {\n return event.target.checked;\n });\n }\n\n this._setBackgroundColor(element);\n\n this.container.appendChild(element);\n return this.container;\n }\n }]);\n\n return CheckboxWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar RadioButtonWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem3) {\n _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3);\n\n var _super6 = _createSuper(RadioButtonWidgetAnnotationElement);\n\n function RadioButtonWidgetAnnotationElement(parameters) {\n _classCallCheck(this, RadioButtonWidgetAnnotationElement);\n\n return _super6.call(this, parameters, {\n isRenderable: parameters.renderForms\n });\n }\n\n _createClass(RadioButtonWidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n var _this9 = this;\n\n this.container.className = \"buttonWidgetAnnotation radioButton\";\n var storage = this.annotationStorage;\n var data = this.data;\n var id = data.id;\n var value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue\n }).value;\n\n if (typeof value === \"string\") {\n value = value !== data.buttonValue;\n storage.setValue(id, {\n value: value\n });\n }\n\n var element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.disabled = data.readOnly;\n element.type = \"radio\";\n element.name = data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.setAttribute(\"id\", id);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", function (event) {\n var _event$target2 = event.target,\n name = _event$target2.name,\n checked = _event$target2.checked;\n\n var _iterator11 = _createForOfIteratorHelper(_this9._getElementsByName(name, id)),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var radio = _step11.value;\n storage.setValue(radio.id, {\n value: false\n });\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", function (event) {\n var defaultValue = data.defaultFieldValue;\n event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\n });\n\n if (this.enableScripting && this.hasJSActions) {\n var pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", function (jsEvent) {\n var actions = {\n value: function value(event) {\n var checked = pdfButtonValue === event.detail.value;\n\n var _iterator12 = _createForOfIteratorHelper(_this9._getElementsByName(event.target.name)),\n _step12;\n\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var radio = _step12.value;\n var curChecked = checked && radio.id === id;\n\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n\n storage.setValue(radio.id, {\n value: curChecked\n });\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n }\n };\n\n _this9._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n this._setEventListeners(element, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], function (event) {\n return event.target.checked;\n });\n }\n\n this._setBackgroundColor(element);\n\n this.container.appendChild(element);\n return this.container;\n }\n }]);\n\n return RadioButtonWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar PushButtonWidgetAnnotationElement = /*#__PURE__*/function (_LinkAnnotationElemen) {\n _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen);\n\n var _super7 = _createSuper(PushButtonWidgetAnnotationElement);\n\n function PushButtonWidgetAnnotationElement(parameters) {\n _classCallCheck(this, PushButtonWidgetAnnotationElement);\n\n return _super7.call(this, parameters, {\n ignoreBorder: parameters.data.hasAppearance\n });\n }\n\n _createClass(PushButtonWidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n var container = _get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), \"render\", this).call(this);\n\n container.className = \"buttonWidgetAnnotation pushButton\";\n\n if (this.data.alternativeText) {\n container.title = this.data.alternativeText;\n }\n\n return container;\n }\n }]);\n\n return PushButtonWidgetAnnotationElement;\n}(LinkAnnotationElement);\n\nvar ChoiceWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem4) {\n _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4);\n\n var _super8 = _createSuper(ChoiceWidgetAnnotationElement);\n\n function ChoiceWidgetAnnotationElement(parameters) {\n _classCallCheck(this, ChoiceWidgetAnnotationElement);\n\n return _super8.call(this, parameters, {\n isRenderable: parameters.renderForms\n });\n }\n\n _createClass(ChoiceWidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n var _this10 = this;\n\n this.container.className = \"choiceWidgetAnnotation\";\n var storage = this.annotationStorage;\n var id = this.data.id;\n storage.getValue(id, {\n value: this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : undefined\n });\n var fontSize = this.data.defaultAppearanceData.fontSize;\n\n if (!fontSize) {\n fontSize = 9;\n }\n\n var fontSizeStyle = \"calc(\".concat(fontSize, \"px * var(--zoom-factor))\");\n var selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.disabled = this.data.readOnly;\n selectElement.name = this.data.fieldName;\n selectElement.setAttribute(\"id\", id);\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n selectElement.style.fontSize = \"\".concat(fontSize, \"px\");\n\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n selectElement.addEventListener(\"resetform\", function (event) {\n var defaultValue = _this10.data.defaultFieldValue;\n\n var _iterator13 = _createForOfIteratorHelper(selectElement.options),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var option = _step13.value;\n option.selected = option.value === defaultValue;\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n });\n\n var _iterator14 = _createForOfIteratorHelper(this.data.options),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var option = _step14.value;\n var optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n\n if (this.data.combo) {\n optionElement.style.fontSize = fontSizeStyle;\n }\n\n if (this.data.fieldValue.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n }\n\n selectElement.appendChild(optionElement);\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n\n var getValue = function getValue(event, isExport) {\n var name = isExport ? \"value\" : \"textContent\";\n var options = event.target.options;\n\n if (!event.target.multiple) {\n return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n }\n\n return Array.prototype.filter.call(options, function (option) {\n return option.selected;\n }).map(function (option) {\n return option[name];\n });\n };\n\n var getItems = function getItems(event) {\n var options = event.target.options;\n return Array.prototype.map.call(options, function (option) {\n return {\n displayValue: option.textContent,\n exportValue: option.value\n };\n });\n };\n\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", function (jsEvent) {\n var actions = {\n value: function value(event) {\n var value = event.detail.value;\n var values = new Set(Array.isArray(value) ? value : [value]);\n\n var _iterator15 = _createForOfIteratorHelper(selectElement.options),\n _step15;\n\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var option = _step15.value;\n option.selected = values.has(option.value);\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n\n storage.setValue(id, {\n value: getValue(event, true)\n });\n },\n multipleSelection: function multipleSelection(event) {\n selectElement.multiple = true;\n },\n remove: function remove(event) {\n var options = selectElement.options;\n var index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n\n if (options.length > 0) {\n var i = Array.prototype.findIndex.call(options, function (option) {\n return option.selected;\n });\n\n if (i === -1) {\n options[0].selected = true;\n }\n }\n\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n clear: function clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n\n storage.setValue(id, {\n value: null,\n items: []\n });\n },\n insert: function insert(event) {\n var _event$detail$insert = event.detail.insert,\n index = _event$detail$insert.index,\n displayValue = _event$detail$insert.displayValue,\n exportValue = _event$detail$insert.exportValue;\n var optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.insertBefore(optionElement, selectElement.children[index]);\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n items: function items(event) {\n var items = event.detail.items;\n\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n\n var _iterator16 = _createForOfIteratorHelper(items),\n _step16;\n\n try {\n for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n var item = _step16.value;\n var displayValue = item.displayValue,\n exportValue = item.exportValue;\n var optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.appendChild(optionElement);\n }\n } catch (err) {\n _iterator16.e(err);\n } finally {\n _iterator16.f();\n }\n\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n indices: function indices(event) {\n var indices = new Set(event.detail.indices);\n\n var _iterator17 = _createForOfIteratorHelper(event.target.options),\n _step17;\n\n try {\n for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {\n var option = _step17.value;\n option.selected = indices.has(option.index);\n }\n } catch (err) {\n _iterator17.e(err);\n } finally {\n _iterator17.f();\n }\n\n storage.setValue(id, {\n value: getValue(event, true)\n });\n },\n editable: function editable(event) {\n event.target.disabled = !event.detail.editable;\n }\n };\n\n _this10._dispatchEventFromSandbox(actions, jsEvent);\n });\n selectElement.addEventListener(\"input\", function (event) {\n var _this10$linkService$e;\n\n var exportValue = getValue(event, true);\n var value = getValue(event, false);\n storage.setValue(id, {\n value: exportValue\n });\n (_this10$linkService$e = _this10.linkService.eventBus) === null || _this10$linkService$e === void 0 ? void 0 : _this10$linkService$e.dispatch(\"dispatcheventinsandbox\", {\n source: _this10,\n detail: {\n id: id,\n name: \"Keystroke\",\n value: value,\n changeEx: exportValue,\n willCommit: true,\n commitKey: 1,\n keyDown: false\n }\n });\n });\n\n this._setEventListeners(selectElement, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"]], function (event) {\n return event.target.checked;\n });\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: getValue(event)\n });\n });\n }\n\n this._setBackgroundColor(selectElement);\n\n this.container.appendChild(selectElement);\n return this.container;\n }\n }]);\n\n return ChoiceWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar PopupAnnotationElement = /*#__PURE__*/function (_AnnotationElement4) {\n _inherits(PopupAnnotationElement, _AnnotationElement4);\n\n var _super9 = _createSuper(PopupAnnotationElement);\n\n function PopupAnnotationElement(parameters) {\n var _parameters$data$titl2, _parameters$data$cont2, _parameters$data$rich2;\n\n _classCallCheck(this, PopupAnnotationElement);\n\n var isRenderable = !!((_parameters$data$titl2 = parameters.data.titleObj) !== null && _parameters$data$titl2 !== void 0 && _parameters$data$titl2.str || (_parameters$data$cont2 = parameters.data.contentsObj) !== null && _parameters$data$cont2 !== void 0 && _parameters$data$cont2.str || (_parameters$data$rich2 = parameters.data.richText) !== null && _parameters$data$rich2 !== void 0 && _parameters$data$rich2.str);\n return _super9.call(this, parameters, {\n isRenderable: isRenderable\n });\n }\n\n _createClass(PopupAnnotationElement, [{\n key: \"render\",\n value: function render() {\n var IGNORE_TYPES = [\"Line\", \"Square\", \"Circle\", \"PolyLine\", \"Polygon\", \"Ink\"];\n this.container.className = \"popupAnnotation\";\n\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n\n var selector = \"[data-annotation-id=\\\"\".concat(this.data.parentId, \"\\\"]\");\n var parentElements = this.layer.querySelectorAll(selector);\n\n if (parentElements.length === 0) {\n return this.container;\n }\n\n var popup = new PopupElement({\n container: this.container,\n trigger: Array.from(parentElements),\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText\n });\n var page = this.page;\n\n var rect = _util.Util.normalizeRect([this.data.parentRect[0], page.view[3] - this.data.parentRect[1] + page.view[1], this.data.parentRect[2], page.view[3] - this.data.parentRect[3] + page.view[1]]);\n\n var popupLeft = rect[0] + this.data.parentRect[2] - this.data.parentRect[0];\n var popupTop = rect[1];\n this.container.style.transformOrigin = \"\".concat(-popupLeft, \"px \").concat(-popupTop, \"px\");\n this.container.style.left = \"\".concat(popupLeft, \"px\");\n this.container.style.top = \"\".concat(popupTop, \"px\");\n this.container.appendChild(popup.render());\n return this.container;\n }\n }]);\n\n return PopupAnnotationElement;\n}(AnnotationElement);\n\nvar PopupElement = /*#__PURE__*/function () {\n function PopupElement(parameters) {\n _classCallCheck(this, PopupElement);\n\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.titleObj = parameters.titleObj;\n this.modificationDate = parameters.modificationDate;\n this.contentsObj = parameters.contentsObj;\n this.richText = parameters.richText;\n this.hideWrapper = parameters.hideWrapper || false;\n this.pinned = false;\n }\n\n _createClass(PopupElement, [{\n key: \"render\",\n value: function render() {\n var _this$richText, _this$contentsObj;\n\n var BACKGROUND_ENLIGHT = 0.7;\n var wrapper = document.createElement(\"div\");\n wrapper.className = \"popupWrapper\";\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.hidden = true;\n var popup = document.createElement(\"div\");\n popup.className = \"popup\";\n var color = this.color;\n\n if (color) {\n var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = _util.Util.makeHexColor(r | 0, g | 0, b | 0);\n }\n\n var title = document.createElement(\"h1\");\n title.dir = this.titleObj.dir;\n title.textContent = this.titleObj.str;\n popup.appendChild(title);\n\n var dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);\n\n if (dateObject) {\n var modificationDate = document.createElement(\"span\");\n modificationDate.className = \"popupDate\";\n modificationDate.textContent = \"{{date}}, {{time}}\";\n modificationDate.dataset.l10nId = \"annotation_date_string\";\n modificationDate.dataset.l10nArgs = JSON.stringify({\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString()\n });\n popup.appendChild(modificationDate);\n }\n\n if ((_this$richText = this.richText) !== null && _this$richText !== void 0 && _this$richText.str && (!((_this$contentsObj = this.contentsObj) !== null && _this$contentsObj !== void 0 && _this$contentsObj.str) || this.contentsObj.str === this.richText.str)) {\n _xfa_layer.XfaLayer.render({\n xfaHtml: this.richText.html,\n intent: \"richText\",\n div: popup\n });\n\n popup.lastChild.className = \"richText popupContent\";\n } else {\n var contents = this._formatContents(this.contentsObj);\n\n popup.appendChild(contents);\n }\n\n if (!Array.isArray(this.trigger)) {\n this.trigger = [this.trigger];\n }\n\n var _iterator18 = _createForOfIteratorHelper(this.trigger),\n _step18;\n\n try {\n for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {\n var element = _step18.value;\n element.addEventListener(\"click\", this._toggle.bind(this));\n element.addEventListener(\"mouseover\", this._show.bind(this, false));\n element.addEventListener(\"mouseout\", this._hide.bind(this, false));\n }\n } catch (err) {\n _iterator18.e(err);\n } finally {\n _iterator18.f();\n }\n\n popup.addEventListener(\"click\", this._hide.bind(this, true));\n wrapper.appendChild(popup);\n return wrapper;\n }\n }, {\n key: \"_formatContents\",\n value: function _formatContents(_ref2) {\n var str = _ref2.str,\n dir = _ref2.dir;\n var p = document.createElement(\"p\");\n p.className = \"popupContent\";\n p.dir = dir;\n var lines = str.split(/(?:\\r\\n?|\\n)/);\n\n for (var i = 0, ii = lines.length; i < ii; ++i) {\n var line = lines[i];\n p.appendChild(document.createTextNode(line));\n\n if (i < ii - 1) {\n p.appendChild(document.createElement(\"br\"));\n }\n }\n\n return p;\n }\n }, {\n key: \"_toggle\",\n value: function _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n }, {\n key: \"_show\",\n value: function _show() {\n var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (pin) {\n this.pinned = true;\n }\n\n if (this.hideElement.hidden) {\n this.hideElement.hidden = false;\n this.container.style.zIndex += 1;\n }\n }\n }, {\n key: \"_hide\",\n value: function _hide() {\n var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (unpin) {\n this.pinned = false;\n }\n\n if (!this.hideElement.hidden && !this.pinned) {\n this.hideElement.hidden = true;\n this.container.style.zIndex -= 1;\n }\n }\n }]);\n\n return PopupElement;\n}();\n\nvar FreeTextAnnotationElement = /*#__PURE__*/function (_AnnotationElement5) {\n _inherits(FreeTextAnnotationElement, _AnnotationElement5);\n\n var _super10 = _createSuper(FreeTextAnnotationElement);\n\n function FreeTextAnnotationElement(parameters) {\n var _parameters$data$titl3, _parameters$data$cont3, _parameters$data$rich3;\n\n _classCallCheck(this, FreeTextAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl3 = parameters.data.titleObj) !== null && _parameters$data$titl3 !== void 0 && _parameters$data$titl3.str || (_parameters$data$cont3 = parameters.data.contentsObj) !== null && _parameters$data$cont3 !== void 0 && _parameters$data$cont3.str || (_parameters$data$rich3 = parameters.data.richText) !== null && _parameters$data$rich3 !== void 0 && _parameters$data$rich3.str);\n return _super10.call(this, parameters, {\n isRenderable: isRenderable,\n ignoreBorder: true\n });\n }\n\n _createClass(FreeTextAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"freeTextAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return FreeTextAnnotationElement;\n}(AnnotationElement);\n\nvar LineAnnotationElement = /*#__PURE__*/function (_AnnotationElement6) {\n _inherits(LineAnnotationElement, _AnnotationElement6);\n\n var _super11 = _createSuper(LineAnnotationElement);\n\n function LineAnnotationElement(parameters) {\n var _parameters$data$titl4, _parameters$data$cont4, _parameters$data$rich4;\n\n _classCallCheck(this, LineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl4 = parameters.data.titleObj) !== null && _parameters$data$titl4 !== void 0 && _parameters$data$titl4.str || (_parameters$data$cont4 = parameters.data.contentsObj) !== null && _parameters$data$cont4 !== void 0 && _parameters$data$cont4.str || (_parameters$data$rich4 = parameters.data.richText) !== null && _parameters$data$rich4 !== void 0 && _parameters$data$rich4.str);\n return _super11.call(this, parameters, {\n isRenderable: isRenderable,\n ignoreBorder: true\n });\n }\n\n _createClass(LineAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"lineAnnotation\";\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n line.setAttribute(\"fill\", \"transparent\");\n svg.appendChild(line);\n this.container.append(svg);\n\n this._createPopup(line, data);\n\n return this.container;\n }\n }]);\n\n return LineAnnotationElement;\n}(AnnotationElement);\n\nvar SquareAnnotationElement = /*#__PURE__*/function (_AnnotationElement7) {\n _inherits(SquareAnnotationElement, _AnnotationElement7);\n\n var _super12 = _createSuper(SquareAnnotationElement);\n\n function SquareAnnotationElement(parameters) {\n var _parameters$data$titl5, _parameters$data$cont5, _parameters$data$rich5;\n\n _classCallCheck(this, SquareAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl5 = parameters.data.titleObj) !== null && _parameters$data$titl5 !== void 0 && _parameters$data$titl5.str || (_parameters$data$cont5 = parameters.data.contentsObj) !== null && _parameters$data$cont5 !== void 0 && _parameters$data$cont5.str || (_parameters$data$rich5 = parameters.data.richText) !== null && _parameters$data$rich5 !== void 0 && _parameters$data$rich5.str);\n return _super12.call(this, parameters, {\n isRenderable: isRenderable,\n ignoreBorder: true\n });\n }\n\n _createClass(SquareAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"squareAnnotation\";\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var borderWidth = data.borderStyle.width;\n var square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"transparent\");\n svg.appendChild(square);\n this.container.append(svg);\n\n this._createPopup(square, data);\n\n return this.container;\n }\n }]);\n\n return SquareAnnotationElement;\n}(AnnotationElement);\n\nvar CircleAnnotationElement = /*#__PURE__*/function (_AnnotationElement8) {\n _inherits(CircleAnnotationElement, _AnnotationElement8);\n\n var _super13 = _createSuper(CircleAnnotationElement);\n\n function CircleAnnotationElement(parameters) {\n var _parameters$data$titl6, _parameters$data$cont6, _parameters$data$rich6;\n\n _classCallCheck(this, CircleAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl6 = parameters.data.titleObj) !== null && _parameters$data$titl6 !== void 0 && _parameters$data$titl6.str || (_parameters$data$cont6 = parameters.data.contentsObj) !== null && _parameters$data$cont6 !== void 0 && _parameters$data$cont6.str || (_parameters$data$rich6 = parameters.data.richText) !== null && _parameters$data$rich6 !== void 0 && _parameters$data$rich6.str);\n return _super13.call(this, parameters, {\n isRenderable: isRenderable,\n ignoreBorder: true\n });\n }\n\n _createClass(CircleAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"circleAnnotation\";\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var borderWidth = data.borderStyle.width;\n var circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"transparent\");\n svg.appendChild(circle);\n this.container.append(svg);\n\n this._createPopup(circle, data);\n\n return this.container;\n }\n }]);\n\n return CircleAnnotationElement;\n}(AnnotationElement);\n\nvar PolylineAnnotationElement = /*#__PURE__*/function (_AnnotationElement9) {\n _inherits(PolylineAnnotationElement, _AnnotationElement9);\n\n var _super14 = _createSuper(PolylineAnnotationElement);\n\n function PolylineAnnotationElement(parameters) {\n var _parameters$data$titl7, _parameters$data$cont7, _parameters$data$rich7;\n\n var _this11;\n\n _classCallCheck(this, PolylineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl7 = parameters.data.titleObj) !== null && _parameters$data$titl7 !== void 0 && _parameters$data$titl7.str || (_parameters$data$cont7 = parameters.data.contentsObj) !== null && _parameters$data$cont7 !== void 0 && _parameters$data$cont7.str || (_parameters$data$rich7 = parameters.data.richText) !== null && _parameters$data$rich7 !== void 0 && _parameters$data$rich7.str);\n _this11 = _super14.call(this, parameters, {\n isRenderable: isRenderable,\n ignoreBorder: true\n });\n _this11.containerClassName = \"polylineAnnotation\";\n _this11.svgElementName = \"svg:polyline\";\n return _this11;\n }\n\n _createClass(PolylineAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = this.containerClassName;\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var points = [];\n\n var _iterator19 = _createForOfIteratorHelper(data.vertices),\n _step19;\n\n try {\n for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {\n var coordinate = _step19.value;\n var x = coordinate.x - data.rect[0];\n var y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n } catch (err) {\n _iterator19.e(err);\n } finally {\n _iterator19.f();\n }\n\n points = points.join(\" \");\n var polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.appendChild(polyline);\n this.container.append(svg);\n\n this._createPopup(polyline, data);\n\n return this.container;\n }\n }]);\n\n return PolylineAnnotationElement;\n}(AnnotationElement);\n\nvar PolygonAnnotationElement = /*#__PURE__*/function (_PolylineAnnotationEl) {\n _inherits(PolygonAnnotationElement, _PolylineAnnotationEl);\n\n var _super15 = _createSuper(PolygonAnnotationElement);\n\n function PolygonAnnotationElement(parameters) {\n var _this12;\n\n _classCallCheck(this, PolygonAnnotationElement);\n\n _this12 = _super15.call(this, parameters);\n _this12.containerClassName = \"polygonAnnotation\";\n _this12.svgElementName = \"svg:polygon\";\n return _this12;\n }\n\n return PolygonAnnotationElement;\n}(PolylineAnnotationElement);\n\nvar CaretAnnotationElement = /*#__PURE__*/function (_AnnotationElement10) {\n _inherits(CaretAnnotationElement, _AnnotationElement10);\n\n var _super16 = _createSuper(CaretAnnotationElement);\n\n function CaretAnnotationElement(parameters) {\n var _parameters$data$titl8, _parameters$data$cont8, _parameters$data$rich8;\n\n _classCallCheck(this, CaretAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl8 = parameters.data.titleObj) !== null && _parameters$data$titl8 !== void 0 && _parameters$data$titl8.str || (_parameters$data$cont8 = parameters.data.contentsObj) !== null && _parameters$data$cont8 !== void 0 && _parameters$data$cont8.str || (_parameters$data$rich8 = parameters.data.richText) !== null && _parameters$data$rich8 !== void 0 && _parameters$data$rich8.str);\n return _super16.call(this, parameters, {\n isRenderable: isRenderable,\n ignoreBorder: true\n });\n }\n\n _createClass(CaretAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"caretAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return CaretAnnotationElement;\n}(AnnotationElement);\n\nvar InkAnnotationElement = /*#__PURE__*/function (_AnnotationElement11) {\n _inherits(InkAnnotationElement, _AnnotationElement11);\n\n var _super17 = _createSuper(InkAnnotationElement);\n\n function InkAnnotationElement(parameters) {\n var _parameters$data$titl9, _parameters$data$cont9, _parameters$data$rich9;\n\n var _this13;\n\n _classCallCheck(this, InkAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl9 = parameters.data.titleObj) !== null && _parameters$data$titl9 !== void 0 && _parameters$data$titl9.str || (_parameters$data$cont9 = parameters.data.contentsObj) !== null && _parameters$data$cont9 !== void 0 && _parameters$data$cont9.str || (_parameters$data$rich9 = parameters.data.richText) !== null && _parameters$data$rich9 !== void 0 && _parameters$data$rich9.str);\n _this13 = _super17.call(this, parameters, {\n isRenderable: isRenderable,\n ignoreBorder: true\n });\n _this13.containerClassName = \"inkAnnotation\";\n _this13.svgElementName = \"svg:polyline\";\n return _this13;\n }\n\n _createClass(InkAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = this.containerClassName;\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n\n var _iterator20 = _createForOfIteratorHelper(data.inkLists),\n _step20;\n\n try {\n for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {\n var inkList = _step20.value;\n var points = [];\n\n var _iterator21 = _createForOfIteratorHelper(inkList),\n _step21;\n\n try {\n for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {\n var coordinate = _step21.value;\n var x = coordinate.x - data.rect[0];\n var y = data.rect[3] - coordinate.y;\n points.push(\"\".concat(x, \",\").concat(y));\n }\n } catch (err) {\n _iterator21.e(err);\n } finally {\n _iterator21.f();\n }\n\n points = points.join(\" \");\n var polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n\n this._createPopup(polyline, data);\n\n svg.appendChild(polyline);\n }\n } catch (err) {\n _iterator20.e(err);\n } finally {\n _iterator20.f();\n }\n\n this.container.append(svg);\n return this.container;\n }\n }]);\n\n return InkAnnotationElement;\n}(AnnotationElement);\n\nvar HighlightAnnotationElement = /*#__PURE__*/function (_AnnotationElement12) {\n _inherits(HighlightAnnotationElement, _AnnotationElement12);\n\n var _super18 = _createSuper(HighlightAnnotationElement);\n\n function HighlightAnnotationElement(parameters) {\n var _parameters$data$titl10, _parameters$data$cont10, _parameters$data$rich10;\n\n _classCallCheck(this, HighlightAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl10 = parameters.data.titleObj) !== null && _parameters$data$titl10 !== void 0 && _parameters$data$titl10.str || (_parameters$data$cont10 = parameters.data.contentsObj) !== null && _parameters$data$cont10 !== void 0 && _parameters$data$cont10.str || (_parameters$data$rich10 = parameters.data.richText) !== null && _parameters$data$rich10 !== void 0 && _parameters$data$rich10.str);\n return _super18.call(this, parameters, {\n isRenderable: isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n _createClass(HighlightAnnotationElement, [{\n key: \"render\",\n value: function render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"highlightAnnotation\");\n }\n\n this.container.className = \"highlightAnnotation\";\n return this.container;\n }\n }]);\n\n return HighlightAnnotationElement;\n}(AnnotationElement);\n\nvar UnderlineAnnotationElement = /*#__PURE__*/function (_AnnotationElement13) {\n _inherits(UnderlineAnnotationElement, _AnnotationElement13);\n\n var _super19 = _createSuper(UnderlineAnnotationElement);\n\n function UnderlineAnnotationElement(parameters) {\n var _parameters$data$titl11, _parameters$data$cont11, _parameters$data$rich11;\n\n _classCallCheck(this, UnderlineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl11 = parameters.data.titleObj) !== null && _parameters$data$titl11 !== void 0 && _parameters$data$titl11.str || (_parameters$data$cont11 = parameters.data.contentsObj) !== null && _parameters$data$cont11 !== void 0 && _parameters$data$cont11.str || (_parameters$data$rich11 = parameters.data.richText) !== null && _parameters$data$rich11 !== void 0 && _parameters$data$rich11.str);\n return _super19.call(this, parameters, {\n isRenderable: isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n _createClass(UnderlineAnnotationElement, [{\n key: \"render\",\n value: function render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"underlineAnnotation\");\n }\n\n this.container.className = \"underlineAnnotation\";\n return this.container;\n }\n }]);\n\n return UnderlineAnnotationElement;\n}(AnnotationElement);\n\nvar SquigglyAnnotationElement = /*#__PURE__*/function (_AnnotationElement14) {\n _inherits(SquigglyAnnotationElement, _AnnotationElement14);\n\n var _super20 = _createSuper(SquigglyAnnotationElement);\n\n function SquigglyAnnotationElement(parameters) {\n var _parameters$data$titl12, _parameters$data$cont12, _parameters$data$rich12;\n\n _classCallCheck(this, SquigglyAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl12 = parameters.data.titleObj) !== null && _parameters$data$titl12 !== void 0 && _parameters$data$titl12.str || (_parameters$data$cont12 = parameters.data.contentsObj) !== null && _parameters$data$cont12 !== void 0 && _parameters$data$cont12.str || (_parameters$data$rich12 = parameters.data.richText) !== null && _parameters$data$rich12 !== void 0 && _parameters$data$rich12.str);\n return _super20.call(this, parameters, {\n isRenderable: isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n _createClass(SquigglyAnnotationElement, [{\n key: \"render\",\n value: function render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"squigglyAnnotation\");\n }\n\n this.container.className = \"squigglyAnnotation\";\n return this.container;\n }\n }]);\n\n return SquigglyAnnotationElement;\n}(AnnotationElement);\n\nvar StrikeOutAnnotationElement = /*#__PURE__*/function (_AnnotationElement15) {\n _inherits(StrikeOutAnnotationElement, _AnnotationElement15);\n\n var _super21 = _createSuper(StrikeOutAnnotationElement);\n\n function StrikeOutAnnotationElement(parameters) {\n var _parameters$data$titl13, _parameters$data$cont13, _parameters$data$rich13;\n\n _classCallCheck(this, StrikeOutAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl13 = parameters.data.titleObj) !== null && _parameters$data$titl13 !== void 0 && _parameters$data$titl13.str || (_parameters$data$cont13 = parameters.data.contentsObj) !== null && _parameters$data$cont13 !== void 0 && _parameters$data$cont13.str || (_parameters$data$rich13 = parameters.data.richText) !== null && _parameters$data$rich13 !== void 0 && _parameters$data$rich13.str);\n return _super21.call(this, parameters, {\n isRenderable: isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n _createClass(StrikeOutAnnotationElement, [{\n key: \"render\",\n value: function render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"strikeoutAnnotation\");\n }\n\n this.container.className = \"strikeoutAnnotation\";\n return this.container;\n }\n }]);\n\n return StrikeOutAnnotationElement;\n}(AnnotationElement);\n\nvar StampAnnotationElement = /*#__PURE__*/function (_AnnotationElement16) {\n _inherits(StampAnnotationElement, _AnnotationElement16);\n\n var _super22 = _createSuper(StampAnnotationElement);\n\n function StampAnnotationElement(parameters) {\n var _parameters$data$titl14, _parameters$data$cont14, _parameters$data$rich14;\n\n _classCallCheck(this, StampAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl14 = parameters.data.titleObj) !== null && _parameters$data$titl14 !== void 0 && _parameters$data$titl14.str || (_parameters$data$cont14 = parameters.data.contentsObj) !== null && _parameters$data$cont14 !== void 0 && _parameters$data$cont14.str || (_parameters$data$rich14 = parameters.data.richText) !== null && _parameters$data$rich14 !== void 0 && _parameters$data$rich14.str);\n return _super22.call(this, parameters, {\n isRenderable: isRenderable,\n ignoreBorder: true\n });\n }\n\n _createClass(StampAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = \"stampAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return StampAnnotationElement;\n}(AnnotationElement);\n\nvar FileAttachmentAnnotationElement = /*#__PURE__*/function (_AnnotationElement17) {\n _inherits(FileAttachmentAnnotationElement, _AnnotationElement17);\n\n var _super23 = _createSuper(FileAttachmentAnnotationElement);\n\n function FileAttachmentAnnotationElement(parameters) {\n var _this14$linkService$e;\n\n var _this14;\n\n _classCallCheck(this, FileAttachmentAnnotationElement);\n\n _this14 = _super23.call(this, parameters, {\n isRenderable: true\n });\n var _this14$data$file = _this14.data.file,\n filename = _this14$data$file.filename,\n content = _this14$data$file.content;\n _this14.filename = (0, _display_utils.getFilenameFromUrl)(filename);\n _this14.content = content;\n (_this14$linkService$e = _this14.linkService.eventBus) === null || _this14$linkService$e === void 0 ? void 0 : _this14$linkService$e.dispatch(\"fileattachmentannotation\", {\n source: _assertThisInitialized(_this14),\n id: (0, _util.stringToPDFString)(filename),\n filename: filename,\n content: content\n });\n return _this14;\n }\n\n _createClass(FileAttachmentAnnotationElement, [{\n key: \"render\",\n value: function render() {\n var _this$data$titleObj, _this$data$contentsOb;\n\n this.container.className = \"fileAttachmentAnnotation\";\n var trigger = document.createElement(\"div\");\n trigger.style.height = this.container.style.height;\n trigger.style.width = this.container.style.width;\n trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n if (!this.data.hasPopup && ((_this$data$titleObj = this.data.titleObj) !== null && _this$data$titleObj !== void 0 && _this$data$titleObj.str || (_this$data$contentsOb = this.data.contentsObj) !== null && _this$data$contentsOb !== void 0 && _this$data$contentsOb.str || this.data.richText)) {\n this._createPopup(trigger, this.data);\n }\n\n this.container.appendChild(trigger);\n return this.container;\n }\n }, {\n key: \"_download\",\n value: function _download() {\n var _this$downloadManager;\n\n (_this$downloadManager = this.downloadManager) === null || _this$downloadManager === void 0 ? void 0 : _this$downloadManager.openOrDownloadData(this.container, this.content, this.filename);\n }\n }]);\n\n return FileAttachmentAnnotationElement;\n}(AnnotationElement);\n\nvar AnnotationLayer = /*#__PURE__*/function () {\n function AnnotationLayer() {\n _classCallCheck(this, AnnotationLayer);\n }\n\n _createClass(AnnotationLayer, null, [{\n key: \"render\",\n value: function render(parameters) {\n var sortedAnnotations = [],\n popupAnnotations = [];\n\n var _iterator22 = _createForOfIteratorHelper(parameters.annotations),\n _step22;\n\n try {\n for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {\n var _data = _step22.value;\n\n if (!_data) {\n continue;\n }\n\n if (_data.annotationType === _util.AnnotationType.POPUP) {\n popupAnnotations.push(_data);\n continue;\n }\n\n sortedAnnotations.push(_data);\n }\n } catch (err) {\n _iterator22.e(err);\n } finally {\n _iterator22.f();\n }\n\n if (popupAnnotations.length) {\n sortedAnnotations.push.apply(sortedAnnotations, popupAnnotations);\n }\n\n var div = parameters.div;\n\n for (var _i7 = 0, _sortedAnnotations = sortedAnnotations; _i7 < _sortedAnnotations.length; _i7++) {\n var data = _sortedAnnotations[_i7];\n var element = AnnotationElementFactory.create({\n data: data,\n layer: div,\n page: parameters.page,\n viewport: parameters.viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || \"\",\n renderForms: parameters.renderForms !== false,\n svgFactory: new _display_utils.DOMSVGFactory(),\n annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage(),\n enableScripting: parameters.enableScripting,\n hasJSActions: parameters.hasJSActions,\n fieldObjects: parameters.fieldObjects,\n mouseState: parameters.mouseState || {\n isDown: false\n }\n });\n\n if (element.isRenderable) {\n var rendered = element.render();\n\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n\n if (Array.isArray(rendered)) {\n var _iterator23 = _createForOfIteratorHelper(rendered),\n _step23;\n\n try {\n for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {\n var renderedElement = _step23.value;\n div.appendChild(renderedElement);\n }\n } catch (err) {\n _iterator23.e(err);\n } finally {\n _iterator23.f();\n }\n } else {\n if (element instanceof PopupAnnotationElement) {\n div.prepend(rendered);\n } else {\n div.appendChild(rendered);\n }\n }\n }\n }\n\n _classStaticPrivateMethodGet(this, AnnotationLayer, _setAnnotationCanvasMap).call(this, div, parameters.annotationCanvasMap);\n }\n }, {\n key: \"update\",\n value: function update(parameters) {\n var page = parameters.page,\n viewport = parameters.viewport,\n annotations = parameters.annotations,\n annotationCanvasMap = parameters.annotationCanvasMap,\n div = parameters.div;\n var transform = viewport.transform;\n var matrix = \"matrix(\".concat(transform.join(\",\"), \")\");\n var scale, ownMatrix;\n\n var _iterator24 = _createForOfIteratorHelper(annotations),\n _step24;\n\n try {\n for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {\n var data = _step24.value;\n var elements = div.querySelectorAll(\"[data-annotation-id=\\\"\".concat(data.id, \"\\\"]\"));\n\n if (elements) {\n var _iterator25 = _createForOfIteratorHelper(elements),\n _step25;\n\n try {\n for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {\n var element = _step25.value;\n\n if (data.hasOwnCanvas) {\n var rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n\n if (!ownMatrix) {\n scale = Math.abs(transform[0] || transform[1]);\n var ownTransform = transform.slice();\n\n for (var i = 0; i < 4; i++) {\n ownTransform[i] = Math.sign(ownTransform[i]);\n }\n\n ownMatrix = \"matrix(\".concat(ownTransform.join(\",\"), \")\");\n }\n\n var left = rect[0] * scale;\n var top = rect[1] * scale;\n element.style.left = \"\".concat(left, \"px\");\n element.style.top = \"\".concat(top, \"px\");\n element.style.transformOrigin = \"\".concat(-left, \"px \").concat(-top, \"px\");\n element.style.transform = ownMatrix;\n } else {\n element.style.transform = matrix;\n }\n }\n } catch (err) {\n _iterator25.e(err);\n } finally {\n _iterator25.f();\n }\n }\n }\n } catch (err) {\n _iterator24.e(err);\n } finally {\n _iterator24.f();\n }\n\n _classStaticPrivateMethodGet(this, AnnotationLayer, _setAnnotationCanvasMap).call(this, div, annotationCanvasMap);\n\n div.hidden = false;\n }\n }]);\n\n return AnnotationLayer;\n}();\n\nexports.AnnotationLayer = AnnotationLayer;\n\nfunction _setAnnotationCanvasMap(div, annotationCanvasMap) {\n if (!annotationCanvasMap) {\n return;\n }\n\n var _iterator26 = _createForOfIteratorHelper(annotationCanvasMap),\n _step26;\n\n try {\n for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {\n var _step26$value = _slicedToArray(_step26.value, 2),\n id = _step26$value[0],\n canvas = _step26$value[1];\n\n var element = div.querySelector(\"[data-annotation-id=\\\"\".concat(id, \"\\\"]\"));\n\n if (!element) {\n continue;\n }\n\n var firstChild = element.firstChild;\n\n if (firstChild.nodeName === \"CANVAS\") {\n element.replaceChild(canvas, firstChild);\n } else {\n element.insertBefore(canvas, firstChild);\n }\n }\n } catch (err) {\n _iterator26.e(err);\n } finally {\n _iterator26.f();\n }\n\n annotationCanvasMap.clear();\n}\n\n/***/ }),\n/* 149 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.ColorConverters = void 0;\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, \"0\");\n}\n\nvar ColorConverters = /*#__PURE__*/function () {\n function ColorConverters() {\n _classCallCheck(this, ColorConverters);\n }\n\n _createClass(ColorConverters, null, [{\n key: \"CMYK_G\",\n value: function CMYK_G(_ref) {\n var _ref2 = _slicedToArray(_ref, 4),\n c = _ref2[0],\n y = _ref2[1],\n m = _ref2[2],\n k = _ref2[3];\n\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n }, {\n key: \"G_CMYK\",\n value: function G_CMYK(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 1),\n g = _ref4[0];\n\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n }, {\n key: \"G_RGB\",\n value: function G_RGB(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 1),\n g = _ref6[0];\n\n return [\"RGB\", g, g, g];\n }\n }, {\n key: \"G_HTML\",\n value: function G_HTML(_ref7) {\n var _ref8 = _slicedToArray(_ref7, 1),\n g = _ref8[0];\n\n var G = makeColorComp(g);\n return \"#\".concat(G).concat(G).concat(G);\n }\n }, {\n key: \"RGB_G\",\n value: function RGB_G(_ref9) {\n var _ref10 = _slicedToArray(_ref9, 3),\n r = _ref10[0],\n g = _ref10[1],\n b = _ref10[2];\n\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n }, {\n key: \"RGB_HTML\",\n value: function RGB_HTML(_ref11) {\n var _ref12 = _slicedToArray(_ref11, 3),\n r = _ref12[0],\n g = _ref12[1],\n b = _ref12[2];\n\n var R = makeColorComp(r);\n var G = makeColorComp(g);\n var B = makeColorComp(b);\n return \"#\".concat(R).concat(G).concat(B);\n }\n }, {\n key: \"T_HTML\",\n value: function T_HTML() {\n return \"#00000000\";\n }\n }, {\n key: \"CMYK_RGB\",\n value: function CMYK_RGB(_ref13) {\n var _ref14 = _slicedToArray(_ref13, 4),\n c = _ref14[0],\n y = _ref14[1],\n m = _ref14[2],\n k = _ref14[3];\n\n return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n }\n }, {\n key: \"CMYK_HTML\",\n value: function CMYK_HTML(components) {\n return this.RGB_HTML(this.CMYK_RGB(components));\n }\n }, {\n key: \"RGB_CMYK\",\n value: function RGB_CMYK(_ref15) {\n var _ref16 = _slicedToArray(_ref15, 3),\n r = _ref16[0],\n g = _ref16[1],\n b = _ref16[2];\n\n var c = 1 - r;\n var m = 1 - g;\n var y = 1 - b;\n var k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n }]);\n\n return ColorConverters;\n}();\n\nexports.ColorConverters = ColorConverters;\n\n/***/ }),\n/* 150 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaLayer = void 0;\n\nvar _util = __w_pdfjs_require__(4);\n\nvar _xfa_text = __w_pdfjs_require__(147);\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar XfaLayer = /*#__PURE__*/function () {\n function XfaLayer() {\n _classCallCheck(this, XfaLayer);\n }\n\n _createClass(XfaLayer, null, [{\n key: \"setupStorage\",\n value: function setupStorage(html, id, element, storage, intent) {\n var storedData = storage.getValue(id, {\n value: null\n });\n\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n break;\n\n case \"input\":\n if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n html.removeAttribute(\"checked\");\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"change\", function (event) {\n storage.setValue(id, {\n value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n }\n\n break;\n\n case \"select\":\n if (storedData.value !== null) {\n var _iterator = _createForOfIteratorHelper(element.children),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var option = _step.value;\n\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n html.addEventListener(\"input\", function (event) {\n var options = event.target.options;\n var value = options.selectedIndex === -1 ? \"\" : options[options.selectedIndex].value;\n storage.setValue(id, {\n value: value\n });\n });\n break;\n }\n }\n }, {\n key: \"setAttributes\",\n value: function setAttributes(_ref) {\n var html = _ref.html,\n element = _ref.element,\n _ref$storage = _ref.storage,\n storage = _ref$storage === void 0 ? null : _ref$storage,\n intent = _ref.intent,\n linkService = _ref.linkService;\n var attributes = element.attributes;\n var isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n\n if (attributes.type === \"radio\") {\n attributes.name = \"\".concat(attributes.name, \"-\").concat(intent);\n }\n\n for (var _i = 0, _Object$entries = Object.entries(attributes); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n key = _Object$entries$_i[0],\n value = _Object$entries$_i[1];\n\n if (value === null || value === undefined || key === \"dataId\") {\n continue;\n }\n\n if (key !== \"style\") {\n if (key === \"textContent\") {\n html.textContent = value;\n } else if (key === \"class\") {\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n } else {\n if (isHTMLAnchorElement && (key === \"href\" || key === \"newWindow\")) {\n continue;\n }\n\n html.setAttribute(key, value);\n }\n } else {\n Object.assign(html.style, value);\n }\n }\n\n if (isHTMLAnchorElement) {\n var _linkService$addLinkA;\n\n if (!linkService.addLinkAttributes) {\n (0, _util.warn)(\"XfaLayer.setAttribute - missing `addLinkAttributes`-method on the `linkService`-instance.\");\n }\n\n (_linkService$addLinkA = linkService.addLinkAttributes) === null || _linkService$addLinkA === void 0 ? void 0 : _linkService$addLinkA.call(linkService, html, attributes.href, attributes.newWindow);\n }\n\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n }, {\n key: \"render\",\n value: function render(parameters) {\n var storage = parameters.annotationStorage;\n var linkService = parameters.linkService;\n var root = parameters.xfaHtml;\n var intent = parameters.intent || \"display\";\n var rootHtml = document.createElement(root.name);\n\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent: intent,\n linkService: linkService\n });\n }\n\n var stack = [[root, -1, rootHtml]];\n var rootDiv = parameters.div;\n rootDiv.appendChild(rootHtml);\n\n if (parameters.viewport) {\n var transform = \"matrix(\".concat(parameters.viewport.transform.join(\",\"), \")\");\n rootDiv.style.transform = transform;\n }\n\n if (intent !== \"richText\") {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n\n var textDivs = [];\n\n while (stack.length > 0) {\n var _child$attributes;\n\n var _stack = _slicedToArray(stack[stack.length - 1], 3),\n parent = _stack[0],\n i = _stack[1],\n html = _stack[2];\n\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n\n var child = parent.children[++stack[stack.length - 1][1]];\n\n if (child === null) {\n continue;\n }\n\n var name = child.name;\n\n if (name === \"#text\") {\n var node = document.createTextNode(child.value);\n textDivs.push(node);\n html.appendChild(node);\n continue;\n }\n\n var childHtml = void 0;\n\n if (child !== null && child !== void 0 && (_child$attributes = child.attributes) !== null && _child$attributes !== void 0 && _child$attributes.xmlns) {\n childHtml = document.createElementNS(child.attributes.xmlns, name);\n } else {\n childHtml = document.createElement(name);\n }\n\n html.appendChild(childHtml);\n\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage: storage,\n intent: intent,\n linkService: linkService\n });\n }\n\n if (child.children && child.children.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n var _node = document.createTextNode(child.value);\n\n if (_xfa_text.XfaText.shouldBuildText(name)) {\n textDivs.push(_node);\n }\n\n childHtml.appendChild(_node);\n }\n }\n\n var _iterator2 = _createForOfIteratorHelper(rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var el = _step2.value;\n el.setAttribute(\"readOnly\", true);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return {\n textDivs: textDivs\n };\n }\n }, {\n key: \"update\",\n value: function update(parameters) {\n var transform = \"matrix(\".concat(parameters.viewport.transform.join(\",\"), \")\");\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n }]);\n\n return XfaLayer;\n}();\n\nexports.XfaLayer = XfaLayer;\n\n/***/ }),\n/* 151 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.renderTextLayer = renderTextLayer;\n\nvar _util = __w_pdfjs_require__(4);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar MAX_TEXT_DIVS_TO_RENDER = 100000;\nvar DEFAULT_FONT_SIZE = 30;\nvar DEFAULT_FONT_ASCENT = 0.8;\nvar ascentCache = new Map();\nvar AllWhitespaceRegexp = /^\\s+$/g;\n\nfunction getAscent(fontFamily, ctx) {\n var cachedAscent = ascentCache.get(fontFamily);\n\n if (cachedAscent) {\n return cachedAscent;\n }\n\n ctx.save();\n ctx.font = \"\".concat(DEFAULT_FONT_SIZE, \"px \").concat(fontFamily);\n var metrics = ctx.measureText(\"\");\n var ascent = metrics.fontBoundingBoxAscent;\n var descent = Math.abs(metrics.fontBoundingBoxDescent);\n\n if (ascent) {\n ctx.restore();\n var ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n var pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n descent = 0;\n\n for (var i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n\n for (var _i = 0, ii = pixels.length; _i < ii; _i += 4) {\n if (pixels[_i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(_i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n\n ctx.restore();\n\n if (ascent) {\n var _ratio = ascent / (ascent + descent);\n\n ascentCache.set(fontFamily, _ratio);\n return _ratio;\n }\n\n ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n return DEFAULT_FONT_ASCENT;\n}\n\nfunction appendText(task, geom, styles, ctx) {\n var textDiv = document.createElement(\"span\");\n var textDivProperties = task._enhanceTextSelection ? {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1\n } : {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL\n };\n\n task._textDivs.push(textDiv);\n\n var tx = _util.Util.transform(task._viewport.transform, geom.transform);\n\n var angle = Math.atan2(tx[1], tx[0]);\n var style = styles[geom.fontName];\n\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n\n var fontHeight = Math.hypot(tx[2], tx[3]);\n var fontAscent = fontHeight * getAscent(style.fontFamily, ctx);\n var left, top;\n\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n\n textDiv.style.left = \"\".concat(left, \"px\");\n textDiv.style.top = \"\".concat(top, \"px\");\n textDiv.style.fontSize = \"\".concat(fontHeight, \"px\");\n textDiv.style.fontFamily = style.fontFamily;\n textDiv.setAttribute(\"role\", \"presentation\");\n textDiv.textContent = geom.str;\n textDiv.dir = geom.dir;\n\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n\n var shouldScaleText = false;\n\n if (geom.str.length > 1 || task._enhanceTextSelection && AllWhitespaceRegexp.test(geom.str)) {\n shouldScaleText = true;\n } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n var absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n\n if (shouldScaleText) {\n if (style.vertical) {\n textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n } else {\n textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n }\n }\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection && textDivProperties.hasText) {\n var angleCos = 1,\n angleSin = 0;\n\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n\n var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n var divHeight = fontHeight;\n var m, b;\n\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n } else {\n b = [left, top, left + divWidth, top + divHeight];\n }\n\n task._bounds.push({\n left: b[0],\n top: b[1],\n right: b[2],\n bottom: b[3],\n div: textDiv,\n size: [divWidth, divHeight],\n m: m\n });\n }\n}\n\nfunction render(task) {\n if (task._canceled) {\n return;\n }\n\n var textDivs = task._textDivs;\n var capability = task._capability;\n var textDivsLength = textDivs.length;\n\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n task._renderingDone = true;\n capability.resolve();\n return;\n }\n\n if (!task._textContentStream) {\n for (var i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n\n task._renderingDone = true;\n capability.resolve();\n}\n\nfunction findPositiveMin(ts, offset, count) {\n var result = 0;\n\n for (var i = 0; i < count; i++) {\n var t = ts[offset++];\n\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n\n return result;\n}\n\nfunction expand(task) {\n var bounds = task._bounds;\n var viewport = task._viewport;\n var expanded = expandBounds(viewport.width, viewport.height, bounds);\n\n for (var i = 0; i < expanded.length; i++) {\n var div = bounds[i].div;\n\n var divProperties = task._textDivProperties.get(div);\n\n if (divProperties.angle === 0) {\n divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n divProperties.paddingTop = bounds[i].top - expanded[i].top;\n divProperties.paddingRight = expanded[i].right - bounds[i].right;\n divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n\n task._textDivProperties.set(div, divProperties);\n\n continue;\n }\n\n var e = expanded[i],\n b = bounds[i];\n var m = b.m,\n c = m[0],\n s = m[1];\n var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n var ts = new Float64Array(64);\n\n for (var j = 0, jj = points.length; j < jj; j++) {\n var t = _util.Util.applyTransform(points[j], m);\n\n ts[j + 0] = c && (e.left - t[0]) / c;\n ts[j + 4] = s && (e.top - t[1]) / s;\n ts[j + 8] = c && (e.right - t[0]) / c;\n ts[j + 12] = s && (e.bottom - t[1]) / s;\n ts[j + 16] = s && (e.left - t[0]) / -s;\n ts[j + 20] = c && (e.top - t[1]) / c;\n ts[j + 24] = s && (e.right - t[0]) / -s;\n ts[j + 28] = c && (e.bottom - t[1]) / c;\n ts[j + 32] = c && (e.left - t[0]) / -c;\n ts[j + 36] = s && (e.top - t[1]) / -s;\n ts[j + 40] = c && (e.right - t[0]) / -c;\n ts[j + 44] = s && (e.bottom - t[1]) / -s;\n ts[j + 48] = s && (e.left - t[0]) / s;\n ts[j + 52] = c && (e.top - t[1]) / -c;\n ts[j + 56] = s && (e.right - t[0]) / s;\n ts[j + 60] = c && (e.bottom - t[1]) / -c;\n }\n\n var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n\n task._textDivProperties.set(div, divProperties);\n }\n}\n\nfunction expandBounds(width, height, boxes) {\n var bounds = boxes.map(function (box, i) {\n return {\n x1: box.left,\n y1: box.top,\n x2: box.right,\n y2: box.bottom,\n index: i,\n x1New: undefined,\n x2New: undefined\n };\n });\n expandBoundsLTR(width, bounds);\n var expanded = new Array(boxes.length);\n\n var _iterator = _createForOfIteratorHelper(bounds),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var b = _step.value;\n var i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0\n };\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n boxes.map(function (box, i) {\n var e = expanded[i],\n b = bounds[i];\n b.x1 = box.top;\n b.y1 = width - e.right;\n b.x2 = box.bottom;\n b.y2 = width - e.left;\n b.index = i;\n b.x1New = undefined;\n b.x2New = undefined;\n });\n expandBoundsLTR(height, bounds);\n\n var _iterator2 = _createForOfIteratorHelper(bounds),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _b = _step2.value;\n var _i2 = _b.index;\n expanded[_i2].top = _b.x1New;\n expanded[_i2].bottom = _b.x2New;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return expanded;\n}\n\nfunction expandBoundsLTR(width, bounds) {\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n var fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0\n };\n var horizon = [{\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary\n }];\n\n var _iterator3 = _createForOfIteratorHelper(bounds),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var boundary = _step3.value;\n var i = 0;\n\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n\n var j = horizon.length - 1;\n\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n var _horizonPart = void 0,\n _affectedBoundary = void 0;\n\n var q = void 0,\n k = void 0,\n maxXNew = -Infinity;\n\n for (q = i; q <= j; q++) {\n _horizonPart = horizon[q];\n _affectedBoundary = _horizonPart.boundary;\n var xNew = void 0;\n\n if (_affectedBoundary.x2 > boundary.x1) {\n xNew = _affectedBoundary.index > boundary.index ? _affectedBoundary.x1New : boundary.x1;\n } else if (_affectedBoundary.x2New === undefined) {\n xNew = (_affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n xNew = _affectedBoundary.x2New;\n }\n\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n boundary.x1New = maxXNew;\n\n for (q = i; q <= j; q++) {\n _horizonPart = horizon[q];\n _affectedBoundary = _horizonPart.boundary;\n\n if (_affectedBoundary.x2New === undefined) {\n if (_affectedBoundary.x2 > boundary.x1) {\n if (_affectedBoundary.index > boundary.index) {\n _affectedBoundary.x2New = _affectedBoundary.x2;\n }\n } else {\n _affectedBoundary.x2New = maxXNew;\n }\n } else if (_affectedBoundary.x2New > maxXNew) {\n _affectedBoundary.x2New = Math.max(maxXNew, _affectedBoundary.x2);\n }\n }\n\n var changedHorizon = [];\n var lastBoundary = null;\n\n for (q = i; q <= j; q++) {\n _horizonPart = horizon[q];\n _affectedBoundary = _horizonPart.boundary;\n var useBoundary = _affectedBoundary.x2 > boundary.x2 ? _affectedBoundary : boundary;\n\n if (lastBoundary === useBoundary) {\n changedHorizon[changedHorizon.length - 1].end = _horizonPart.end;\n } else {\n changedHorizon.push({\n start: _horizonPart.start,\n end: _horizonPart.end,\n boundary: useBoundary\n });\n lastBoundary = useBoundary;\n }\n }\n\n if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary\n });\n }\n\n if (boundary.y2 < horizon[j].end) {\n changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary\n });\n }\n\n for (q = i; q <= j; q++) {\n _horizonPart = horizon[q];\n _affectedBoundary = _horizonPart.boundary;\n\n if (_affectedBoundary.x2New !== undefined) {\n continue;\n }\n\n var used = false;\n\n for (k = i - 1; !used && k >= 0 && horizon[k].start >= _affectedBoundary.y1; k--) {\n used = horizon[k].boundary === _affectedBoundary;\n }\n\n for (k = j + 1; !used && k < horizon.length && horizon[k].end <= _affectedBoundary.y2; k++) {\n used = horizon[k].boundary === _affectedBoundary;\n }\n\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === _affectedBoundary;\n }\n\n if (!used) {\n _affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n for (var _i3 = 0, _horizon = horizon; _i3 < _horizon.length; _i3++) {\n var horizonPart = _horizon[_i3];\n var affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n }\n}\n\nvar TextLayerRenderTask = /*#__PURE__*/function () {\n function TextLayerRenderTask(_ref) {\n var _globalThis$FontInspe,\n _this = this;\n\n var textContent = _ref.textContent,\n textContentStream = _ref.textContentStream,\n container = _ref.container,\n viewport = _ref.viewport,\n textDivs = _ref.textDivs,\n textContentItemsStr = _ref.textContentItemsStr,\n enhanceTextSelection = _ref.enhanceTextSelection;\n\n _classCallCheck(this, TextLayerRenderTask);\n\n this._textContent = textContent;\n this._textContentStream = textContentStream;\n this._container = container;\n this._document = container.ownerDocument;\n this._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!((_globalThis$FontInspe = globalThis.FontInspector) !== null && _globalThis$FontInspe !== void 0 && _globalThis$FontInspe.enabled);\n this._reader = null;\n this._layoutTextLastFontSize = null;\n this._layoutTextLastFontFamily = null;\n this._layoutTextCtx = null;\n this._textDivProperties = new WeakMap();\n this._renderingDone = false;\n this._canceled = false;\n this._capability = (0, _util.createPromiseCapability)();\n this._renderTimer = null;\n this._bounds = [];\n\n this._capability.promise[\"finally\"](function () {\n if (!_this._enhanceTextSelection) {\n _this._textDivProperties = null;\n }\n\n if (_this._layoutTextCtx) {\n _this._layoutTextCtx.canvas.width = 0;\n _this._layoutTextCtx.canvas.height = 0;\n _this._layoutTextCtx = null;\n }\n })[\"catch\"](function () {});\n }\n\n _createClass(TextLayerRenderTask, [{\n key: \"promise\",\n get: function get() {\n return this._capability.promise;\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n this._canceled = true;\n\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\"))[\"catch\"](function () {});\n\n this._reader = null;\n }\n\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n\n this._capability.reject(new Error(\"TextLayer task cancelled.\"));\n }\n }, {\n key: \"_processItems\",\n value: function _processItems(items, styleCache) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i].str === undefined) {\n if (items[i].type === \"beginMarkedContentProps\" || items[i].type === \"beginMarkedContent\") {\n var parent = this._container;\n this._container = document.createElement(\"span\");\n\n this._container.classList.add(\"markedContent\");\n\n if (items[i].id !== null) {\n this._container.setAttribute(\"id\", \"\".concat(items[i].id));\n }\n\n parent.appendChild(this._container);\n } else if (items[i].type === \"endMarkedContent\") {\n this._container = this._container.parentNode;\n }\n\n continue;\n }\n\n this._textContentItemsStr.push(items[i].str);\n\n appendText(this, items[i], styleCache, this._layoutTextCtx);\n }\n }\n }, {\n key: \"_layoutText\",\n value: function _layoutText(textDiv) {\n var textDivProperties = this._textDivProperties.get(textDiv);\n\n var transform = \"\";\n\n if (textDivProperties.canvasWidth !== 0 && textDivProperties.hasText) {\n var _textDiv$style = textDiv.style,\n fontSize = _textDiv$style.fontSize,\n fontFamily = _textDiv$style.fontFamily;\n\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = \"\".concat(fontSize, \" \").concat(fontFamily);\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n\n var _this$_layoutTextCtx$ = this._layoutTextCtx.measureText(textDiv.textContent),\n width = _this$_layoutTextCtx$.width;\n\n if (width > 0) {\n var scale = textDivProperties.canvasWidth / width;\n\n if (this._enhanceTextSelection) {\n textDivProperties.scale = scale;\n }\n\n transform = \"scaleX(\".concat(scale, \")\");\n }\n }\n\n if (textDivProperties.angle !== 0) {\n transform = \"rotate(\".concat(textDivProperties.angle, \"deg) \").concat(transform);\n }\n\n if (transform.length > 0) {\n if (this._enhanceTextSelection) {\n textDivProperties.originalTransform = transform;\n }\n\n textDiv.style.transform = transform;\n }\n\n if (textDivProperties.hasText) {\n this._container.appendChild(textDiv);\n }\n\n if (textDivProperties.hasEOL) {\n var br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n\n this._container.appendChild(br);\n }\n }\n }, {\n key: \"_render\",\n value: function _render() {\n var _this2 = this;\n\n var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var capability = (0, _util.createPromiseCapability)();\n var styleCache = Object.create(null);\n\n var canvas = this._document.createElement(\"canvas\");\n\n canvas.height = canvas.width = DEFAULT_FONT_SIZE;\n canvas.mozOpaque = true;\n this._layoutTextCtx = canvas.getContext(\"2d\", {\n alpha: false\n });\n\n if (this._textContent) {\n var textItems = this._textContent.items;\n var textStyles = this._textContent.styles;\n\n this._processItems(textItems, textStyles);\n\n capability.resolve();\n } else if (this._textContentStream) {\n var pump = function pump() {\n _this2._reader.read().then(function (_ref2) {\n var value = _ref2.value,\n done = _ref2.done;\n\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n\n _this2._processItems(value.items, styleCache);\n\n pump();\n }, capability.reject);\n };\n\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error('Neither \"textContent\" nor \"textContentStream\" parameters specified.');\n }\n\n capability.promise.then(function () {\n styleCache = null;\n\n if (!timeout) {\n render(_this2);\n } else {\n _this2._renderTimer = setTimeout(function () {\n render(_this2);\n _this2._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n }\n }, {\n key: \"expandTextDivs\",\n value: function expandTextDivs() {\n var expandDivs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n\n var transformBuf = [],\n paddingBuf = [];\n\n for (var i = 0, ii = this._textDivs.length; i < ii; i++) {\n var div = this._textDivs[i];\n\n var divProps = this._textDivProperties.get(div);\n\n if (!divProps.hasText) {\n continue;\n }\n\n if (expandDivs) {\n transformBuf.length = 0;\n paddingBuf.length = 0;\n\n if (divProps.originalTransform) {\n transformBuf.push(divProps.originalTransform);\n }\n\n if (divProps.paddingTop > 0) {\n paddingBuf.push(\"\".concat(divProps.paddingTop, \"px\"));\n transformBuf.push(\"translateY(\".concat(-divProps.paddingTop, \"px)\"));\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingRight > 0) {\n paddingBuf.push(\"\".concat(divProps.paddingRight / divProps.scale, \"px\"));\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingBottom > 0) {\n paddingBuf.push(\"\".concat(divProps.paddingBottom, \"px\"));\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingLeft > 0) {\n paddingBuf.push(\"\".concat(divProps.paddingLeft / divProps.scale, \"px\"));\n transformBuf.push(\"translateX(\".concat(-divProps.paddingLeft / divProps.scale, \"px)\"));\n } else {\n paddingBuf.push(0);\n }\n\n div.style.padding = paddingBuf.join(\" \");\n\n if (transformBuf.length) {\n div.style.transform = transformBuf.join(\" \");\n }\n } else {\n div.style.padding = null;\n div.style.transform = divProps.originalTransform;\n }\n }\n }\n }]);\n\n return TextLayerRenderTask;\n}();\n\nfunction renderTextLayer(renderParameters) {\n var task = new TextLayerRenderTask({\n textContent: renderParameters.textContent,\n textContentStream: renderParameters.textContentStream,\n container: renderParameters.container,\n viewport: renderParameters.viewport,\n textDivs: renderParameters.textDivs,\n textContentItemsStr: renderParameters.textContentItemsStr,\n enhanceTextSelection: renderParameters.enhanceTextSelection\n });\n\n task._render(renderParameters.timeout);\n\n return task;\n}\n\n/***/ }),\n/* 152 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SVGGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(4);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(6);\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar SVGGraphics = function SVGGraphics() {\n _classCallCheck(this, SVGGraphics);\n\n (0, _util.unreachable)(\"Not implemented: SVGGraphics\");\n};\n\nexports.SVGGraphics = SVGGraphics;\n{\n var opListToTree = function opListToTree(opList) {\n var opTree = [];\n var tmp = [];\n\n var _iterator = _createForOfIteratorHelper(opList),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var opListElement = _step.value;\n\n if (opListElement.fn === \"save\") {\n opTree.push({\n fnId: 92,\n fn: \"group\",\n items: []\n });\n tmp.push(opTree);\n opTree = opTree[opTree.length - 1].items;\n continue;\n }\n\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return opTree;\n };\n\n var pf = function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n var s = value.toFixed(10);\n var i = s.length - 1;\n\n if (s[i] !== \"0\") {\n return s;\n }\n\n do {\n i--;\n } while (s[i] === \"0\");\n\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n };\n\n var pm = function pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n\n return \"scale(\".concat(pf(m[0]), \" \").concat(pf(m[3]), \")\");\n }\n\n if (m[0] === m[3] && m[1] === -m[2]) {\n var a = Math.acos(m[0]) * 180 / Math.PI;\n return \"rotate(\".concat(pf(a), \")\");\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return \"translate(\".concat(pf(m[4]), \" \").concat(pf(m[5]), \")\");\n }\n }\n\n return \"matrix(\".concat(pf(m[0]), \" \").concat(pf(m[1]), \" \").concat(pf(m[2]), \" \").concat(pf(m[3]), \" \").concat(pf(m[4]), \" \") + \"\".concat(pf(m[5]), \")\");\n };\n\n var SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n };\n var XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n var XLINK_NS = \"http://www.w3.org/1999/xlink\";\n var LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n var LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n var convertImgDataToPng = function () {\n var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n var CHUNK_WRAPPER_SIZE = 12;\n var crcTable = new Int32Array(256);\n\n for (var i = 0; i < 256; i++) {\n var c = i;\n\n for (var h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedb88320 ^ c >> 1 & 0x7fffffff;\n } else {\n c = c >> 1 & 0x7fffffff;\n }\n }\n\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n var crc = -1;\n\n for (var _i = start; _i < end; _i++) {\n var a = (crc ^ data[_i]) & 0xff;\n var b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n var p = offset;\n var len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n var crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n\n function adler32(data, start, end) {\n var a = 1;\n var b = 0;\n\n for (var _i2 = start; _i2 < end; ++_i2) {\n a = (a + (data[_i2] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n\n return b << 16 | a;\n }\n\n function deflateSync(literals) {\n if (!_is_node.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n\n try {\n var input;\n\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = Buffer.from(literals);\n }\n\n var output = require(\"zlib\").deflateSync(input, {\n level: 9\n });\n\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n function deflateSyncUncompressed(literals) {\n var len = literals.length;\n var maxBlockLength = 0xffff;\n var deflateBlocks = Math.ceil(len / maxBlockLength);\n var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n var pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n var pos = 0;\n\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n var adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n\n function encode(imgData, kind, forceDataSchema, isMask) {\n var width = imgData.width;\n var height = imgData.height;\n var bitDepth, colorType, lineSize;\n var bytes = imgData.data;\n\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n\n default:\n throw new Error(\"invalid format\");\n }\n\n var literals = new Uint8Array((1 + lineSize) * height);\n var offsetLiterals = 0,\n offsetBytes = 0;\n\n for (var y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n\n for (var _y = 0; _y < height; _y++) {\n offsetLiterals++;\n\n for (var _i3 = 0; _i3 < lineSize; _i3++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n\n var ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n var idat = deflateSync(literals);\n var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n var data = new Uint8Array(pngLength);\n var offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n return (0, _util.createObjectURL)(data, \"image/png\", forceDataSchema);\n }\n\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n }();\n\n var SVGExtraState = /*#__PURE__*/function () {\n function SVGExtraState() {\n _classCallCheck(this, SVGExtraState);\n\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = \"\";\n }\n\n _createClass(SVGExtraState, [{\n key: \"clone\",\n value: function clone() {\n return Object.create(this);\n }\n }, {\n key: \"setCurrentPoint\",\n value: function setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n }]);\n\n return SVGExtraState;\n }();\n\n var clipCount = 0;\n var maskCount = 0;\n var shadingCount = 0;\n\n exports.SVGGraphics = SVGGraphics = /*#__PURE__*/function () {\n function SVGGraphics(commonObjs, objs) {\n var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n _classCallCheck(this, SVGGraphics);\n\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n\n for (var op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n\n _createClass(SVGGraphics, [{\n key: \"save\",\n value: function save() {\n this.transformStack.push(this.transformMatrix);\n var old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n }, {\n key: \"restore\",\n value: function restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n }, {\n key: \"group\",\n value: function group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n }, {\n key: \"loadDependencies\",\n value: function loadDependencies(operatorList) {\n var _this = this;\n\n var fnArray = operatorList.fnArray;\n var argsArray = operatorList.argsArray;\n\n for (var i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\n }\n\n var _iterator2 = _createForOfIteratorHelper(argsArray[i]),\n _step2;\n\n try {\n var _loop = function _loop() {\n var obj = _step2.value;\n var objsPool = obj.startsWith(\"g_\") ? _this.commonObjs : _this.objs;\n var promise = new Promise(function (resolve) {\n objsPool.get(obj, resolve);\n });\n\n _this.current.dependencies.push(promise);\n };\n\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n _loop();\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n\n return Promise.all(this.current.dependencies);\n }\n }, {\n key: \"transform\",\n value: function transform(a, b, c, d, e, f) {\n var transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n }, {\n key: \"getSVG\",\n value: function getSVG(operatorList, viewport) {\n var _this2 = this;\n\n this.viewport = viewport;\n\n var svgElement = this._initialize(viewport);\n\n return this.loadDependencies(operatorList).then(function () {\n _this2.transformMatrix = _util.IDENTITY_MATRIX;\n\n _this2.executeOpTree(_this2.convertOpList(operatorList));\n\n return svgElement;\n });\n }\n }, {\n key: \"convertOpList\",\n value: function convertOpList(operatorList) {\n var operatorIdMapping = this._operatorIdMapping;\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var opList = [];\n\n for (var i = 0, ii = fnArray.length; i < ii; i++) {\n var fnId = fnArray[i];\n opList.push({\n fnId: fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i]\n });\n }\n\n return opListToTree(opList);\n }\n }, {\n key: \"executeOpTree\",\n value: function executeOpTree(opTree) {\n var _iterator3 = _createForOfIteratorHelper(opTree),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var opTreeElement = _step3.value;\n var fn = opTreeElement.fn;\n var fnId = opTreeElement.fnId;\n var args = opTreeElement.args;\n\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n\n case _util.OPS.dependency:\n break;\n\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.endText:\n this.endText();\n break;\n\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n\n case _util.OPS.fill:\n this.fill();\n break;\n\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n\n case _util.OPS.stroke:\n this.stroke();\n break;\n\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n\n case _util.OPS.closePath:\n this.closePath();\n break;\n\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n\n case _util.OPS.endPath:\n this.endPath();\n break;\n\n case 92:\n this.group(opTreeElement.items);\n break;\n\n default:\n (0, _util.warn)(\"Unimplemented operator \".concat(fn));\n break;\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n }, {\n key: \"setWordSpacing\",\n value: function setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n }, {\n key: \"setCharSpacing\",\n value: function setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n }, {\n key: \"nextLine\",\n value: function nextLine() {\n this.moveText(0, this.current.leading);\n }\n }, {\n key: \"setTextMatrix\",\n value: function setTextMatrix(a, b, c, d, e, f) {\n var current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.hypot(a, b);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", \"\".concat(pf(current.fontSize), \"px\"));\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.appendChild(current.tspan);\n }\n }, {\n key: \"beginText\",\n value: function beginText() {\n var current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n current.ycoords = [];\n }\n }, {\n key: \"moveText\",\n value: function moveText(x, y) {\n var current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", \"\".concat(pf(current.fontSize), \"px\"));\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n }, {\n key: \"showText\",\n value: function showText(glyphs) {\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return;\n }\n\n var fontSizeScale = current.fontSizeScale;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var fontDirection = current.fontDirection;\n var textHScale = current.textHScale * fontDirection;\n var vertical = font.vertical;\n var spacingDir = vertical ? 1 : -1;\n var defaultVMetrics = font.defaultVMetrics;\n var widthAdvanceScale = fontSize * current.fontMatrix[0];\n var x = 0;\n\n var _iterator4 = _createForOfIteratorHelper(glyphs),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var glyph = _step4.value;\n\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var character = glyph.fontChar;\n var scaledX = void 0,\n scaledY = void 0;\n var width = glyph.width;\n\n if (vertical) {\n var vx = void 0;\n var vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n var vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n\n current.tspan.textContent += character;\n } else {}\n\n var charWidth = void 0;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n\n if (vertical) {\n current.tspan.setAttributeNS(null, \"y\", current.ycoords.map(pf).join(\" \"));\n } else {\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", \"\".concat(pf(current.fontSize), \"px\"));\n\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n var lineWidthScale = 1 / (current.textMatrixScale || 1);\n\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n\n var textMatrix = current.textMatrix;\n\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(null, \"transform\", \"\".concat(pm(textMatrix), \" scale(\").concat(pf(textHScale), \", -1)\"));\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.appendChild(current.tspan);\n current.txtgrp.appendChild(current.txtElement);\n\n this._ensureTransformGroup().appendChild(current.txtElement);\n }\n }, {\n key: \"setLeadingMoveText\",\n value: function setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n }, {\n key: \"addFontStyle\",\n value: function addFontStyle(fontObj) {\n if (!fontObj.data) {\n throw new Error(\"addFontStyle: No font data available, \" + 'ensure that the \"fontExtraProperties\" API parameter is set.');\n }\n\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.appendChild(this.cssStyle);\n }\n\n var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += \"@font-face { font-family: \\\"\".concat(fontObj.loadedName, \"\\\";\") + \" src: url(\".concat(url, \"); }\\n\");\n }\n }, {\n key: \"setFont\",\n value: function setFont(details) {\n var current = this.current;\n var fontObj = this.commonObjs.get(details[0]);\n var size = details[1];\n current.font = fontObj;\n\n if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n var bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n var italic = fontObj.italic ? \"italic\" : \"normal\";\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.xcoords = [];\n current.ycoords = [];\n }\n }, {\n key: \"endText\",\n value: function endText() {\n var _current$txtElement;\n\n var current = this.current;\n\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && (_current$txtElement = current.txtElement) !== null && _current$txtElement !== void 0 && _current$txtElement.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n }, {\n key: \"setLineWidth\",\n value: function setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n }, {\n key: \"setLineCap\",\n value: function setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n }, {\n key: \"setLineJoin\",\n value: function setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n }, {\n key: \"setMiterLimit\",\n value: function setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n }, {\n key: \"setStrokeAlpha\",\n value: function setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n }, {\n key: \"setStrokeRGBColor\",\n value: function setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = _util.Util.makeHexColor(r, g, b);\n }\n }, {\n key: \"setFillAlpha\",\n value: function setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n }, {\n key: \"setFillRGBColor\",\n value: function setFillRGBColor(r, g, b) {\n this.current.fillColor = _util.Util.makeHexColor(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n }, {\n key: \"setStrokeColorN\",\n value: function setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n }, {\n key: \"setFillColorN\",\n value: function setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n }, {\n key: \"shadingFill\",\n value: function shadingFill(args) {\n var width = this.viewport.width;\n var height = this.viewport.height;\n\n var inv = _util.Util.inverseTransform(this.transformMatrix);\n\n var bl = _util.Util.applyTransform([0, 0], inv);\n\n var br = _util.Util.applyTransform([0, height], inv);\n\n var ul = _util.Util.applyTransform([width, 0], inv);\n\n var ur = _util.Util.applyTransform([width, height], inv);\n\n var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n var rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n\n this._ensureTransformGroup().appendChild(rect);\n }\n }, {\n key: \"_makeColorN_Pattern\",\n value: function _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n\n return this._makeShadingPattern(args);\n }\n }, {\n key: \"_makeTilingPattern\",\n value: function _makeTilingPattern(args) {\n var color = args[1];\n var operatorList = args[2];\n var matrix = args[3] || _util.IDENTITY_MATRIX;\n\n var _args$ = _slicedToArray(args[4], 4),\n x0 = _args$[0],\n y0 = _args$[1],\n x1 = _args$[2],\n y1 = _args$[3];\n\n var xstep = args[5];\n var ystep = args[6];\n var paintType = args[7];\n var tilingId = \"shading\".concat(shadingCount++);\n\n var _Util$normalizeRect = _util.Util.normalizeRect([].concat(_toConsumableArray(_util.Util.applyTransform([x0, y0], matrix)), _toConsumableArray(_util.Util.applyTransform([x1, y1], matrix)))),\n _Util$normalizeRect2 = _slicedToArray(_Util$normalizeRect, 4),\n tx0 = _Util$normalizeRect2[0],\n ty0 = _Util$normalizeRect2[1],\n tx1 = _Util$normalizeRect2[2],\n ty1 = _Util$normalizeRect2[3];\n\n var _Util$singularValueDe = _util.Util.singularValueDecompose2dScale(matrix),\n _Util$singularValueDe2 = _slicedToArray(_Util$singularValueDe, 2),\n xscale = _Util$singularValueDe2[0],\n yscale = _Util$singularValueDe2[1];\n\n var txstep = xstep * xscale;\n var tystep = ystep * yscale;\n var tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", \"\".concat(tx0));\n tiling.setAttributeNS(null, \"y\", \"\".concat(ty0));\n var svg = this.svg;\n var transformMatrix = this.transformMatrix;\n var fillColor = this.current.fillColor;\n var strokeColor = this.current.strokeColor;\n var bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n\n if (paintType === 2) {\n var cssColor = _util.Util.makeHexColor.apply(_util.Util, _toConsumableArray(color));\n\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.appendChild(bbox.childNodes[0]);\n this.defs.appendChild(tiling);\n return \"url(#\".concat(tilingId, \")\");\n }\n }, {\n key: \"_makeShadingPattern\",\n value: function _makeShadingPattern(args) {\n if (typeof args === \"string\") {\n args = this.objs.get(args);\n }\n\n switch (args[0]) {\n case \"RadialAxial\":\n var shadingId = \"shading\".concat(shadingCount++);\n var colorStops = args[3];\n var gradient;\n\n switch (args[1]) {\n case \"axial\":\n var point0 = args[4];\n var point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n\n case \"radial\":\n var focalPoint = args[4];\n var circlePoint = args[5];\n var focalRadius = args[6];\n var circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n\n default:\n throw new Error(\"Unknown RadialAxial type: \".concat(args[1]));\n }\n\n var _iterator5 = _createForOfIteratorHelper(colorStops),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var colorStop = _step5.value;\n var stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.appendChild(stop);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n this.defs.appendChild(gradient);\n return \"url(#\".concat(shadingId, \")\");\n\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n\n case \"Dummy\":\n return \"hotpink\";\n\n default:\n throw new Error(\"Unknown IR type: \".concat(args[0]));\n }\n }\n }, {\n key: \"setDash\",\n value: function setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n }, {\n key: \"constructPath\",\n value: function constructPath(ops, args) {\n var current = this.current;\n var x = current.x,\n y = current.y;\n var d = [];\n var j = 0;\n\n var _iterator6 = _createForOfIteratorHelper(ops),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var op = _step6.value;\n\n switch (op | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n var xw = x + width;\n var yh = y + height;\n d.push(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n\n case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n d = d.join(\" \");\n\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n\n this._ensureTransformGroup().appendChild(current.path);\n }\n\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n }, {\n key: \"endPath\",\n value: function endPath() {\n var current = this.current;\n current.path = null;\n\n if (!this.pendingClip) {\n return;\n }\n\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n\n var clipId = \"clippath\".concat(clipCount++);\n var clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n var clipElement = current.element.cloneNode(true);\n\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n\n if (current.activeClipUrl) {\n current.clipGroup = null;\n\n var _iterator7 = _createForOfIteratorHelper(this.extraStack),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var prev = _step7.value;\n prev.clipGroup = null;\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n\n current.activeClipUrl = \"url(#\".concat(clipId, \")\");\n this.tgrp = null;\n }\n }, {\n key: \"clip\",\n value: function clip(type) {\n this.pendingClip = type;\n }\n }, {\n key: \"closePath\",\n value: function closePath() {\n var current = this.current;\n\n if (current.path) {\n var d = \"\".concat(current.path.getAttributeNS(null, \"d\"), \"Z\");\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n }, {\n key: \"setLeading\",\n value: function setLeading(leading) {\n this.current.leading = -leading;\n }\n }, {\n key: \"setTextRise\",\n value: function setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n }, {\n key: \"setTextRenderingMode\",\n value: function setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n }, {\n key: \"setHScale\",\n value: function setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n }, {\n key: \"setRenderingIntent\",\n value: function setRenderingIntent(intent) {}\n }, {\n key: \"setFlatness\",\n value: function setFlatness(flatness) {}\n }, {\n key: \"setGState\",\n value: function setGState(states) {\n var _iterator8 = _createForOfIteratorHelper(states),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var _step8$value = _slicedToArray(_step8.value, 2),\n key = _step8$value[0],\n value = _step8$value[1];\n\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value);\n break;\n\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n\n case \"ca\":\n this.setFillAlpha(value);\n break;\n\n default:\n (0, _util.warn)(\"Unimplemented graphic state operator \".concat(key));\n break;\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n }, {\n key: \"fill\",\n value: function fill() {\n var current = this.current;\n\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n }, {\n key: \"stroke\",\n value: function stroke() {\n var current = this.current;\n\n if (current.element) {\n this._setStrokeAttributes(current.element);\n\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n }, {\n key: \"_setStrokeAttributes\",\n value: function _setStrokeAttributes(element) {\n var lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var current = this.current;\n var dashArray = current.dashArray;\n\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n }\n }, {\n key: \"eoFill\",\n value: function eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fill();\n }\n }, {\n key: \"fillStroke\",\n value: function fillStroke() {\n this.stroke();\n this.fill();\n }\n }, {\n key: \"eoFillStroke\",\n value: function eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fillStroke();\n }\n }, {\n key: \"closeStroke\",\n value: function closeStroke() {\n this.closePath();\n this.stroke();\n }\n }, {\n key: \"closeFillStroke\",\n value: function closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n }, {\n key: \"closeEOFillStroke\",\n value: function closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n }, {\n key: \"paintSolidColorImageMask\",\n value: function paintSolidColorImageMask() {\n var rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n this._ensureTransformGroup().appendChild(rect);\n }\n }, {\n key: \"paintImageXObject\",\n value: function paintImageXObject(objId) {\n var imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image with object ID \".concat(objId, \" is not ready yet\"));\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n }, {\n key: \"paintInlineImageXObject\",\n value: function paintInlineImageXObject(imgData, mask) {\n var width = imgData.width;\n var height = imgData.height;\n var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n var cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n var imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(null, \"transform\", \"scale(\".concat(pf(1 / width), \" \").concat(pf(-1 / height), \")\"));\n\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n }\n }, {\n key: \"paintImageMaskXObject\",\n value: function paintImageMaskXObject(imgData) {\n var current = this.current;\n var width = imgData.width;\n var height = imgData.height;\n var fillColor = current.fillColor;\n current.maskId = \"mask\".concat(maskCount++);\n var mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n var rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", \"url(#\".concat(current.maskId, \")\"));\n this.defs.appendChild(mask);\n\n this._ensureTransformGroup().appendChild(rect);\n\n this.paintInlineImageXObject(imgData, mask);\n }\n }, {\n key: \"paintFormXObjectBegin\",\n value: function paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n\n if (bbox) {\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n var cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n }, {\n key: \"paintFormXObjectEnd\",\n value: function paintFormXObjectEnd() {}\n }, {\n key: \"_initialize\",\n value: function _initialize(viewport) {\n var svg = this.svgFactory.create(viewport.width, viewport.height);\n var definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.appendChild(definitions);\n this.defs = definitions;\n var rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.appendChild(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\n }, {\n key: \"_ensureClipGroup\",\n value: function _ensureClipGroup() {\n if (!this.current.clipGroup) {\n var clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.appendChild(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n\n return this.current.clipGroup;\n }\n }, {\n key: \"_ensureTransformGroup\",\n value: function _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n\n return this.tgrp;\n }\n }]);\n\n return SVGGraphics;\n }();\n}\n\n/***/ }),\n/* 153 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNodeStream = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(4);\n\nvar _network_utils = __w_pdfjs_require__(154);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n;\n\nvar fs = require(\"fs\");\n\nvar http = require(\"http\");\n\nvar https = require(\"https\");\n\nvar url = require(\"url\");\n\nvar fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n var parsedUrl = url.parse(sourceUrl);\n\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(\"file:///\".concat(sourceUrl));\n }\n\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n\n return parsedUrl;\n}\n\nvar PDFNodeStream = /*#__PURE__*/function () {\n function PDFNodeStream(source) {\n _classCallCheck(this, PDFNodeStream);\n\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _createClass(PDFNodeStream, [{\n key: \"_progressiveDataLength\",\n get: function get() {\n var _this$_fullRequestRea, _this$_fullRequestRea2;\n\n return (_this$_fullRequestRea = (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2._loaded) !== null && _this$_fullRequestRea !== void 0 ? _this$_fullRequestRea : 0;\n }\n }, {\n key: \"getFullReader\",\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n }, {\n key: \"getRangeReader\",\n value: function getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n\n this._rangeRequestReaders.push(rangeReader);\n\n return rangeReader;\n }\n }, {\n key: \"cancelAllRequests\",\n value: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n var _iterator = _createForOfIteratorHelper(this._rangeRequestReaders.slice(0)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var reader = _step.value;\n reader.cancel(reason);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }]);\n\n return PDFNodeStream;\n}();\n\nexports.PDFNodeStream = PDFNodeStream;\n\nvar BaseFullReader = /*#__PURE__*/function () {\n function BaseFullReader(stream) {\n _classCallCheck(this, BaseFullReader);\n\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n var source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._headersCapability = (0, _util.createPromiseCapability)();\n }\n\n _createClass(BaseFullReader, [{\n key: \"headersReady\",\n get: function get() {\n return this._headersCapability.promise;\n }\n }, {\n key: \"filename\",\n get: function get() {\n return this._filename;\n }\n }, {\n key: \"contentLength\",\n get: function get() {\n return this._contentLength;\n }\n }, {\n key: \"isRangeSupported\",\n get: function get() {\n return this._isRangeSupported;\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var chunk, buffer;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this._readCapability.promise;\n\n case 2:\n if (!this._done) {\n _context.next = 4;\n break;\n }\n\n return _context.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 4:\n if (!this._storedError) {\n _context.next = 6;\n break;\n }\n\n throw this._storedError;\n\n case 6:\n chunk = this._readableStream.read();\n\n if (!(chunk === null)) {\n _context.next = 10;\n break;\n }\n\n this._readCapability = (0, _util.createPromiseCapability)();\n return _context.abrupt(\"return\", this.read());\n\n case 10:\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n buffer = new Uint8Array(chunk).buffer;\n return _context.abrupt(\"return\", {\n value: buffer,\n done: false\n });\n\n case 14:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _read.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n }, {\n key: \"_error\",\n value: function _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n }, {\n key: \"_setReadableStream\",\n value: function _setReadableStream(readableStream) {\n var _this = this;\n\n this._readableStream = readableStream;\n readableStream.on(\"readable\", function () {\n _this._readCapability.resolve();\n });\n readableStream.on(\"end\", function () {\n readableStream.destroy();\n _this._done = true;\n\n _this._readCapability.resolve();\n });\n readableStream.on(\"error\", function (reason) {\n _this._error(reason);\n });\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n }]);\n\n return BaseFullReader;\n}();\n\nvar BaseRangeReader = /*#__PURE__*/function () {\n function BaseRangeReader(stream) {\n _classCallCheck(this, BaseRangeReader);\n\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n var source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n _createClass(BaseRangeReader, [{\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee2() {\n var chunk, buffer;\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this._readCapability.promise;\n\n case 2:\n if (!this._done) {\n _context2.next = 4;\n break;\n }\n\n return _context2.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 4:\n if (!this._storedError) {\n _context2.next = 6;\n break;\n }\n\n throw this._storedError;\n\n case 6:\n chunk = this._readableStream.read();\n\n if (!(chunk === null)) {\n _context2.next = 10;\n break;\n }\n\n this._readCapability = (0, _util.createPromiseCapability)();\n return _context2.abrupt(\"return\", this.read());\n\n case 10:\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n buffer = new Uint8Array(chunk).buffer;\n return _context2.abrupt(\"return\", {\n value: buffer,\n done: false\n });\n\n case 14:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _read2.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n }, {\n key: \"_error\",\n value: function _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n }, {\n key: \"_setReadableStream\",\n value: function _setReadableStream(readableStream) {\n var _this2 = this;\n\n this._readableStream = readableStream;\n readableStream.on(\"readable\", function () {\n _this2._readCapability.resolve();\n });\n readableStream.on(\"end\", function () {\n readableStream.destroy();\n _this2._done = true;\n\n _this2._readCapability.resolve();\n });\n readableStream.on(\"error\", function (reason) {\n _this2._error(reason);\n });\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n }]);\n\n return BaseRangeReader;\n}();\n\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers: headers\n };\n}\n\nvar PDFNodeStreamFullReader = /*#__PURE__*/function (_BaseFullReader) {\n _inherits(PDFNodeStreamFullReader, _BaseFullReader);\n\n var _super = _createSuper(PDFNodeStreamFullReader);\n\n function PDFNodeStreamFullReader(stream) {\n var _this3;\n\n _classCallCheck(this, PDFNodeStreamFullReader);\n\n _this3 = _super.call(this, stream);\n\n var handleResponse = function handleResponse(response) {\n if (response.statusCode === 404) {\n var error = new _util.MissingPDFException(\"Missing PDF \\\"\".concat(_this3._url, \"\\\".\"));\n _this3._storedError = error;\n\n _this3._headersCapability.reject(error);\n\n return;\n }\n\n _this3._headersCapability.resolve();\n\n _this3._setReadableStream(response);\n\n var getResponseHeader = function getResponseHeader(name) {\n return _this3._readableStream.headers[name.toLowerCase()];\n };\n\n var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: _this3._rangeChunkSize,\n disableRange: _this3._disableRange\n }),\n allowRangeRequests = _validateRangeRequest.allowRangeRequests,\n suggestedLength = _validateRangeRequest.suggestedLength;\n\n _this3._isRangeSupported = allowRangeRequests;\n _this3._contentLength = suggestedLength || _this3._contentLength;\n _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n\n _this3._request = null;\n\n if (_this3._url.protocol === \"http:\") {\n _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);\n } else {\n _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);\n }\n\n _this3._request.on(\"error\", function (reason) {\n _this3._storedError = reason;\n\n _this3._headersCapability.reject(reason);\n });\n\n _this3._request.end();\n\n return _this3;\n }\n\n return PDFNodeStreamFullReader;\n}(BaseFullReader);\n\nvar PDFNodeStreamRangeReader = /*#__PURE__*/function (_BaseRangeReader) {\n _inherits(PDFNodeStreamRangeReader, _BaseRangeReader);\n\n var _super2 = _createSuper(PDFNodeStreamRangeReader);\n\n function PDFNodeStreamRangeReader(stream, start, end) {\n var _this4;\n\n _classCallCheck(this, PDFNodeStreamRangeReader);\n\n _this4 = _super2.call(this, stream);\n _this4._httpHeaders = {};\n\n for (var property in stream.httpHeaders) {\n var value = stream.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n _this4._httpHeaders[property] = value;\n }\n\n _this4._httpHeaders.Range = \"bytes=\".concat(start, \"-\").concat(end - 1);\n\n var handleResponse = function handleResponse(response) {\n if (response.statusCode === 404) {\n var error = new _util.MissingPDFException(\"Missing PDF \\\"\".concat(_this4._url, \"\\\".\"));\n _this4._storedError = error;\n return;\n }\n\n _this4._setReadableStream(response);\n };\n\n _this4._request = null;\n\n if (_this4._url.protocol === \"http:\") {\n _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);\n } else {\n _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);\n }\n\n _this4._request.on(\"error\", function (reason) {\n _this4._storedError = reason;\n });\n\n _this4._request.end();\n\n return _this4;\n }\n\n return PDFNodeStreamRangeReader;\n}(BaseRangeReader);\n\nvar PDFNodeStreamFsFullReader = /*#__PURE__*/function (_BaseFullReader2) {\n _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2);\n\n var _super3 = _createSuper(PDFNodeStreamFsFullReader);\n\n function PDFNodeStreamFsFullReader(stream) {\n var _this5;\n\n _classCallCheck(this, PDFNodeStreamFsFullReader);\n\n _this5 = _super3.call(this, stream);\n var path = decodeURIComponent(_this5._url.path);\n\n if (fileUriRegex.test(_this5._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n fs.lstat(path, function (error, stat) {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new _util.MissingPDFException(\"Missing PDF \\\"\".concat(path, \"\\\".\"));\n }\n\n _this5._storedError = error;\n\n _this5._headersCapability.reject(error);\n\n return;\n }\n\n _this5._contentLength = stat.size;\n\n _this5._setReadableStream(fs.createReadStream(path));\n\n _this5._headersCapability.resolve();\n });\n return _this5;\n }\n\n return PDFNodeStreamFsFullReader;\n}(BaseFullReader);\n\nvar PDFNodeStreamFsRangeReader = /*#__PURE__*/function (_BaseRangeReader2) {\n _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2);\n\n var _super4 = _createSuper(PDFNodeStreamFsRangeReader);\n\n function PDFNodeStreamFsRangeReader(stream, start, end) {\n var _this6;\n\n _classCallCheck(this, PDFNodeStreamFsRangeReader);\n\n _this6 = _super4.call(this, stream);\n var path = decodeURIComponent(_this6._url.path);\n\n if (fileUriRegex.test(_this6._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n _this6._setReadableStream(fs.createReadStream(path, {\n start: start,\n end: end - 1\n }));\n\n return _this6;\n }\n\n return PDFNodeStreamFsRangeReader;\n}(BaseRangeReader);\n\n/***/ }),\n/* 154 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\n\nvar _util = __w_pdfjs_require__(4);\n\nvar _content_disposition = __w_pdfjs_require__(155);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nfunction validateRangeRequestCapabilities(_ref) {\n var getResponseHeader = _ref.getResponseHeader,\n isHttp = _ref.isHttp,\n rangeChunkSize = _ref.rangeChunkSize,\n disableRange = _ref.disableRange;\n (0, _util.assert)(rangeChunkSize > 0, \"Range chunk size must be larger than zero\");\n var returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n var length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n\n var contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n var contentDisposition = getResponseHeader(\"Content-Disposition\");\n\n if (contentDisposition) {\n var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch (ex) {}\n }\n\n if ((0, _display_utils.isPdfFile)(filename)) {\n return filename;\n }\n }\n\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n\n return new _util.UnexpectedResponseException(\"Unexpected server response (\".concat(status, \") while retrieving PDF \\\"\").concat(url, \"\\\".\"), status);\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 155 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\n\nvar _util = __w_pdfjs_require__(4);\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n var needsEncodingFixup = true;\n var tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n var filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n tmp = rfc2231getparam(contentDisposition);\n\n if (tmp) {\n var _filename = rfc2047decode(tmp);\n\n return fixupEncoding(_filename);\n }\n\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n\n var _filename2 = rfc2616unquote(tmp);\n\n _filename2 = rfc2047decode(_filename2);\n return fixupEncoding(_filename2);\n }\n\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n\n try {\n var decoder = new TextDecoder(encoding, {\n fatal: true\n });\n var buffer = (0, _util.stringToBytes)(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch (e) {\n if (/^utf-?8$/i.test(encoding)) {\n try {\n value = decodeURIComponent(escape(value));\n needsEncodingFixup = false;\n } catch (err) {}\n }\n }\n }\n\n return value;\n }\n\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n\n return value;\n }\n\n function rfc2231getparam(contentDispositionStr) {\n var matches = [];\n var match;\n var iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n var _match = match,\n _match2 = _slicedToArray(_match, 4),\n n = _match2[1],\n quot = _match2[2],\n part = _match2[3];\n\n n = parseInt(n, 10);\n\n if (n in matches) {\n if (n === 0) {\n break;\n }\n\n continue;\n }\n\n matches[n] = [quot, part];\n }\n\n var parts = [];\n\n for (var _n2 = 0; _n2 < matches.length; ++_n2) {\n if (!(_n2 in matches)) {\n break;\n }\n\n var _matches$_n = _slicedToArray(matches[_n2], 2),\n _quot = _matches$_n[0],\n _part = _matches$_n[1];\n\n _part = rfc2616unquote(_part);\n\n if (_quot) {\n _part = unescape(_part);\n\n if (_n2 === 0) {\n _part = rfc5987decode(_part);\n }\n }\n\n parts.push(_part);\n }\n\n return parts.join(\"\");\n }\n\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n var parts = value.slice(1).split('\\\\\"');\n\n for (var i = 0; i < parts.length; ++i) {\n var quotindex = parts[i].indexOf('\"');\n\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n\n parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n }\n\n value = parts.join('\"');\n }\n\n return value;\n }\n\n function rfc5987decode(extvalue) {\n var encodingend = extvalue.indexOf(\"'\");\n\n if (encodingend === -1) {\n return extvalue;\n }\n\n var encoding = extvalue.slice(0, encodingend);\n var langvalue = extvalue.slice(encodingend + 1);\n var value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replace(/_/g, \" \");\n text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n\n try {\n text = atob(text);\n } catch (e) {}\n\n return textdecode(charset, text);\n });\n }\n\n return \"\";\n}\n\n/***/ }),\n/* 156 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNetworkStream = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(4);\n\nvar _network_utils = __w_pdfjs_require__(154);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n;\nvar OK_RESPONSE = 200;\nvar PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n var data = xhr.response;\n\n if (typeof data !== \"string\") {\n return data;\n }\n\n var array = (0, _util.stringToBytes)(data);\n return array.buffer;\n}\n\nvar NetworkManager = /*#__PURE__*/function () {\n function NetworkManager(url) {\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, NetworkManager);\n\n this.url = url;\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null);\n this.withCredentials = args.withCredentials || false;\n\n this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n\n _createClass(NetworkManager, [{\n key: \"requestRange\",\n value: function requestRange(begin, end, listeners) {\n var args = {\n begin: begin,\n end: end\n };\n\n for (var prop in listeners) {\n args[prop] = listeners[prop];\n }\n\n return this.request(args);\n }\n }, {\n key: \"requestFull\",\n value: function requestFull(listeners) {\n return this.request(listeners);\n }\n }, {\n key: \"request\",\n value: function request(args) {\n var xhr = this.getXhr();\n var xhrId = this.currXhrId++;\n var pendingRequest = this.pendingRequests[xhrId] = {\n xhr: xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n\n for (var property in this.httpHeaders) {\n var value = this.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n xhr.setRequestHeader(property, value);\n }\n\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", \"bytes=\".concat(args.begin, \"-\").concat(args.end - 1));\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n\n xhr.responseType = \"arraybuffer\";\n\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n }, {\n key: \"onProgress\",\n value: function onProgress(xhrId, evt) {\n var _pendingRequest$onPro;\n\n var pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n (_pendingRequest$onPro = pendingRequest.onProgress) === null || _pendingRequest$onPro === void 0 ? void 0 : _pendingRequest$onPro.call(pendingRequest, evt);\n }\n }, {\n key: \"onStateChange\",\n value: function onStateChange(xhrId, evt) {\n var pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n var xhr = pendingRequest.xhr;\n\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n\n delete this.pendingRequests[xhrId];\n\n if (xhr.status === 0 && this.isHttp) {\n var _pendingRequest$onErr;\n\n (_pendingRequest$onErr = pendingRequest.onError) === null || _pendingRequest$onErr === void 0 ? void 0 : _pendingRequest$onErr.call(pendingRequest, xhr.status);\n return;\n }\n\n var xhrStatus = xhr.status || OK_RESPONSE;\n var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n var _pendingRequest$onErr2;\n\n (_pendingRequest$onErr2 = pendingRequest.onError) === null || _pendingRequest$onErr2 === void 0 ? void 0 : _pendingRequest$onErr2.call(pendingRequest, xhr.status);\n return;\n }\n\n var chunk = getArrayBuffer(xhr);\n\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n var rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n var matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk: chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk: chunk\n });\n } else {\n var _pendingRequest$onErr3;\n\n (_pendingRequest$onErr3 = pendingRequest.onError) === null || _pendingRequest$onErr3 === void 0 ? void 0 : _pendingRequest$onErr3.call(pendingRequest, xhr.status);\n }\n }\n }, {\n key: \"getRequestXhr\",\n value: function getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n }, {\n key: \"isPendingRequest\",\n value: function isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n }, {\n key: \"abortRequest\",\n value: function abortRequest(xhrId) {\n var xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n }]);\n\n return NetworkManager;\n}();\n\nvar PDFNetworkStream = /*#__PURE__*/function () {\n function PDFNetworkStream(source) {\n _classCallCheck(this, PDFNetworkStream);\n\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _createClass(PDFNetworkStream, [{\n key: \"_onRangeRequestReaderClosed\",\n value: function _onRangeRequestReaderClosed(reader) {\n var i = this._rangeRequestReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n }, {\n key: \"getFullReader\",\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n }, {\n key: \"getRangeReader\",\n value: function getRangeReader(begin, end) {\n var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n }, {\n key: \"cancelAllRequests\",\n value: function cancelAllRequests(reason) {\n var _this$_fullRequestRea;\n\n (_this$_fullRequestRea = this._fullRequestReader) === null || _this$_fullRequestRea === void 0 ? void 0 : _this$_fullRequestRea.cancel(reason);\n\n var _iterator = _createForOfIteratorHelper(this._rangeRequestReaders.slice(0)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var reader = _step.value;\n reader.cancel(reason);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }]);\n\n return PDFNetworkStream;\n}();\n\nexports.PDFNetworkStream = PDFNetworkStream;\n\nvar PDFNetworkStreamFullRequestReader = /*#__PURE__*/function () {\n function PDFNetworkStreamFullRequestReader(manager, source) {\n _classCallCheck(this, PDFNetworkStreamFullRequestReader);\n\n this._manager = manager;\n var args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n\n _createClass(PDFNetworkStreamFullRequestReader, [{\n key: \"_onHeadersReceived\",\n value: function _onHeadersReceived() {\n var fullRequestXhrId = this._fullRequestId;\n\n var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n var getResponseHeader = function getResponseHeader(name) {\n return fullRequestXhr.getResponseHeader(name);\n };\n\n var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n }),\n allowRangeRequests = _validateRangeRequest.allowRangeRequests,\n suggestedLength = _validateRangeRequest.suggestedLength;\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n }\n }, {\n key: \"_onDone\",\n value: function _onDone(data) {\n if (data) {\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: data.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(data.chunk);\n }\n }\n\n this._done = true;\n\n if (this._cachedChunks.length > 0) {\n return;\n }\n\n var _iterator2 = _createForOfIteratorHelper(this._requests),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _requestCapability = _step2.value;\n\n _requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n this._requests.length = 0;\n }\n }, {\n key: \"_onError\",\n value: function _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n\n this._headersReceivedCapability.reject(this._storedError);\n\n var _iterator3 = _createForOfIteratorHelper(this._requests),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var requestCapability = _step3.value;\n requestCapability.reject(this._storedError);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n }, {\n key: \"_onProgress\",\n value: function _onProgress(evt) {\n var _this$onProgress;\n\n (_this$onProgress = this.onProgress) === null || _this$onProgress === void 0 ? void 0 : _this$onProgress.call(this, {\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength\n });\n }\n }, {\n key: \"filename\",\n get: function get() {\n return this._filename;\n }\n }, {\n key: \"isRangeSupported\",\n get: function get() {\n return this._isRangeSupported;\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }, {\n key: \"contentLength\",\n get: function get() {\n return this._contentLength;\n }\n }, {\n key: \"headersReady\",\n get: function get() {\n return this._headersReceivedCapability.promise;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var chunk, requestCapability;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!this._storedError) {\n _context.next = 2;\n break;\n }\n\n throw this._storedError;\n\n case 2:\n if (!(this._cachedChunks.length > 0)) {\n _context.next = 5;\n break;\n }\n\n chunk = this._cachedChunks.shift();\n return _context.abrupt(\"return\", {\n value: chunk,\n done: false\n });\n\n case 5:\n if (!this._done) {\n _context.next = 7;\n break;\n }\n\n return _context.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 7:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context.abrupt(\"return\", requestCapability.promise);\n\n case 10:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _read.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n this._done = true;\n\n this._headersReceivedCapability.reject(reason);\n\n var _iterator4 = _createForOfIteratorHelper(this._requests),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var requestCapability = _step4.value;\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n this._requests.length = 0;\n\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n\n this._fullRequestReader = null;\n }\n }]);\n\n return PDFNetworkStreamFullRequestReader;\n}();\n\nvar PDFNetworkStreamRangeRequestReader = /*#__PURE__*/function () {\n function PDFNetworkStreamRangeRequestReader(manager, begin, end) {\n _classCallCheck(this, PDFNetworkStreamRangeRequestReader);\n\n this._manager = manager;\n var args = {\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n this.onProgress = null;\n this.onClosed = null;\n }\n\n _createClass(PDFNetworkStreamRangeRequestReader, [{\n key: \"_close\",\n value: function _close() {\n var _this$onClosed;\n\n (_this$onClosed = this.onClosed) === null || _this$onClosed === void 0 ? void 0 : _this$onClosed.call(this, this);\n }\n }, {\n key: \"_onDone\",\n value: function _onDone(data) {\n var chunk = data.chunk;\n\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n\n this._done = true;\n\n var _iterator5 = _createForOfIteratorHelper(this._requests),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var _requestCapability2 = _step5.value;\n\n _requestCapability2.resolve({\n value: undefined,\n done: true\n });\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n this._requests.length = 0;\n\n this._close();\n }\n }, {\n key: \"_onError\",\n value: function _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n\n var _iterator6 = _createForOfIteratorHelper(this._requests),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var requestCapability = _step6.value;\n requestCapability.reject(this._storedError);\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n }, {\n key: \"_onProgress\",\n value: function _onProgress(evt) {\n if (!this.isStreamingSupported) {\n var _this$onProgress2;\n\n (_this$onProgress2 = this.onProgress) === null || _this$onProgress2 === void 0 ? void 0 : _this$onProgress2.call(this, {\n loaded: evt.loaded\n });\n }\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return false;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee2() {\n var chunk, requestCapability;\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!this._storedError) {\n _context2.next = 2;\n break;\n }\n\n throw this._storedError;\n\n case 2:\n if (!(this._queuedChunk !== null)) {\n _context2.next = 6;\n break;\n }\n\n chunk = this._queuedChunk;\n this._queuedChunk = null;\n return _context2.abrupt(\"return\", {\n value: chunk,\n done: false\n });\n\n case 6:\n if (!this._done) {\n _context2.next = 8;\n break;\n }\n\n return _context2.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 8:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context2.abrupt(\"return\", requestCapability.promise);\n\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _read2.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n this._done = true;\n\n var _iterator7 = _createForOfIteratorHelper(this._requests),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var requestCapability = _step7.value;\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n this._requests.length = 0;\n\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n\n this._close();\n }\n }]);\n\n return PDFNetworkStreamRangeRequestReader;\n}();\n\n/***/ }),\n/* 157 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFFetchStream = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(4);\n\nvar _network_utils = __w_pdfjs_require__(154);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n;\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers: headers,\n signal: abortController === null || abortController === void 0 ? void 0 : abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\n\nfunction createHeaders(httpHeaders) {\n var headers = new Headers();\n\n for (var property in httpHeaders) {\n var value = httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n headers.append(property, value);\n }\n\n return headers;\n}\n\nvar PDFFetchStream = /*#__PURE__*/function () {\n function PDFFetchStream(source) {\n _classCallCheck(this, PDFFetchStream);\n\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _createClass(PDFFetchStream, [{\n key: \"_progressiveDataLength\",\n get: function get() {\n var _this$_fullRequestRea, _this$_fullRequestRea2;\n\n return (_this$_fullRequestRea = (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2._loaded) !== null && _this$_fullRequestRea !== void 0 ? _this$_fullRequestRea : 0;\n }\n }, {\n key: \"getFullReader\",\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n }, {\n key: \"getRangeReader\",\n value: function getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n var reader = new PDFFetchStreamRangeReader(this, begin, end);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n }, {\n key: \"cancelAllRequests\",\n value: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n var _iterator = _createForOfIteratorHelper(this._rangeRequestReaders.slice(0)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var reader = _step.value;\n reader.cancel(reason);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }]);\n\n return PDFFetchStream;\n}();\n\nexports.PDFFetchStream = PDFFetchStream;\n\nvar PDFFetchStreamReader = /*#__PURE__*/function () {\n function PDFFetchStreamReader(stream) {\n var _this = this;\n\n _classCallCheck(this, PDFFetchStreamReader);\n\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n var source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n var url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n _this._reader = response.body.getReader();\n\n _this._headersCapability.resolve();\n\n var getResponseHeader = function getResponseHeader(name) {\n return response.headers.get(name);\n };\n\n var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: _this._stream.isHttp,\n rangeChunkSize: _this._rangeChunkSize,\n disableRange: _this._disableRange\n }),\n allowRangeRequests = _validateRangeRequest.allowRangeRequests,\n suggestedLength = _validateRangeRequest.suggestedLength;\n\n _this._isRangeSupported = allowRangeRequests;\n _this._contentLength = suggestedLength || _this._contentLength;\n _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (!_this._isStreamingSupported && _this._isRangeSupported) {\n _this.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n }\n })[\"catch\"](this._headersCapability.reject);\n this.onProgress = null;\n }\n\n _createClass(PDFFetchStreamReader, [{\n key: \"headersReady\",\n get: function get() {\n return this._headersCapability.promise;\n }\n }, {\n key: \"filename\",\n get: function get() {\n return this._filename;\n }\n }, {\n key: \"contentLength\",\n get: function get() {\n return this._contentLength;\n }\n }, {\n key: \"isRangeSupported\",\n get: function get() {\n return this._isRangeSupported;\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var _yield$this$_reader$r, value, done, buffer;\n\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this._headersCapability.promise;\n\n case 2:\n _context.next = 4;\n return this._reader.read();\n\n case 4:\n _yield$this$_reader$r = _context.sent;\n value = _yield$this$_reader$r.value;\n done = _yield$this$_reader$r.done;\n\n if (!done) {\n _context.next = 9;\n break;\n }\n\n return _context.abrupt(\"return\", {\n value: value,\n done: done\n });\n\n case 9:\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n buffer = new Uint8Array(value).buffer;\n return _context.abrupt(\"return\", {\n value: buffer,\n done: false\n });\n\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _read.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n }]);\n\n return PDFFetchStreamReader;\n}();\n\nvar PDFFetchStreamRangeReader = /*#__PURE__*/function () {\n function PDFFetchStreamRangeReader(stream, begin, end) {\n var _this2 = this;\n\n _classCallCheck(this, PDFFetchStreamRangeReader);\n\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n var source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._isStreamingSupported = !source.disableStream;\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._headers = createHeaders(this._stream.httpHeaders);\n\n this._headers.append(\"Range\", \"bytes=\".concat(begin, \"-\").concat(end - 1));\n\n var url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n _this2._readCapability.resolve();\n\n _this2._reader = response.body.getReader();\n })[\"catch\"](this._readCapability.reject);\n this.onProgress = null;\n }\n\n _createClass(PDFFetchStreamRangeReader, [{\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee2() {\n var _yield$this$_reader$r2, value, done, buffer;\n\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this._readCapability.promise;\n\n case 2:\n _context2.next = 4;\n return this._reader.read();\n\n case 4:\n _yield$this$_reader$r2 = _context2.sent;\n value = _yield$this$_reader$r2.value;\n done = _yield$this$_reader$r2.done;\n\n if (!done) {\n _context2.next = 9;\n break;\n }\n\n return _context2.abrupt(\"return\", {\n value: value,\n done: done\n });\n\n case 9:\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n buffer = new Uint8Array(value).buffer;\n return _context2.abrupt(\"return\", {\n value: buffer,\n done: false\n });\n\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _read2.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n }]);\n\n return PDFFetchStreamRangeReader;\n}();\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/node module decorator */\n/******/ \t(() => {\n/******/ \t\t__w_pdfjs_require__.nmd = (module) => {\n/******/ \t\t\tmodule.paths = [];\n/******/ \t\t\tif (!module.children) module.children = [];\n/******/ \t\t\treturn module;\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n(() => {\n\"use strict\";\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AnnotationLayer\", ({\n enumerable: true,\n get: function get() {\n return _annotation_layer.AnnotationLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationMode\", ({\n enumerable: true,\n get: function get() {\n return _util.AnnotationMode;\n }\n}));\nObject.defineProperty(exports, \"CMapCompressionType\", ({\n enumerable: true,\n get: function get() {\n return _util.CMapCompressionType;\n }\n}));\nObject.defineProperty(exports, \"GlobalWorkerOptions\", ({\n enumerable: true,\n get: function get() {\n return _worker_options.GlobalWorkerOptions;\n }\n}));\nObject.defineProperty(exports, \"InvalidPDFException\", ({\n enumerable: true,\n get: function get() {\n return _util.InvalidPDFException;\n }\n}));\nObject.defineProperty(exports, \"LinkTarget\", ({\n enumerable: true,\n get: function get() {\n return _display_utils.LinkTarget;\n }\n}));\nObject.defineProperty(exports, \"LoopbackPort\", ({\n enumerable: true,\n get: function get() {\n return _api.LoopbackPort;\n }\n}));\nObject.defineProperty(exports, \"MissingPDFException\", ({\n enumerable: true,\n get: function get() {\n return _util.MissingPDFException;\n }\n}));\nObject.defineProperty(exports, \"OPS\", ({\n enumerable: true,\n get: function get() {\n return _util.OPS;\n }\n}));\nObject.defineProperty(exports, \"PDFDataRangeTransport\", ({\n enumerable: true,\n get: function get() {\n return _api.PDFDataRangeTransport;\n }\n}));\nObject.defineProperty(exports, \"PDFDateString\", ({\n enumerable: true,\n get: function get() {\n return _display_utils.PDFDateString;\n }\n}));\nObject.defineProperty(exports, \"PDFWorker\", ({\n enumerable: true,\n get: function get() {\n return _api.PDFWorker;\n }\n}));\nObject.defineProperty(exports, \"PasswordResponses\", ({\n enumerable: true,\n get: function get() {\n return _util.PasswordResponses;\n }\n}));\nObject.defineProperty(exports, \"PermissionFlag\", ({\n enumerable: true,\n get: function get() {\n return _util.PermissionFlag;\n }\n}));\nObject.defineProperty(exports, \"PixelsPerInch\", ({\n enumerable: true,\n get: function get() {\n return _display_utils.PixelsPerInch;\n }\n}));\nObject.defineProperty(exports, \"RenderingCancelledException\", ({\n enumerable: true,\n get: function get() {\n return _display_utils.RenderingCancelledException;\n }\n}));\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function get() {\n return _svg.SVGGraphics;\n }\n}));\nObject.defineProperty(exports, \"UNSUPPORTED_FEATURES\", ({\n enumerable: true,\n get: function get() {\n return _util.UNSUPPORTED_FEATURES;\n }\n}));\nObject.defineProperty(exports, \"UnexpectedResponseException\", ({\n enumerable: true,\n get: function get() {\n return _util.UnexpectedResponseException;\n }\n}));\nObject.defineProperty(exports, \"Util\", ({\n enumerable: true,\n get: function get() {\n return _util.Util;\n }\n}));\nObject.defineProperty(exports, \"VerbosityLevel\", ({\n enumerable: true,\n get: function get() {\n return _util.VerbosityLevel;\n }\n}));\nObject.defineProperty(exports, \"XfaLayer\", ({\n enumerable: true,\n get: function get() {\n return _xfa_layer.XfaLayer;\n }\n}));\nObject.defineProperty(exports, \"addLinkAttributes\", ({\n enumerable: true,\n get: function get() {\n return _display_utils.addLinkAttributes;\n }\n}));\nObject.defineProperty(exports, \"build\", ({\n enumerable: true,\n get: function get() {\n return _api.build;\n }\n}));\nObject.defineProperty(exports, \"createObjectURL\", ({\n enumerable: true,\n get: function get() {\n return _util.createObjectURL;\n }\n}));\nObject.defineProperty(exports, \"createPromiseCapability\", ({\n enumerable: true,\n get: function get() {\n return _util.createPromiseCapability;\n }\n}));\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", ({\n enumerable: true,\n get: function get() {\n return _util.createValidAbsoluteUrl;\n }\n}));\nObject.defineProperty(exports, \"getDocument\", ({\n enumerable: true,\n get: function get() {\n return _api.getDocument;\n }\n}));\nObject.defineProperty(exports, \"getFilenameFromUrl\", ({\n enumerable: true,\n get: function get() {\n return _display_utils.getFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getPdfFilenameFromUrl\", ({\n enumerable: true,\n get: function get() {\n return _display_utils.getPdfFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getXfaPageViewport\", ({\n enumerable: true,\n get: function get() {\n return _display_utils.getXfaPageViewport;\n }\n}));\nObject.defineProperty(exports, \"isPdfFile\", ({\n enumerable: true,\n get: function get() {\n return _display_utils.isPdfFile;\n }\n}));\nObject.defineProperty(exports, \"loadScript\", ({\n enumerable: true,\n get: function get() {\n return _display_utils.loadScript;\n }\n}));\nObject.defineProperty(exports, \"removeNullCharacters\", ({\n enumerable: true,\n get: function get() {\n return _util.removeNullCharacters;\n }\n}));\nObject.defineProperty(exports, \"renderTextLayer\", ({\n enumerable: true,\n get: function get() {\n return _text_layer.renderTextLayer;\n }\n}));\nObject.defineProperty(exports, \"shadow\", ({\n enumerable: true,\n get: function get() {\n return _util.shadow;\n }\n}));\nObject.defineProperty(exports, \"version\", ({\n enumerable: true,\n get: function get() {\n return _api.version;\n }\n}));\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _util = __w_pdfjs_require__(4);\n\nvar _api = __w_pdfjs_require__(136);\n\nvar _annotation_layer = __w_pdfjs_require__(148);\n\nvar _worker_options = __w_pdfjs_require__(142);\n\nvar _is_node = __w_pdfjs_require__(6);\n\nvar _text_layer = __w_pdfjs_require__(151);\n\nvar _svg = __w_pdfjs_require__(152);\n\nvar _xfa_layer = __w_pdfjs_require__(150);\n\nvar pdfjsVersion = '2.12.313';\nvar pdfjsBuild = 'a2ae56f39';\n{\n if (_is_node.isNodeJS) {\n var _require = __w_pdfjs_require__(153),\n PDFNodeStream = _require.PDFNodeStream;\n\n (0, _api.setPDFNetworkStreamFactory)(function (params) {\n return new PDFNodeStream(params);\n });\n } else {\n var _require2 = __w_pdfjs_require__(156),\n PDFNetworkStream = _require2.PDFNetworkStream;\n\n var _require3 = __w_pdfjs_require__(157),\n PDFFetchStream = _require3.PDFFetchStream;\n\n (0, _api.setPDFNetworkStreamFactory)(function (params) {\n if ((0, _display_utils.isValidFetchUrl)(params.url)) {\n return new PDFFetchStream(params);\n }\n\n return new PDFNetworkStream(params);\n });\n }\n}\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=pdf.js.map","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x,blackBright:x,redBright:x,greenBright:x,yellowBright:x,blueBright:x,magentaBright:x,cyanBright:x,whiteBright:x,bgBlackBright:x,bgRedBright:x,bgGreenBright:x,bgYellowBright:x,bgBlueBright:x,bgMagentaBright:x,bgCyanBright:x,bgWhiteBright:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet Declaration = require('./declaration')\nlet Comment = require('./comment')\nlet Node = require('./node')\n\nlet parse, Rule, AtRule, Root\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markDirtyUp(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markDirtyUp(i)\n }\n }\n}\n\nclass Container extends Node {\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = exist === 0 ? 'prepend' : false\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markDirtyUp(i)\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n getProxyProcessor() {\n return {\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n },\n\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n }\n }\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : '<css input>'\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n if (terminalHighlight) {\n if (color) css = terminalHighlight(css)\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n\n let maxWidth = String(end).length\n\n let mark, aside\n if (color) {\n let { bold, red, gray } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n } else {\n mark = aside = str => str\n }\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n return mark('>') + aside(gutter) + line + '\\n ' + spacing + mark('^')\n }\n return ' ' + aside(gutter) + line\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet PreviousMap = require('./previous-map')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Input = require('./input')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\nlet { resolve, isAbsolute } = require('path')\nlet { nanoid } = require('nanoid/non-secure')\n\nlet terminalHighlight = require('./terminal-highlight')\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = '<input css ' + nanoid(6) + '>'\n }\n if (this.map) this.map.file = this.from\n }\n\n fromOffset(offset) {\n let lastLine, lineToIndex\n if (!this[fromOffsetCache]) {\n let lines = this.css.split('\\n')\n lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n line: min + 1,\n col: offset - lineToIndex[min] + 1\n }\n }\n\n error(message, line, column, opts = {}) {\n let result, endLine, endColumn\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof line.offset === 'number') {\n let pos = this.fromOffset(start.offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n }\n if (typeof end.offset === 'number') {\n let pos = this.fromOffset(end.offset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n }\n } else if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { line: origin.line, column: origin.column },\n origin.endLine === undefined\n ? origin.column\n : { line: origin.endLine, column: origin.endColumn },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { line, column },\n endLine === undefined ? column : { line: endLine, column: endColumn },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { line, column, endLine, endColumn, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ line, column })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ line: endLine, column: endColumn })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n url: fromUrl.toString(),\n line: from.line,\n column: from.column,\n endLine: to && to.line,\n endColumn: to && to.column\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n get from() {\n return this.file || this.id\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet Container = require('./container')\nlet Document = require('./document')\nlet warnOnce = require('./warn-once')\nlet Result = require('./result')\nlet parse = require('./parse')\nlet Root = require('./root')\n\nconst TYPE_TO_CLASS_NAME = {\n document: 'Document',\n root: 'Root',\n atrule: 'AtRule',\n rule: 'Rule',\n decl: 'Declaration',\n comment: 'Comment'\n}\n\nconst PLUGIN_PROPS = {\n postcssPlugin: true,\n prepare: true,\n Once: true,\n Document: true,\n Root: true,\n Declaration: true,\n Rule: true,\n AtRule: true,\n Comment: true,\n DeclarationExit: true,\n RuleExit: true,\n AtRuleExit: true,\n CommentExit: true,\n RootExit: true,\n DocumentExit: true,\n OnceExit: true\n}\n\nconst NOT_VISITORS = {\n postcssPlugin: true,\n prepare: true,\n Once: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n node,\n events,\n eventIndex: 0,\n visitors: [],\n visitorIndex: 0,\n iterator: 0\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, result: this.result, postcss }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n\n get processor() {\n return this.result.processor\n }\n\n get opts() {\n return this.result.opts\n }\n\n get css() {\n return this.stringify().css\n }\n\n get content() {\n return this.stringify().content\n }\n\n get map() {\n return this.stringify().map\n }\n\n get root() {\n return this.sync().root\n }\n\n get messages() {\n return this.sync().messages\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n toString() {\n return this.css\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet list = {\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n comma(string) {\n return list.split(string, [','], true)\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, resolve, relative, sep } = require('path')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.css, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.indexOf('# sourceMappingURL=') === 0) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/(\\n)?\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n this.map.setSourceContent(\n this.toUrl(this.path(from)),\n node.source.input.css\n )\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n this.map.setSourceContent(from, this.css)\n }\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = map.sourcesContent.map(() => null)\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev)\n } else {\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n this.map.addMapping({\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>',\n generated: { line: 1, column: 0 },\n original: { line: 1, column: 0 }\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n path(file) {\n if (file.indexOf('<') === 0) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n if (this.mapOpts.absolute) return file\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n file = relative(from, file)\n return file\n }\n\n toUrl(path) {\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n return encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.mapOpts.absolute) {\n if (pathToFileURL) {\n return pathToFileURL(node.source.input.from).toString()\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n\n let line = 1\n let column = 1\n\n let noSource = '<no source>'\n let mapping = {\n source: '',\n generated: { line: 0, column: 0 },\n original: { line: 0, column: 0 }\n }\n\n let lines, last\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n if (node.type !== 'decl' || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\nlet parse = require('./parse')\nconst Result = require('./result')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n\n get processor() {\n return this.result.processor\n }\n\n get opts() {\n return this.result.opts\n }\n\n get css() {\n return this.result.css\n }\n\n get content() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get messages() {\n return []\n }\n\n warnings() {\n return []\n }\n\n toString() {\n return this._css\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { start, end } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { line: start.line, column: start.column },\n { line: end.line, column: end.column },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n inputId,\n start: value.start,\n end: value.end\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n positionInside(index) {\n let string = this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { line, column }\n }\n\n positionBy(opts) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index)\n } else if (opts.word) {\n let index = this.toString().indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index)\n }\n return pos\n }\n\n rangeBy(opts) {\n let start = {\n line: this.source.start.line,\n column: this.source.start.column\n }\n let end = this.source.end\n ? {\n line: this.source.end.line,\n column: this.source.end.column + 1\n }\n : {\n line: start.line,\n column: start.column + 1\n }\n\n if (opts.word) {\n let index = this.toString().indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index)\n end = this.positionInside(index + opts.word.length)\n }\n } else {\n if (opts.start) {\n start = {\n line: opts.start.line,\n column: opts.start.column\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n line: opts.end.line,\n column: opts.end.column\n }\n } else if (opts.endIndex) {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { line: start.line, column: start.column + 1 }\n }\n\n return { start, end }\n }\n\n getProxyProcessor() {\n return {\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n },\n\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n }\n }\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Container = require('./container')\nlet Parser = require('./parser')\nlet Input = require('./input')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet tokenizer = require('./tokenize')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n this.customProperty = false\n\n this.createTokenizer()\n this.root.source = { input, start: { offset: 0, line: 1, column: 1 } }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().indexOf('!') === 0 && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().indexOf('!') === 0) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n offset,\n line: pos.line,\n column: pos.col\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n start: this.getPosition(offset),\n input: this.input\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { value, raw }\n }\n node[prop] = value\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n colon(tokens) {\n let brackets = 0\n let token, type, prev\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n // Errors\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word',\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet LazyResult = require('./lazy-result')\nlet Container = require('./container')\nlet Processor = require('./processor')\nlet stringify = require('./stringify')\nlet fromJSON = require('./fromJSON')\nlet Document = require('./document')\nlet Warning = require('./warning')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Result = require('./result.js')\nlet Input = require('./input')\nlet parse = require('./parse')\nlet list = require('./list')\nlet Rule = require('./rule')\nlet Root = require('./root')\nlet Node = require('./node')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': é‡Œé¢ postcss.plugin 被弃用. è¿ç§»æŒ‡å—:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length))\n }\n\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet NoWorkResult = require('./no-work-result')\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.17'\n this.plugins = this.normalize(plugins)\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n\n process(css, opts = {}) {\n if (\n this.plugins.length === 0 &&\n typeof opts.parser === 'undefined' &&\n typeof opts.stringifier === 'undefined' &&\n typeof opts.syntax === 'undefined'\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nconst DEFAULT_RAW = {\n colon: ': ',\n indent: ' ',\n beforeDecl: '\\n',\n beforeRule: '\\n',\n beforeOpen: ' ',\n beforeClose: '\\n',\n beforeComment: '\\n',\n after: '\\n',\n emptyBody: '',\n commentLeft: ' ',\n commentRight: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n\n document(node) {\n this.body(node)\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, next, quote, content, escape\n let escaped, escapePos, prev, n, currentToken\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n nextToken,\n endOfFile,\n position\n }\n}\n","/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n if (printed[message]) return\n printed[message] = true\n\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message)\n }\n}\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n plugin: this.plugin,\n index: this.index,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=[],e=n.__b,a=n.__r,v=n.diffed,l=n.__c,m=n.unmount;function d(t,u){n.__h&&n.__h(r,t,o||u),o=0;var i=r.__H||(r.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:c}),i.__[t]}function p(n){return o=1,y(B,n)}function y(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):B(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){r.u=!0;var f=r.shouldComponentUpdate;r.shouldComponentUpdate=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return!n.__N}))return!f||f.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!f||f.call(this,n,t,r))}}return o.__N||o.__}function h(u,i){var o=d(t++,3);!n.__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__H.__h.push(o))}function s(u,i){var o=d(t++,4);!n.__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__h.push(o))}function _(n){return o=5,F(function(){return{current:n}},[])}function A(n,t,r){o=6,s(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function F(n,r){var u=d(t++,7);return z(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function T(n,t){return o=8,F(function(){return n},t)}function q(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function x(t,r){n.useDebugValue&&n.useDebugValue(r?r(t):t)}function P(n){var u=d(t++,10),i=p();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function V(){var n=d(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function b(){for(var t;t=f.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(k),t.__H.__h.forEach(w),t.__H.__h=[]}catch(r){t.__H.__h=[],n.__e(r,t.__v)}}n.__b=function(n){r=null,e&&e(n)},n.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c,n.__N=n.i=void 0})):(i.__h.forEach(k),i.__h.forEach(w),i.__h=[])),u=r},n.diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==f.push(o)&&i===n.requestAnimationFrame||((i=n.requestAnimationFrame)||j)(b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(n.__=n.__V),n.i=void 0,n.__V=c})),u=r=null},n.__c=function(t,r){r.some(function(t){try{t.__h.forEach(k),t.__h=t.__h.filter(function(n){return!n.__||w(n)})}catch(u){r.some(function(n){n.__h&&(n.__h=[])}),r=[],n.__e(u,t.__v)}}),l&&l(t,r)},n.unmount=function(t){m&&m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{k(n)}catch(n){r=n}}),u.__H=void 0,r&&n.__e(r,u.__v))};var g=\"function\"==typeof requestAnimationFrame;function j(n){var t,r=function(){clearTimeout(u),g&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);g&&(t=requestAnimationFrame(r))}function k(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function w(n){var t=r;n.__c=n.__(),r=t}function z(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function B(n,t){return\"function\"==typeof t?t(n):t}export{T as useCallback,q as useContext,x as useDebugValue,h as useEffect,P as useErrorBoundary,V as useId,A as useImperativeHandle,s as useLayoutEffect,F as useMemo,y as useReducer,_ as useRef,p as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as l,createRef as c,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useState as a,useId as s,useReducer as h,useEffect as v,useLayoutEffect as d,useRef as p,useImperativeHandle as m,useMemo as y,useCallback as _,useContext as b,useDebugValue as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n,t){return n===t&&(0!==n||1/n==1/t)||n!=n&&t!=t}function w(n){this.props=n}function R(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:C(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(w.prototype=new n).isPureReactComponent=!0,w.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var x=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),x&&x(n)};var N=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function k(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=N,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var A=function(n,t){return null==n?null:r(r(n).map(t))},O={map:A,forEach:A,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},T=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);T(n,t,e,r)};var I=e.unmount;function L(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return L(n,t,e)})),n}function U(n,t,e){return n&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return U(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.insertBefore(n.__e,n.__d),n.__c.__e=!0,n.__c.__P=e)),n}function D(){this.__u=0,this.t=null,this.__b=null}function F(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function M(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function V(){this.u=null,this.o=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),I&&I(n)},(D.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=F(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=U(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}},c=!0===t.__h;r.__u++||c||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},D.prototype.componentWillUnmount=function(){this.t=[]},D.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=L(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__h=null),[t(u,null,e.__a?null:n.children),i]};var W=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function P(n){return this.getChildContext=function(){return n.context},n.children}function $(n){var e=this,r=n.i;e.componentWillUnmount=function(){o(null,e.l),e.l=null,e.i=null},e.i&&e.i!==r&&e.componentWillUnmount(),n.__v?(e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n)},insertBefore:function(n,t){this.childNodes.push(n),e.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n)}}),o(t(P,{context:e.context},n.__v),e.l)):e.l&&e.componentWillUnmount()}function j(n,e){var r=t($,{__v:n,i:e});return r.containerInfo=e,r}(V.prototype=new n).__a=function(n){var t=this,e=F(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),W(t,n,r)):u()};e?e(o):o()}},V.prototype.render=function(n){this.u=null,this.o=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},V.prototype.componentDidUpdate=V.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){W(n,e,t)})};var z=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H=\"undefined\"!=typeof document,Z=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function Y(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function q(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var G=e.event;function J(){}function K(){return this.cancelBubble}function Q(){return this.defaultPrevented}e.event=function(n){return G&&(n=G(n)),n.persist=J,n.isPropagationStopped=K,n.isDefaultPrevented=Q,n.nativeEvent=n};var X,nn={configurable:!0,get:function(){return this.class}},tn=e.vnode;e.vnode=function(n){var t=n.type,e=n.props,u=e;if(\"string\"==typeof t){var o=-1===t.indexOf(\"-\");for(var i in u={},e){var l=e[i];H&&\"children\"===i&&\"noscript\"===t||\"value\"===i&&\"defaultValue\"in e&&null==l||(\"defaultValue\"===i&&\"value\"in e&&null==e.value?i=\"value\":\"download\"===i&&!0===l?l=\"\":/ondoubleclick/i.test(i)?i=\"ondblclick\":/^onchange(textarea|input)/i.test(i+t)&&!Z(e.type)?i=\"oninput\":/^onfocus$/i.test(i)?i=\"onfocusin\":/^onblur$/i.test(i)?i=\"onfocusout\":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)?i=i.toLowerCase():o&&B.test(i)?i=i.replace(/[A-Z0-9]/g,\"-$&\").toLowerCase():null===l&&(l=void 0),/^oninput$/i.test(i)&&(i=i.toLowerCase(),u[i]&&(i=\"oninputCapture\")),u[i]=l)}\"select\"==t&&u.multiple&&Array.isArray(u.value)&&(u.value=r(e.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==t&&null!=u.defaultValue&&(u.value=r(e.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),n.props=u,e.class!=e.className&&(nn.enumerable=\"className\"in e,null!=e.className&&(u.class=e.className),Object.defineProperty(u,\"className\",nn))}n.$$typeof=z,tn&&tn(n)};var en=e.__r;e.__r=function(n){en&&en(n),X=n.__c};var rn={ReactCurrentDispatcher:{current:{readContext:function(n){return X.__n[n.__c].props.value}}}},un=\"17.0.2\";function on(n){return t.bind(null,n)}function ln(n){return!!n&&n.$$typeof===z}function cn(n){return ln(n)?f.apply(null,arguments):n}function fn(n){return!!n.__k&&(o(null,n),!0)}function an(n){return n&&(n.base||1===n.nodeType&&n)||null}var sn=function(n,t){return n(t)},hn=function(n,t){return n(t)},vn=u;function dn(n){n()}function pn(n){return n}function mn(){return[!1,dn]}var yn=d;function _n(n,t){var e=t(),r=a({h:{__:e,v:t}}),u=r[0].h,o=r[1];return d(function(){u.__=e,u.v=t,E(u.__,t())||o({h:u})},[n,e,t]),v(function(){return E(u.__,u.v())||o({h:u}),n(function(){E(u.__,u.v())||o({h:u})})},[n]),e}var bn={useState:a,useId:s,useReducer:h,useEffect:v,useLayoutEffect:d,useInsertionEffect:yn,useTransition:mn,useDeferredValue:pn,useSyncExternalStore:_n,startTransition:dn,useRef:p,useImperativeHandle:m,useMemo:y,useCallback:_,useContext:b,useDebugValue:S,version:\"17.0.2\",Children:O,render:Y,hydrate:q,unmountComponentAtNode:fn,createPortal:j,createElement:t,createContext:l,createFactory:on,cloneElement:cn,createRef:c,Fragment:u,isValidElement:ln,findDOMNode:an,Component:n,PureComponent:w,memo:R,forwardRef:k,flushSync:hn,unstable_batchedUpdates:sn,StrictMode:vn,Suspense:D,SuspenseList:V,lazy:M,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:rn};export{O as Children,w as PureComponent,vn as StrictMode,D as Suspense,V as SuspenseList,rn as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,cn as cloneElement,on as createFactory,j as createPortal,bn as default,an as findDOMNode,hn as flushSync,k as forwardRef,q as hydrate,ln as isValidElement,M as lazy,R as memo,Y as render,dn as startTransition,fn as unmountComponentAtNode,sn as unstable_batchedUpdates,pn as useDeferredValue,yn as useInsertionEffect,_n as useSyncExternalStore,mn as useTransition,un as version};\n//# sourceMappingURL=compat.module.js.map\n","var n,l,u,i,t,r,o,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function h(n,l){for(var u in l)n[u]=l[u];return n}function v(n){var l=n.parentNode;l&&l.removeChild(n)}function y(l,u,i){var t,r,o,f={};for(o in u)\"key\"==o?t=u[o]:\"ref\"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return p(l,f,t,r,null)}function p(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u:o};return null==o&&null!=l.vnode&&l.vnode(f),f}function d(){return{current:null}}function _(n){return n.children}function k(n,l,u,i,t){var r;for(r in u)\"children\"===r||\"key\"===r||r in l||g(n,r,null,u[r],i);for(r in l)t&&\"function\"!=typeof l[r]||\"children\"===r||\"key\"===r||\"value\"===r||\"checked\"===r||u[r]===l[r]||g(n,r,l[r],u[r],i)}function b(n,l,u){\"-\"===l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||a.test(l)?u:u+\"px\"}function g(n,l,u,i,t){var r;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||b(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||b(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])r=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?w:m,r):n.removeEventListener(l,r?w:m,r);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!==l&&\"height\"!==l&&\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&-1==l.indexOf(\"-\")?n.removeAttribute(l):n.setAttribute(l,u))}}function m(n){t=!0;try{return this.l[n.type+!1](l.event?l.event(n):n)}finally{t=!1}}function w(n){t=!0;try{return this.l[n.type+!0](l.event?l.event(n):n)}finally{t=!1}}function x(n,l){this.props=n,this.context=l}function A(n,l){if(null==l)return n.__?A(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?A(n):null}function P(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return P(n)}}function C(n){t?setTimeout(n):f(n)}function T(n){(!n.__d&&(n.__d=!0)&&r.push(n)&&!$.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||C)($)}function $(){var n,l,u,i,t,o,f,e;for(r.sort(function(n,l){return n.__v.__b-l.__v.__b});n=r.shift();)n.__d&&(l=r.length,i=void 0,t=void 0,f=(o=(u=n).__v).__e,(e=u.__P)&&(i=[],(t=h({},o)).__v=o.__v+1,M(e,o,t,u.__n,void 0!==e.ownerSVGElement,null!=o.__h?[f]:null,i,null==f?A(o):f,o.__h),N(i,o),o.__e!=f&&P(o)),r.length>l&&r.sort(function(n,l){return n.__v.__b-l.__v.__b}));$.__r=0}function H(n,l,u,i,t,r,o,f,e,a){var h,v,y,d,k,b,g,m=i&&i.__k||s,w=m.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(d=u.__k[h]=null==(d=l[h])||\"boolean\"==typeof d?null:\"string\"==typeof d||\"number\"==typeof d||\"bigint\"==typeof d?p(null,d,null,null,d):Array.isArray(d)?p(_,{children:d},null,null,null):d.__b>0?p(d.type,d.props,d.key,d.ref?d.ref:null,d.__v):d)){if(d.__=u,d.__b=u.__b+1,null===(y=m[h])||y&&d.key==y.key&&d.type===y.type)m[h]=void 0;else for(v=0;v<w;v++){if((y=m[v])&&d.key==y.key&&d.type===y.type){m[v]=void 0;break}y=null}M(n,d,y=y||c,t,r,o,f,e,a),k=d.__e,(v=d.ref)&&y.ref!=v&&(g||(g=[]),y.ref&&g.push(y.ref,null,d),g.push(v,d.__c||k,d)),null!=k?(null==b&&(b=k),\"function\"==typeof d.type&&d.__k===y.__k?d.__d=e=I(d,e,n):e=z(n,d,y,m,k,e),\"function\"==typeof u.type&&(u.__d=e)):e&&y.__e==e&&e.parentNode!=n&&(e=A(y))}for(u.__e=b,h=w;h--;)null!=m[h]&&(\"function\"==typeof u.type&&null!=m[h].__e&&m[h].__e==u.__d&&(u.__d=L(i).nextSibling),q(m[h],m[h]));if(g)for(h=0;h<g.length;h++)S(g[h],g[++h],g[++h])}function I(n,l,u){for(var i,t=n.__k,r=0;t&&r<t.length;r++)(i=t[r])&&(i.__=n,l=\"function\"==typeof i.type?I(i,l,u):z(u,i,i,t,i.__e,l));return l}function j(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){j(n,l)}):l.push(n)),l}function z(n,l,u,i,t,r){var o,f,e;if(void 0!==l.__d)o=l.__d,l.__d=void 0;else if(null==u||t!=r||null==t.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(t),o=null;else{for(f=r,e=0;(f=f.nextSibling)&&e<i.length;e+=1)if(f==t)break n;n.insertBefore(t,r),o=r}return void 0!==o?o:t.nextSibling}function L(n){var l,u,i;if(null==n.type||\"string\"==typeof n.type)return n.__e;if(n.__k)for(l=n.__k.length-1;l>=0;l--)if((u=n.__k[l])&&(i=L(u)))return i;return null}function M(n,u,i,t,r,o,f,e,c){var s,a,v,y,p,d,k,b,g,m,w,A,P,C,T,$=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(s=l.__b)&&s(u);try{n:if(\"function\"==typeof $){if(b=u.props,g=(s=$.contextType)&&t[s.__c],m=s?g?g.props.value:s.__:t,i.__c?k=(a=u.__c=i.__c).__=a.__E:(\"prototype\"in $&&$.prototype.render?u.__c=a=new $(b,m):(u.__c=a=new x(b,m),a.constructor=$,a.render=B),g&&g.sub(a),a.props=b,a.state||(a.state={}),a.context=m,a.__n=t,v=a.__d=!0,a.__h=[],a._sb=[]),null==a.__s&&(a.__s=a.state),null!=$.getDerivedStateFromProps&&(a.__s==a.state&&(a.__s=h({},a.__s)),h(a.__s,$.getDerivedStateFromProps(b,a.__s))),y=a.props,p=a.state,a.__v=u,v)null==$.getDerivedStateFromProps&&null!=a.componentWillMount&&a.componentWillMount(),null!=a.componentDidMount&&a.__h.push(a.componentDidMount);else{if(null==$.getDerivedStateFromProps&&b!==y&&null!=a.componentWillReceiveProps&&a.componentWillReceiveProps(b,m),!a.__e&&null!=a.shouldComponentUpdate&&!1===a.shouldComponentUpdate(b,a.__s,m)||u.__v===i.__v){for(u.__v!==i.__v&&(a.props=b,a.state=a.__s,a.__d=!1),u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),w=0;w<a._sb.length;w++)a.__h.push(a._sb[w]);a._sb=[],a.__h.length&&f.push(a);break n}null!=a.componentWillUpdate&&a.componentWillUpdate(b,a.__s,m),null!=a.componentDidUpdate&&a.__h.push(function(){a.componentDidUpdate(y,p,d)})}if(a.context=m,a.props=b,a.__P=n,A=l.__r,P=0,\"prototype\"in $&&$.prototype.render){for(a.state=a.__s,a.__d=!1,A&&A(u),s=a.render(a.props,a.state,a.context),C=0;C<a._sb.length;C++)a.__h.push(a._sb[C]);a._sb=[]}else do{a.__d=!1,A&&A(u),s=a.render(a.props,a.state,a.context),a.state=a.__s}while(a.__d&&++P<25);a.state=a.__s,null!=a.getChildContext&&(t=h(h({},t),a.getChildContext())),v||null==a.getSnapshotBeforeUpdate||(d=a.getSnapshotBeforeUpdate(y,p)),T=null!=s&&s.type===_&&null==s.key?s.props.children:s,H(n,Array.isArray(T)?T:[T],u,i,t,r,o,f,e,c),a.base=u.__e,u.__h=null,a.__h.length&&f.push(a),k&&(a.__E=a.__=null),a.__e=!1}else null==o&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=O(i.__e,u,i,t,r,o,f,c);(s=l.diffed)&&s(u)}catch(n){u.__v=null,(c||null!=o)&&(u.__e=e,u.__h=!!c,o[o.indexOf(e)]=null),l.__e(n,u,i)}}function N(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function O(l,u,i,t,r,o,f,e){var s,a,h,y=i.props,p=u.props,d=u.type,_=0;if(\"svg\"===d&&(r=!0),null!=o)for(;_<o.length;_++)if((s=o[_])&&\"setAttribute\"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,o[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=r?document.createElementNS(\"http://www.w3.org/2000/svg\",d):document.createElement(d,p.is&&p),o=null,e=!1}if(null===d)y===p||e&&l.data===p||(l.data=p);else{if(o=o&&n.call(l.childNodes),a=(y=i.props||c).dangerouslySetInnerHTML,h=p.dangerouslySetInnerHTML,!e){if(null!=o)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(h||a)&&(h&&(a&&h.__html==a.__html||h.__html===l.innerHTML)||(l.innerHTML=h&&h.__html||\"\"))}if(k(l,p,y,r,e),h)u.__k=[];else if(_=u.props.children,H(l,Array.isArray(_)?_:[_],u,i,t,r&&\"foreignObject\"!==d,o,f,o?o[0]:i.__k&&A(i,0),e),null!=o)for(_=o.length;_--;)null!=o[_]&&v(o[_]);e||(\"value\"in p&&void 0!==(_=p.value)&&(_!==l.value||\"progress\"===d&&!_||\"option\"===d&&_!==y.value)&&g(l,\"value\",_,y.value,!1),\"checked\"in p&&void 0!==(_=p.checked)&&_!==l.checked&&g(l,\"checked\",_,y.checked,!1))}return l}function S(n,u,i){try{\"function\"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function q(n,u,i){var t,r;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||S(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null,n.__c=void 0}if(t=n.__k)for(r=0;r<t.length;r++)t[r]&&q(t[r],u,i||\"function\"!=typeof n.type);i||null==n.__e||v(n.__e),n.__=n.__e=n.__d=void 0}function B(n,l,u){return this.constructor(n,u)}function D(u,i,t){var r,o,f;l.__&&l.__(u,i),o=(r=\"function\"==typeof t)?null:t&&t.__k||i.__k,f=[],M(i,u=(!r&&t||i).__k=y(_,null,[u]),o||c,c,void 0!==i.ownerSVGElement,!r&&t?[t]:o?null:i.firstChild?n.call(i.childNodes):null,f,!r&&t?t:o?o.__e:i.firstChild,r),N(f,u)}function E(n,l){D(n,l,E)}function F(l,u,i){var t,r,o,f=h({},l.props);for(o in u)\"key\"==o?t=u[o]:\"ref\"==o?r=u[o]:f[o]=u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),p(l.type,f,t||l.key,r||l.ref,null)}function G(n,l){var u={__c:l=\"__cC\"+e++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,T(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=s.slice,l={__e:function(n,l,u,i){for(var t,r,o;l=l.__;)if((t=l.__c)&&!t.__)try{if((r=t.constructor)&&null!=r.getDerivedStateFromError&&(t.setState(r.getDerivedStateFromError(n)),o=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),o=t.__d),o)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},t=!1,x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=h({},this.state),\"function\"==typeof n&&(n=n(h({},u),this.props)),n&&h(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),T(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),T(this))},x.prototype.render=_,r=[],f=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,$.__r=0,e=0;export{x as Component,_ as Fragment,F as cloneElement,G as createContext,y as createElement,d as createRef,y as h,E as hydrate,i as isValidElement,l as options,D as render,j as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","export var calculateChange = function calculateChange(e, hsl, direction, initialA, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var a = void 0;\n if (top < 0) {\n a = 0;\n } else if (top > containerHeight) {\n a = 1;\n } else {\n a = Math.round(top * 100 / containerHeight) / 100;\n }\n\n if (hsl.a !== a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: a,\n source: 'rgb'\n };\n }\n } else {\n var _a = void 0;\n if (left < 0) {\n _a = 0;\n } else if (left > containerWidth) {\n _a = 1;\n } else {\n _a = Math.round(left * 100 / containerWidth) / 100;\n }\n\n if (initialA !== _a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: _a,\n source: 'rgb'\n };\n }\n }\n return null;\n};","var checkboardCache = {};\n\nexport var render = function render(c1, c2, size, serverCanvas) {\n if (typeof document === 'undefined' && !serverCanvas) {\n return null;\n }\n var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');\n canvas.width = size * 2;\n canvas.height = size * 2;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n } // If no context can be found, return early.\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n};\n\nexport var get = function get(c1, c2, size, serverCanvas) {\n var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : '');\n\n if (checkboardCache[key]) {\n return checkboardCache[key];\n }\n\n var checkboard = render(c1, c2, size, serverCanvas);\n checkboardCache[key] = checkboard;\n return checkboard;\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React, { isValidElement } from 'react';\nimport reactCSS from 'reactcss';\nimport * as checkboard from '../../helpers/checkboard';\n\nexport var Checkboard = function Checkboard(_ref) {\n var white = _ref.white,\n grey = _ref.grey,\n size = _ref.size,\n renderers = _ref.renderers,\n borderRadius = _ref.borderRadius,\n boxShadow = _ref.boxShadow,\n children = _ref.children;\n\n var styles = reactCSS({\n 'default': {\n grid: {\n borderRadius: borderRadius,\n boxShadow: boxShadow,\n absolute: '0px 0px 0px 0px',\n background: 'url(' + checkboard.get(white, grey, size, renderers.canvas) + ') center left'\n }\n }\n });\n return isValidElement(children) ? React.cloneElement(children, _extends({}, children.props, { style: _extends({}, children.props.style, styles.grid) })) : React.createElement('div', { style: styles.grid });\n};\n\nCheckboard.defaultProps = {\n size: 8,\n white: 'transparent',\n grey: 'rgba(0,0,0,.08)',\n renderers: {}\n};\n\nexport default Checkboard;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as alpha from '../../helpers/alpha';\n\nimport Checkboard from './Checkboard';\n\nexport var Alpha = function (_ref) {\n _inherits(Alpha, _ref);\n\n function Alpha() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Alpha);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Alpha.__proto__ || Object.getPrototypeOf(Alpha)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleChange);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Alpha, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var rgb = this.props.rgb;\n var styles = reactCSS({\n 'default': {\n alpha: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n checkboard: {\n absolute: '0px 0px 0px 0px',\n overflow: 'hidden',\n borderRadius: this.props.radius\n },\n gradient: {\n absolute: '0px 0px 0px 0px',\n background: 'linear-gradient(to right, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n container: {\n position: 'relative',\n height: '100%',\n margin: '0 3px'\n },\n pointer: {\n position: 'absolute',\n left: rgb.a * 100 + '%'\n },\n slider: {\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n marginTop: '1px',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n gradient: {\n background: 'linear-gradient(to bottom, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)'\n },\n pointer: {\n left: 0,\n top: rgb.a * 100 + '%'\n }\n },\n 'overwrite': _extends({}, this.props.style)\n }, {\n vertical: this.props.direction === 'vertical',\n overwrite: true\n });\n\n return React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(\n 'div',\n { style: styles.checkboard },\n React.createElement(Checkboard, { renderers: this.props.renderers })\n ),\n React.createElement('div', { style: styles.gradient }),\n React.createElement(\n 'div',\n {\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Alpha;\n}(PureComponent || Component);\n\nexport default Alpha;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\n\nvar DEFAULT_ARROW_OFFSET = 1;\n\nvar UP_KEY_CODE = 38;\nvar DOWN_KEY_CODE = 40;\nvar VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE];\nvar isValidKeyCode = function isValidKeyCode(keyCode) {\n return VALID_KEY_CODES.indexOf(keyCode) > -1;\n};\nvar getNumberValue = function getNumberValue(value) {\n return Number(String(value).replace(/%/g, ''));\n};\n\nvar idCounter = 1;\n\nexport var EditableInput = function (_ref) {\n _inherits(EditableInput, _ref);\n\n function EditableInput(props) {\n _classCallCheck(this, EditableInput);\n\n var _this = _possibleConstructorReturn(this, (EditableInput.__proto__ || Object.getPrototypeOf(EditableInput)).call(this));\n\n _this.handleBlur = function () {\n if (_this.state.blurValue) {\n _this.setState({ value: _this.state.blurValue, blurValue: null });\n }\n };\n\n _this.handleChange = function (e) {\n _this.setUpdatedValue(e.target.value, e);\n };\n\n _this.handleKeyDown = function (e) {\n // In case `e.target.value` is a percentage remove the `%` character\n // and update accordingly with a percentage\n // https://github.com/casesandberg/react-color/issues/383\n var value = getNumberValue(e.target.value);\n if (!isNaN(value) && isValidKeyCode(e.keyCode)) {\n var offset = _this.getArrowOffset();\n var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset;\n\n _this.setUpdatedValue(updatedValue, e);\n }\n };\n\n _this.handleDrag = function (e) {\n if (_this.props.dragLabel) {\n var newValue = Math.round(_this.props.value + e.movementX);\n if (newValue >= 0 && newValue <= _this.props.dragMax) {\n _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n if (_this.props.dragLabel) {\n e.preventDefault();\n _this.handleDrag(e);\n window.addEventListener('mousemove', _this.handleDrag);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleDrag);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.state = {\n value: String(props.value).toUpperCase(),\n blurValue: String(props.value).toUpperCase()\n };\n\n _this.inputId = 'rc-editable-input-' + idCounter++;\n return _this;\n }\n\n _createClass(EditableInput, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) {\n if (this.input === document.activeElement) {\n this.setState({ blurValue: String(this.props.value).toUpperCase() });\n } else {\n this.setState({ value: String(this.props.value).toUpperCase(), blurValue: !this.state.blurValue && String(this.props.value).toUpperCase() });\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'getValueObjectWithLabel',\n value: function getValueObjectWithLabel(value) {\n return _defineProperty({}, this.props.label, value);\n }\n }, {\n key: 'getArrowOffset',\n value: function getArrowOffset() {\n return this.props.arrowOffset || DEFAULT_ARROW_OFFSET;\n }\n }, {\n key: 'setUpdatedValue',\n value: function setUpdatedValue(value, e) {\n var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value;\n this.props.onChange && this.props.onChange(onChangeValue, e);\n\n this.setState({ value: value });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n position: 'relative'\n }\n },\n 'user-override': {\n wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {},\n input: this.props.style && this.props.style.input ? this.props.style.input : {},\n label: this.props.style && this.props.style.label ? this.props.style.label : {}\n },\n 'dragLabel-true': {\n label: {\n cursor: 'ew-resize'\n }\n }\n }, {\n 'user-override': true\n }, this.props);\n\n return React.createElement(\n 'div',\n { style: styles.wrap },\n React.createElement('input', {\n id: this.inputId,\n style: styles.input,\n ref: function ref(input) {\n return _this2.input = input;\n },\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n placeholder: this.props.placeholder,\n spellCheck: 'false'\n }),\n this.props.label && !this.props.hideLabel ? React.createElement(\n 'label',\n {\n htmlFor: this.inputId,\n style: styles.label,\n onMouseDown: this.handleMouseDown\n },\n this.props.label\n ) : null\n );\n }\n }]);\n\n return EditableInput;\n}(PureComponent || Component);\n\nexport default EditableInput;","export var calculateChange = function calculateChange(e, direction, hsl, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var h = void 0;\n if (top < 0) {\n h = 359;\n } else if (top > containerHeight) {\n h = 0;\n } else {\n var percent = -(top * 100 / containerHeight) + 100;\n h = 360 * percent / 100;\n }\n\n if (hsl.h !== h) {\n return {\n h: h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n } else {\n var _h = void 0;\n if (left < 0) {\n _h = 0;\n } else if (left > containerWidth) {\n _h = 359;\n } else {\n var _percent = left * 100 / containerWidth;\n _h = 360 * _percent / 100;\n }\n\n if (hsl.h !== _h) {\n return {\n h: _h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n }\n return null;\n};","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as hue from '../../helpers/hue';\n\nexport var Hue = function (_ref) {\n _inherits(Hue, _ref);\n\n function Hue() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hue);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Hue.__proto__ || Object.getPrototypeOf(Hue)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Hue, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$direction = this.props.direction,\n direction = _props$direction === undefined ? 'horizontal' : _props$direction;\n\n\n var styles = reactCSS({\n 'default': {\n hue: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius,\n boxShadow: this.props.shadow\n },\n container: {\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n left: this.props.hsl.h * 100 / 360 + '%'\n },\n slider: {\n marginTop: '1px',\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n pointer: {\n left: '0px',\n top: -(this.props.hsl.h * 100 / 360) + 100 + '%'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(\n 'div',\n {\n className: 'hue-' + direction,\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'style',\n null,\n '\\n .hue-horizontal {\\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n\\n .hue-vertical {\\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n '\n ),\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Hue;\n}(PureComponent || Component);\n\nexport default Hue;","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nexport var Raised = function Raised(_ref) {\n var zDepth = _ref.zDepth,\n radius = _ref.radius,\n background = _ref.background,\n children = _ref.children,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles;\n\n var styles = reactCSS(merge({\n 'default': {\n wrap: {\n position: 'relative',\n display: 'inline-block'\n },\n content: {\n position: 'relative'\n },\n bg: {\n absolute: '0px 0px 0px 0px',\n boxShadow: '0 ' + zDepth + 'px ' + zDepth * 4 + 'px rgba(0,0,0,.24)',\n borderRadius: radius,\n background: background\n }\n },\n 'zDepth-0': {\n bg: {\n boxShadow: 'none'\n }\n },\n\n 'zDepth-1': {\n bg: {\n boxShadow: '0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)'\n }\n },\n 'zDepth-2': {\n bg: {\n boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)'\n }\n },\n 'zDepth-3': {\n bg: {\n boxShadow: '0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)'\n }\n },\n 'zDepth-4': {\n bg: {\n boxShadow: '0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)'\n }\n },\n 'zDepth-5': {\n bg: {\n boxShadow: '0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)'\n }\n },\n 'square': {\n bg: {\n borderRadius: '0'\n }\n },\n 'circle': {\n bg: {\n borderRadius: '50%'\n }\n }\n }, passedStyles), { 'zDepth-1': zDepth === 1 });\n\n return React.createElement(\n 'div',\n { style: styles.wrap },\n React.createElement('div', { style: styles.bg }),\n React.createElement(\n 'div',\n { style: styles.content },\n children\n )\n );\n};\n\nRaised.propTypes = {\n background: PropTypes.string,\n zDepth: PropTypes.oneOf([0, 1, 2, 3, 4, 5]),\n radius: PropTypes.number,\n styles: PropTypes.object\n};\n\nRaised.defaultProps = {\n background: '#fff',\n zDepth: 1,\n radius: 2,\n styles: {}\n};\n\nexport default Raised;","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport throttle from 'lodash-es/throttle';\nimport * as saturation from '../../helpers/saturation';\n\nexport var Saturation = function (_ref) {\n _inherits(Saturation, _ref);\n\n function Saturation(props) {\n _classCallCheck(this, Saturation);\n\n var _this = _possibleConstructorReturn(this, (Saturation.__proto__ || Object.getPrototypeOf(Saturation)).call(this, props));\n\n _this.handleChange = function (e) {\n typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e);\n };\n\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n var renderWindow = _this.getContainerRenderWindow();\n renderWindow.addEventListener('mousemove', _this.handleChange);\n renderWindow.addEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.throttle = throttle(function (fn, data, e) {\n fn(data, e);\n }, 50);\n return _this;\n }\n\n _createClass(Saturation, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.throttle.cancel();\n this.unbindEventListeners();\n }\n }, {\n key: 'getContainerRenderWindow',\n value: function getContainerRenderWindow() {\n var container = this.container;\n\n var renderWindow = window;\n while (!renderWindow.document.contains(container) && renderWindow.parent !== renderWindow) {\n renderWindow = renderWindow.parent;\n }\n return renderWindow;\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n var renderWindow = this.getContainerRenderWindow();\n renderWindow.removeEventListener('mousemove', this.handleChange);\n renderWindow.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _ref2 = this.props.style || {},\n color = _ref2.color,\n white = _ref2.white,\n black = _ref2.black,\n pointer = _ref2.pointer,\n circle = _ref2.circle;\n\n var styles = reactCSS({\n 'default': {\n color: {\n absolute: '0px 0px 0px 0px',\n background: 'hsl(' + this.props.hsl.h + ',100%, 50%)',\n borderRadius: this.props.radius\n },\n white: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n black: {\n absolute: '0px 0px 0px 0px',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n top: -(this.props.hsv.v * 100) + 100 + '%',\n left: this.props.hsv.s * 100 + '%',\n cursor: 'default'\n },\n circle: {\n width: '4px',\n height: '4px',\n boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\\n 0 0 1px 2px rgba(0,0,0,.4)',\n borderRadius: '50%',\n cursor: 'hand',\n transform: 'translate(-2px, -2px)'\n }\n },\n 'custom': {\n color: color,\n white: white,\n black: black,\n pointer: pointer,\n circle: circle\n }\n }, { 'custom': !!this.props.style });\n\n return React.createElement(\n 'div',\n {\n style: styles.color,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'style',\n null,\n '\\n .saturation-white {\\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\\n }\\n .saturation-black {\\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\\n }\\n '\n ),\n React.createElement(\n 'div',\n { style: styles.white, className: 'saturation-white' },\n React.createElement('div', { style: styles.black, className: 'saturation-black' }),\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.circle })\n )\n )\n );\n }\n }]);\n\n return Saturation;\n}(PureComponent || Component);\n\nexport default Saturation;","export var calculateChange = function calculateChange(e, hsl, container) {\n var _container$getBoundin = container.getBoundingClientRect(),\n containerWidth = _container$getBoundin.width,\n containerHeight = _container$getBoundin.height;\n\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (left < 0) {\n left = 0;\n } else if (left > containerWidth) {\n left = containerWidth;\n }\n\n if (top < 0) {\n top = 0;\n } else if (top > containerHeight) {\n top = containerHeight;\n }\n\n var saturation = left / containerWidth;\n var bright = 1 - top / containerHeight;\n\n return {\n h: hsl.h,\n s: saturation,\n v: bright,\n a: hsl.a,\n source: 'hsv'\n };\n};","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n","import each from 'lodash-es/each';\nimport tinycolor from 'tinycolor2';\n\nexport var simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n each(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\n\nexport var toState = function toState(data, oldHue) {\n var color = data.hex ? tinycolor(data.hex) : tinycolor(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n var transparent = hex === '000000' && rgb.a === 0;\n\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : '#' + hex,\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\n\nexport var isValidHex = function isValidHex(hex) {\n if (hex === 'transparent') {\n return true;\n }\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n return hex.length !== 4 + lh && hex.length < 7 + lh && tinycolor(hex).isValid();\n};\n\nexport var getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n var col = toState(data);\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\n\nexport var red = {\n hsl: { a: 1, h: 0, l: 0.5, s: 1 },\n hex: '#ff0000',\n rgb: { r: 255, g: 0, b: 0, a: 1 },\n hsv: { h: 0, s: 1, v: 1, a: 1 }\n};\n\nexport var isvalidColorString = function isvalidColorString(string, type) {\n var stringWithoutDegree = string.replace('°', '');\n return tinycolor(type + ' (' + stringWithoutDegree + ')')._ok;\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport debounce from 'lodash-es/debounce';\nimport * as color from '../../helpers/color';\n\nexport var ColorWrap = function ColorWrap(Picker) {\n var ColorPicker = function (_ref) {\n _inherits(ColorPicker, _ref);\n\n function ColorPicker(props) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this));\n\n _this.handleChange = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.setState(colors);\n _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);\n _this.props.onChange && _this.props.onChange(colors, event);\n }\n };\n\n _this.handleSwatchHover = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);\n }\n };\n\n _this.state = _extends({}, color.toState(props.color, 0));\n\n _this.debounce = debounce(function (fn, data, event) {\n fn(data, event);\n }, 100);\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'render',\n value: function render() {\n var optionalEvents = {};\n if (this.props.onSwatchHover) {\n optionalEvents.onSwatchHover = this.handleSwatchHover;\n }\n\n return React.createElement(Picker, _extends({}, this.props, this.state, {\n onChange: this.handleChange\n }, optionalEvents));\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n return _extends({}, color.toState(nextProps.color, state.oldHue));\n }\n }]);\n\n return ColorPicker;\n }(PureComponent || Component);\n\n ColorPicker.propTypes = _extends({}, Picker.propTypes);\n\n ColorPicker.defaultProps = _extends({}, Picker.defaultProps, {\n color: {\n h: 250,\n s: 0.50,\n l: 0.20,\n a: 1\n }\n });\n\n return ColorPicker;\n};\n\nexport default ColorWrap;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable no-invalid-this */\nimport React from 'react';\n\nexport var handleFocus = function handleFocus(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n return function (_React$Component) {\n _inherits(Focus, _React$Component);\n\n function Focus() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Focus);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Focus.__proto__ || Object.getPrototypeOf(Focus)).call.apply(_ref, [this].concat(args))), _this), _this.state = { focus: false }, _this.handleFocus = function () {\n return _this.setState({ focus: true });\n }, _this.handleBlur = function () {\n return _this.setState({ focus: false });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Focus, [{\n key: 'render',\n value: function render() {\n return React.createElement(\n Span,\n { onFocus: this.handleFocus, onBlur: this.handleBlur },\n React.createElement(Component, _extends({}, this.props, this.state))\n );\n }\n }]);\n\n return Focus;\n }(React.Component);\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport { handleFocus } from '../../helpers/interaction';\n\nimport Checkboard from './Checkboard';\n\nvar ENTER = 13;\n\nexport var Swatch = function Swatch(_ref) {\n var color = _ref.color,\n style = _ref.style,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onHover = _ref.onHover,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? color : _ref$title,\n children = _ref.children,\n focus = _ref.focus,\n _ref$focusStyle = _ref.focusStyle,\n focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle;\n\n var transparent = color === 'transparent';\n var styles = reactCSS({\n default: {\n swatch: _extends({\n background: color,\n height: '100%',\n width: '100%',\n cursor: 'pointer',\n position: 'relative',\n outline: 'none'\n }, style, focus ? focusStyle : {})\n }\n });\n\n var handleClick = function handleClick(e) {\n return onClick(color, e);\n };\n var handleKeyDown = function handleKeyDown(e) {\n return e.keyCode === ENTER && onClick(color, e);\n };\n var handleHover = function handleHover(e) {\n return onHover(color, e);\n };\n\n var optionalEvents = {};\n if (onHover) {\n optionalEvents.onMouseOver = handleHover;\n }\n\n return React.createElement(\n 'div',\n _extends({\n style: styles.swatch,\n onClick: handleClick,\n title: title,\n tabIndex: 0,\n onKeyDown: handleKeyDown\n }, optionalEvents),\n children,\n transparent && React.createElement(Checkboard, {\n borderRadius: styles.swatch.borderRadius,\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)'\n })\n );\n};\n\nexport default handleFocus(Swatch);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var AlphaPointer = function AlphaPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default AlphaPointer;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\n\nimport { ColorWrap, Alpha } from '../common';\nimport AlphaPointer from './AlphaPointer';\n\nexport var AlphaPicker = function AlphaPicker(_ref) {\n var rgb = _ref.rgb,\n hsl = _ref.hsl,\n width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n direction = _ref.direction,\n style = _ref.style,\n renderers = _ref.renderers,\n pointer = _ref.pointer,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n alpha: {\n radius: '2px',\n style: style\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'alpha-picker ' + className },\n React.createElement(Alpha, _extends({}, styles.alpha, {\n rgb: rgb,\n hsl: hsl,\n pointer: pointer,\n renderers: renderers,\n onChange: onChange,\n direction: direction\n }))\n );\n};\n\nAlphaPicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: AlphaPointer\n};\n\nexport default ColorWrap(AlphaPicker);","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","import React from 'react';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\n\nimport { Swatch } from '../common';\n\nexport var BlockSwatches = function BlockSwatches(_ref) {\n var colors = _ref.colors,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n marginRight: '-10px'\n },\n swatch: {\n width: '22px',\n height: '22px',\n float: 'left',\n marginRight: '10px',\n marginBottom: '10px',\n borderRadius: '4px'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.swatches },\n map(colors, function (c) {\n return React.createElement(Swatch, {\n key: c,\n color: c,\n style: styles.swatch,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n React.createElement('div', { style: styles.clear })\n );\n};\n\nexport default BlockSwatches;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Checkboard } from '../common';\nimport BlockSwatches from './BlockSwatches';\n\nexport var Block = function Block(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var transparent = hex === 'transparent';\n var handleChange = function handleChange(hexCode, e) {\n color.isValidHex(hexCode) && onChange({\n hex: hexCode,\n source: 'hex'\n }, e);\n };\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n boxShadow: '0 1px rgba(0,0,0,.1)',\n borderRadius: '6px',\n position: 'relative'\n },\n head: {\n height: '110px',\n background: hex,\n borderRadius: '6px 6px 0 0',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative'\n },\n body: {\n padding: '10px'\n },\n label: {\n fontSize: '18px',\n color: color.getContrastingColor(hex),\n position: 'relative'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 10px 10px 10px',\n borderColor: 'transparent transparent ' + hex + ' transparent',\n position: 'absolute',\n top: '-10px',\n left: '50%',\n marginLeft: '-10px'\n },\n input: {\n width: '100%',\n fontSize: '12px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '22px',\n boxShadow: 'inset 0 0 0 1px #ddd',\n borderRadius: '4px',\n padding: '0 7px',\n boxSizing: 'border-box'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n }\n }\n }, passedStyles), { 'hide-triangle': triangle === 'hide' });\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'block-picker ' + className },\n React.createElement('div', { style: styles.triangle }),\n React.createElement(\n 'div',\n { style: styles.head },\n transparent && React.createElement(Checkboard, { borderRadius: '6px 6px 0 0' }),\n React.createElement(\n 'div',\n { style: styles.label },\n hex\n )\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(BlockSwatches, { colors: colors, onClick: handleChange, onSwatchHover: onSwatchHover }),\n React.createElement(EditableInput, {\n style: { input: styles.input },\n value: hex,\n onChange: handleChange\n })\n )\n );\n};\n\nBlock.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.string),\n triangle: PropTypes.oneOf(['top', 'hide']),\n styles: PropTypes.object\n};\n\nBlock.defaultProps = {\n width: 170,\n colors: ['#D9E3F0', '#F47373', '#697689', '#37D67A', '#2CCCE4', '#555555', '#dce775', '#ff8a65', '#ba68c8'],\n triangle: 'top',\n styles: {}\n};\n\nexport default ColorWrap(Block);","export var red = {\"50\":\"#ffebee\",\"100\":\"#ffcdd2\",\"200\":\"#ef9a9a\",\"300\":\"#e57373\",\"400\":\"#ef5350\",\"500\":\"#f44336\",\"600\":\"#e53935\",\"700\":\"#d32f2f\",\"800\":\"#c62828\",\"900\":\"#b71c1c\",\"a100\":\"#ff8a80\",\"a200\":\"#ff5252\",\"a400\":\"#ff1744\",\"a700\":\"#d50000\"};\nexport var pink = {\"50\":\"#fce4ec\",\"100\":\"#f8bbd0\",\"200\":\"#f48fb1\",\"300\":\"#f06292\",\"400\":\"#ec407a\",\"500\":\"#e91e63\",\"600\":\"#d81b60\",\"700\":\"#c2185b\",\"800\":\"#ad1457\",\"900\":\"#880e4f\",\"a100\":\"#ff80ab\",\"a200\":\"#ff4081\",\"a400\":\"#f50057\",\"a700\":\"#c51162\"};\nexport var purple = {\"50\":\"#f3e5f5\",\"100\":\"#e1bee7\",\"200\":\"#ce93d8\",\"300\":\"#ba68c8\",\"400\":\"#ab47bc\",\"500\":\"#9c27b0\",\"600\":\"#8e24aa\",\"700\":\"#7b1fa2\",\"800\":\"#6a1b9a\",\"900\":\"#4a148c\",\"a100\":\"#ea80fc\",\"a200\":\"#e040fb\",\"a400\":\"#d500f9\",\"a700\":\"#aa00ff\"};\nexport var deepPurple = {\"50\":\"#ede7f6\",\"100\":\"#d1c4e9\",\"200\":\"#b39ddb\",\"300\":\"#9575cd\",\"400\":\"#7e57c2\",\"500\":\"#673ab7\",\"600\":\"#5e35b1\",\"700\":\"#512da8\",\"800\":\"#4527a0\",\"900\":\"#311b92\",\"a100\":\"#b388ff\",\"a200\":\"#7c4dff\",\"a400\":\"#651fff\",\"a700\":\"#6200ea\"};\nexport var indigo = {\"50\":\"#e8eaf6\",\"100\":\"#c5cae9\",\"200\":\"#9fa8da\",\"300\":\"#7986cb\",\"400\":\"#5c6bc0\",\"500\":\"#3f51b5\",\"600\":\"#3949ab\",\"700\":\"#303f9f\",\"800\":\"#283593\",\"900\":\"#1a237e\",\"a100\":\"#8c9eff\",\"a200\":\"#536dfe\",\"a400\":\"#3d5afe\",\"a700\":\"#304ffe\"};\nexport var blue = {\"50\":\"#e3f2fd\",\"100\":\"#bbdefb\",\"200\":\"#90caf9\",\"300\":\"#64b5f6\",\"400\":\"#42a5f5\",\"500\":\"#2196f3\",\"600\":\"#1e88e5\",\"700\":\"#1976d2\",\"800\":\"#1565c0\",\"900\":\"#0d47a1\",\"a100\":\"#82b1ff\",\"a200\":\"#448aff\",\"a400\":\"#2979ff\",\"a700\":\"#2962ff\"};\nexport var lightBlue = {\"50\":\"#e1f5fe\",\"100\":\"#b3e5fc\",\"200\":\"#81d4fa\",\"300\":\"#4fc3f7\",\"400\":\"#29b6f6\",\"500\":\"#03a9f4\",\"600\":\"#039be5\",\"700\":\"#0288d1\",\"800\":\"#0277bd\",\"900\":\"#01579b\",\"a100\":\"#80d8ff\",\"a200\":\"#40c4ff\",\"a400\":\"#00b0ff\",\"a700\":\"#0091ea\"};\nexport var cyan = {\"50\":\"#e0f7fa\",\"100\":\"#b2ebf2\",\"200\":\"#80deea\",\"300\":\"#4dd0e1\",\"400\":\"#26c6da\",\"500\":\"#00bcd4\",\"600\":\"#00acc1\",\"700\":\"#0097a7\",\"800\":\"#00838f\",\"900\":\"#006064\",\"a100\":\"#84ffff\",\"a200\":\"#18ffff\",\"a400\":\"#00e5ff\",\"a700\":\"#00b8d4\"};\nexport var teal = {\"50\":\"#e0f2f1\",\"100\":\"#b2dfdb\",\"200\":\"#80cbc4\",\"300\":\"#4db6ac\",\"400\":\"#26a69a\",\"500\":\"#009688\",\"600\":\"#00897b\",\"700\":\"#00796b\",\"800\":\"#00695c\",\"900\":\"#004d40\",\"a100\":\"#a7ffeb\",\"a200\":\"#64ffda\",\"a400\":\"#1de9b6\",\"a700\":\"#00bfa5\"};\nexport var green = {\"50\":\"#e8f5e9\",\"100\":\"#c8e6c9\",\"200\":\"#a5d6a7\",\"300\":\"#81c784\",\"400\":\"#66bb6a\",\"500\":\"#4caf50\",\"600\":\"#43a047\",\"700\":\"#388e3c\",\"800\":\"#2e7d32\",\"900\":\"#1b5e20\",\"a100\":\"#b9f6ca\",\"a200\":\"#69f0ae\",\"a400\":\"#00e676\",\"a700\":\"#00c853\"};\nexport var lightGreen = {\"50\":\"#f1f8e9\",\"100\":\"#dcedc8\",\"200\":\"#c5e1a5\",\"300\":\"#aed581\",\"400\":\"#9ccc65\",\"500\":\"#8bc34a\",\"600\":\"#7cb342\",\"700\":\"#689f38\",\"800\":\"#558b2f\",\"900\":\"#33691e\",\"a100\":\"#ccff90\",\"a200\":\"#b2ff59\",\"a400\":\"#76ff03\",\"a700\":\"#64dd17\"};\nexport var lime = {\"50\":\"#f9fbe7\",\"100\":\"#f0f4c3\",\"200\":\"#e6ee9c\",\"300\":\"#dce775\",\"400\":\"#d4e157\",\"500\":\"#cddc39\",\"600\":\"#c0ca33\",\"700\":\"#afb42b\",\"800\":\"#9e9d24\",\"900\":\"#827717\",\"a100\":\"#f4ff81\",\"a200\":\"#eeff41\",\"a400\":\"#c6ff00\",\"a700\":\"#aeea00\"};\nexport var yellow = {\"50\":\"#fffde7\",\"100\":\"#fff9c4\",\"200\":\"#fff59d\",\"300\":\"#fff176\",\"400\":\"#ffee58\",\"500\":\"#ffeb3b\",\"600\":\"#fdd835\",\"700\":\"#fbc02d\",\"800\":\"#f9a825\",\"900\":\"#f57f17\",\"a100\":\"#ffff8d\",\"a200\":\"#ffff00\",\"a400\":\"#ffea00\",\"a700\":\"#ffd600\"};\nexport var amber = {\"50\":\"#fff8e1\",\"100\":\"#ffecb3\",\"200\":\"#ffe082\",\"300\":\"#ffd54f\",\"400\":\"#ffca28\",\"500\":\"#ffc107\",\"600\":\"#ffb300\",\"700\":\"#ffa000\",\"800\":\"#ff8f00\",\"900\":\"#ff6f00\",\"a100\":\"#ffe57f\",\"a200\":\"#ffd740\",\"a400\":\"#ffc400\",\"a700\":\"#ffab00\"};\nexport var orange = {\"50\":\"#fff3e0\",\"100\":\"#ffe0b2\",\"200\":\"#ffcc80\",\"300\":\"#ffb74d\",\"400\":\"#ffa726\",\"500\":\"#ff9800\",\"600\":\"#fb8c00\",\"700\":\"#f57c00\",\"800\":\"#ef6c00\",\"900\":\"#e65100\",\"a100\":\"#ffd180\",\"a200\":\"#ffab40\",\"a400\":\"#ff9100\",\"a700\":\"#ff6d00\"};\nexport var deepOrange = {\"50\":\"#fbe9e7\",\"100\":\"#ffccbc\",\"200\":\"#ffab91\",\"300\":\"#ff8a65\",\"400\":\"#ff7043\",\"500\":\"#ff5722\",\"600\":\"#f4511e\",\"700\":\"#e64a19\",\"800\":\"#d84315\",\"900\":\"#bf360c\",\"a100\":\"#ff9e80\",\"a200\":\"#ff6e40\",\"a400\":\"#ff3d00\",\"a700\":\"#dd2c00\"};\nexport var brown = {\"50\":\"#efebe9\",\"100\":\"#d7ccc8\",\"200\":\"#bcaaa4\",\"300\":\"#a1887f\",\"400\":\"#8d6e63\",\"500\":\"#795548\",\"600\":\"#6d4c41\",\"700\":\"#5d4037\",\"800\":\"#4e342e\",\"900\":\"#3e2723\"};\nexport var grey = {\"50\":\"#fafafa\",\"100\":\"#f5f5f5\",\"200\":\"#eeeeee\",\"300\":\"#e0e0e0\",\"400\":\"#bdbdbd\",\"500\":\"#9e9e9e\",\"600\":\"#757575\",\"700\":\"#616161\",\"800\":\"#424242\",\"900\":\"#212121\"};\nexport var blueGrey = {\"50\":\"#eceff1\",\"100\":\"#cfd8dc\",\"200\":\"#b0bec5\",\"300\":\"#90a4ae\",\"400\":\"#78909c\",\"500\":\"#607d8b\",\"600\":\"#546e7a\",\"700\":\"#455a64\",\"800\":\"#37474f\",\"900\":\"#263238\"};\nexport var darkText = {\"primary\":\"rgba(0, 0, 0, 0.87)\",\"secondary\":\"rgba(0, 0, 0, 0.54)\",\"disabled\":\"rgba(0, 0, 0, 0.38)\",\"dividers\":\"rgba(0, 0, 0, 0.12)\"};\nexport var lightText = {\"primary\":\"rgba(255, 255, 255, 1)\",\"secondary\":\"rgba(255, 255, 255, 0.7)\",\"disabled\":\"rgba(255, 255, 255, 0.5)\",\"dividers\":\"rgba(255, 255, 255, 0.12)\"};\nexport var darkIcons = {\"active\":\"rgba(0, 0, 0, 0.54)\",\"inactive\":\"rgba(0, 0, 0, 0.38)\"};\nexport var lightIcons = {\"active\":\"rgba(255, 255, 255, 1)\",\"inactive\":\"rgba(255, 255, 255, 0.5)\"};\nexport var white = \"#ffffff\";\nexport var black = \"#000000\";\n\nexport default {\n red: red,\n pink: pink,\n purple: purple,\n deepPurple: deepPurple,\n indigo: indigo,\n blue: blue,\n lightBlue: lightBlue,\n cyan: cyan,\n teal: teal,\n green: green,\n lightGreen: lightGreen,\n lime: lime,\n yellow: yellow,\n amber: amber,\n orange: orange,\n deepOrange: deepOrange,\n brown: brown,\n grey: grey,\n blueGrey: blueGrey,\n darkText: darkText,\n lightText: lightText,\n darkIcons: darkIcons,\n lightIcons: lightIcons,\n white: white,\n black: black\n};\n","import React from 'react';\nimport reactCSS, { handleHover } from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var CircleSwatch = function CircleSwatch(_ref) {\n var color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n hover = _ref.hover,\n active = _ref.active,\n circleSize = _ref.circleSize,\n circleSpacing = _ref.circleSpacing;\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n width: circleSize,\n height: circleSize,\n marginRight: circleSpacing,\n marginBottom: circleSpacing,\n transform: 'scale(1)',\n transition: '100ms transform ease'\n },\n Swatch: {\n borderRadius: '50%',\n background: 'transparent',\n boxShadow: 'inset 0 0 0 ' + (circleSize / 2 + 1) + 'px ' + color,\n transition: '100ms box-shadow ease'\n }\n },\n 'hover': {\n swatch: {\n transform: 'scale(1.2)'\n }\n },\n 'active': {\n Swatch: {\n boxShadow: 'inset 0 0 0 3px ' + color\n }\n }\n }, { hover: hover, active: active });\n\n return React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(Swatch, {\n style: styles.Swatch,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: styles.Swatch.boxShadow + ', 0 0 5px ' + color }\n })\n );\n};\n\nCircleSwatch.defaultProps = {\n circleSize: 28,\n circleSpacing: 14\n};\n\nexport default handleHover(CircleSwatch);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as material from 'material-colors';\n\nimport { ColorWrap } from '../common';\nimport CircleSwatch from './CircleSwatch';\n\nexport var Circle = function Circle(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n circleSize = _ref.circleSize,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n circleSpacing = _ref.circleSpacing,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n display: 'flex',\n flexWrap: 'wrap',\n marginRight: -circleSpacing,\n marginBottom: -circleSpacing\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(hexCode, e) {\n return onChange({ hex: hexCode, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'circle-picker ' + className },\n map(colors, function (c) {\n return React.createElement(CircleSwatch, {\n key: c,\n color: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover,\n active: hex === c.toLowerCase(),\n circleSize: circleSize,\n circleSpacing: circleSpacing\n });\n })\n );\n};\n\nCircle.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n circleSize: PropTypes.number,\n circleSpacing: PropTypes.number,\n styles: PropTypes.object\n};\n\nCircle.defaultProps = {\n width: 252,\n circleSize: 28,\n circleSpacing: 14,\n colors: [material.red['500'], material.pink['500'], material.purple['500'], material.deepPurple['500'], material.indigo['500'], material.blue['500'], material.lightBlue['500'], material.cyan['500'], material.teal['500'], material.green['500'], material.lightGreen['500'], material.lime['500'], material.yellow['500'], material.amber['500'], material.orange['500'], material.deepOrange['500'], material.brown['500'], material.blueGrey['500']],\n styles: {}\n};\n\nexport default ColorWrap(Circle);","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable react/no-did-mount-set-state, no-param-reassign */\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport isUndefined from 'lodash-es/isUndefined';\n\nimport { EditableInput } from '../common';\nimport UnfoldMoreHorizontalIcon from '@icons/material/UnfoldMoreHorizontalIcon';\n\nexport var ChromeFields = function (_React$Component) {\n _inherits(ChromeFields, _React$Component);\n\n function ChromeFields(props) {\n _classCallCheck(this, ChromeFields);\n\n var _this = _possibleConstructorReturn(this, (ChromeFields.__proto__ || Object.getPrototypeOf(ChromeFields)).call(this));\n\n _this.toggleViews = function () {\n if (_this.state.view === 'hex') {\n _this.setState({ view: 'rgb' });\n } else if (_this.state.view === 'rgb') {\n _this.setState({ view: 'hsl' });\n } else if (_this.state.view === 'hsl') {\n if (_this.props.hsl.a === 1) {\n _this.setState({ view: 'hex' });\n } else {\n _this.setState({ view: 'rgb' });\n }\n }\n };\n\n _this.handleChange = function (data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && _this.props.onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n _this.props.onChange({\n r: data.r || _this.props.rgb.r,\n g: data.g || _this.props.rgb.g,\n b: data.b || _this.props.rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 1) {\n data.a = 1;\n }\n\n _this.props.onChange({\n h: _this.props.hsl.h,\n s: _this.props.hsl.s,\n l: _this.props.hsl.l,\n a: Math.round(data.a * 100) / 100,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.l) {\n // Remove any occurances of '%'.\n if (typeof data.s === 'string' && data.s.includes('%')) {\n data.s = data.s.replace('%', '');\n }\n if (typeof data.l === 'string' && data.l.includes('%')) {\n data.l = data.l.replace('%', '');\n }\n\n // We store HSL as a unit interval so we need to override the 1 input to 0.01\n if (data.s == 1) {\n data.s = 0.01;\n } else if (data.l == 1) {\n data.l = 0.01;\n }\n\n _this.props.onChange({\n h: data.h || _this.props.hsl.h,\n s: Number(!isUndefined(data.s) ? data.s : _this.props.hsl.s),\n l: Number(!isUndefined(data.l) ? data.l : _this.props.hsl.l),\n source: 'hsl'\n }, e);\n }\n };\n\n _this.showHighlight = function (e) {\n e.currentTarget.style.background = '#eee';\n };\n\n _this.hideHighlight = function (e) {\n e.currentTarget.style.background = 'transparent';\n };\n\n if (props.hsl.a !== 1 && props.view === \"hex\") {\n _this.state = {\n view: \"rgb\"\n };\n } else {\n _this.state = {\n view: props.view\n };\n }\n return _this;\n }\n\n _createClass(ChromeFields, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n paddingTop: '16px',\n display: 'flex'\n },\n fields: {\n flex: '1',\n display: 'flex',\n marginLeft: '-6px'\n },\n field: {\n paddingLeft: '6px',\n width: '100%'\n },\n alpha: {\n paddingLeft: '6px',\n width: '100%'\n },\n toggle: {\n width: '32px',\n textAlign: 'right',\n position: 'relative'\n },\n icon: {\n marginRight: '-4px',\n marginTop: '12px',\n cursor: 'pointer',\n position: 'relative'\n },\n iconHighlight: {\n position: 'absolute',\n width: '24px',\n height: '28px',\n background: '#eee',\n borderRadius: '4px',\n top: '10px',\n left: '12px',\n display: 'none'\n },\n input: {\n fontSize: '11px',\n color: '#333',\n width: '100%',\n borderRadius: '2px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #dadada',\n height: '21px',\n textAlign: 'center'\n },\n label: {\n textTransform: 'uppercase',\n fontSize: '11px',\n lineHeight: '11px',\n color: '#969696',\n textAlign: 'center',\n display: 'block',\n marginTop: '12px'\n },\n svg: {\n fill: '#333',\n width: '24px',\n height: '24px',\n border: '1px transparent solid',\n borderRadius: '5px'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, this.props, this.state);\n\n var fields = void 0;\n if (this.state.view === 'hex') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex', value: this.props.hex,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'rgb') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: this.props.rgb.r,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: this.props.rgb.g,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: this.props.rgb.b,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.rgb.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'hsl') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'h',\n value: Math.round(this.props.hsl.h),\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 's',\n value: Math.round(this.props.hsl.s * 100) + '%',\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'l',\n value: Math.round(this.props.hsl.l * 100) + '%',\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.hsl.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n }\n\n return React.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n fields,\n React.createElement(\n 'div',\n { style: styles.toggle },\n React.createElement(\n 'div',\n { style: styles.icon, onClick: this.toggleViews, ref: function ref(icon) {\n return _this2.icon = icon;\n } },\n React.createElement(UnfoldMoreHorizontalIcon, {\n style: styles.svg,\n onMouseOver: this.showHighlight,\n onMouseEnter: this.showHighlight,\n onMouseOut: this.hideHighlight\n })\n )\n )\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n if (nextProps.hsl.a !== 1 && state.view === 'hex') {\n return { view: 'rgb' };\n }\n return null;\n }\n }]);\n\n return ChromeFields;\n}(React.Component);\n\nChromeFields.defaultProps = {\n view: \"hex\"\n};\n\nexport default ChromeFields;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var ChromePointer = function ChromePointer() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n transform: 'translate(-6px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default ChromePointer;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var ChromePointerCircle = function ChromePointerCircle() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default ChromePointerCircle;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport ChromeFields from './ChromeFields';\nimport ChromePointer from './ChromePointer';\nimport ChromePointerCircle from './ChromePointerCircle';\n\nexport var Chrome = function Chrome(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n disableAlpha = _ref.disableAlpha,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className,\n defaultView = _ref.defaultView;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n borderRadius: '2px',\n boxShadow: '0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)',\n boxSizing: 'initial',\n fontFamily: 'Menlo'\n },\n saturation: {\n width: '100%',\n paddingBottom: '55%',\n position: 'relative',\n borderRadius: '2px 2px 0 0',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '2px 2px 0 0'\n },\n body: {\n padding: '16px 16px 12px'\n },\n controls: {\n display: 'flex'\n },\n color: {\n width: '32px'\n },\n swatch: {\n marginTop: '6px',\n width: '16px',\n height: '16px',\n borderRadius: '8px',\n position: 'relative',\n overflow: 'hidden'\n },\n active: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '8px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + rgb.a + ')',\n zIndex: '2'\n },\n toggles: {\n flex: '1'\n },\n hue: {\n height: '10px',\n position: 'relative',\n marginBottom: '8px'\n },\n Hue: {\n radius: '2px'\n },\n alpha: {\n height: '10px',\n position: 'relative'\n },\n Alpha: {\n radius: '2px'\n }\n },\n 'disableAlpha': {\n color: {\n width: '22px'\n },\n alpha: {\n display: 'none'\n },\n hue: {\n marginBottom: '0px'\n },\n swatch: {\n width: '10px',\n height: '10px',\n marginTop: '0px'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'chrome-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n pointer: ChromePointerCircle,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.color },\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement('div', { style: styles.active }),\n React.createElement(Checkboard, { renderers: renderers })\n )\n ),\n React.createElement(\n 'div',\n { style: styles.toggles },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: ChromePointer,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n pointer: ChromePointer,\n renderers: renderers,\n onChange: onChange\n })\n )\n )\n ),\n React.createElement(ChromeFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n view: defaultView,\n onChange: onChange,\n disableAlpha: disableAlpha\n })\n )\n );\n};\n\nChrome.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disableAlpha: PropTypes.bool,\n styles: PropTypes.object,\n defaultView: PropTypes.oneOf([\"hex\", \"rgb\", \"hsl\"])\n};\n\nChrome.defaultProps = {\n width: 225,\n disableAlpha: false,\n styles: {}\n};\n\nexport default ColorWrap(Chrome);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as colorUtils from '../../helpers/color';\n\nimport { Swatch } from '../common';\n\nexport var CompactColor = function CompactColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n color: {\n background: color,\n width: '15px',\n height: '15px',\n float: 'left',\n marginRight: '5px',\n marginBottom: '5px',\n position: 'relative',\n cursor: 'pointer'\n },\n dot: {\n absolute: '5px 5px 5px 5px',\n background: colorUtils.getContrastingColor(color),\n borderRadius: '50%',\n opacity: '0'\n }\n },\n 'active': {\n dot: {\n opacity: '1'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n dot: {\n background: '#000'\n }\n },\n 'transparent': {\n dot: {\n background: '#000'\n }\n }\n }, { active: active, 'color-#FFFFFF': color === '#FFFFFF', 'transparent': color === 'transparent' });\n\n return React.createElement(\n Swatch,\n {\n style: styles.color,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n React.createElement('div', { style: styles.dot })\n );\n};\n\nexport default CompactColor;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nimport { EditableInput } from '../common';\n\nexport var CompactFields = function CompactFields(_ref) {\n var hex = _ref.hex,\n rgb = _ref.rgb,\n onChange = _ref.onChange;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n display: 'flex',\n paddingBottom: '6px',\n paddingRight: '5px',\n position: 'relative'\n },\n active: {\n position: 'absolute',\n top: '6px',\n left: '5px',\n height: '9px',\n width: '9px',\n background: hex\n },\n HEXwrap: {\n flex: '6',\n position: 'relative'\n },\n HEXinput: {\n width: '80%',\n padding: '0px',\n paddingLeft: '20%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n HEXlabel: {\n display: 'none'\n },\n RGBwrap: {\n flex: '3',\n position: 'relative'\n },\n RGBinput: {\n width: '70%',\n padding: '0px',\n paddingLeft: '30%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '3px',\n left: '0px',\n lineHeight: '16px',\n textTransform: 'uppercase',\n fontSize: '12px',\n color: '#999'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else {\n onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement('div', { style: styles.active }),\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n );\n};\n\nexport default CompactFields;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, Raised } from '../common';\nimport CompactColor from './CompactColor';\nimport CompactFields from './CompactFields';\n\nexport var Compact = function Compact(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n Compact: {\n background: '#f6f6f6',\n radius: '4px'\n },\n compact: {\n paddingTop: '5px',\n paddingLeft: '5px',\n boxSizing: 'initial',\n width: '240px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else {\n onChange(data, e);\n }\n };\n\n return React.createElement(\n Raised,\n { style: styles.Compact, styles: passedStyles },\n React.createElement(\n 'div',\n { style: styles.compact, className: 'compact-picker ' + className },\n React.createElement(\n 'div',\n null,\n map(colors, function (c) {\n return React.createElement(CompactColor, {\n key: c,\n color: c,\n active: c.toLowerCase() === hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n React.createElement('div', { style: styles.clear })\n ),\n React.createElement(CompactFields, { hex: hex, rgb: rgb, onChange: handleChange })\n )\n );\n};\n\nCompact.propTypes = {\n colors: PropTypes.arrayOf(PropTypes.string),\n styles: PropTypes.object\n};\n\nCompact.defaultProps = {\n colors: ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'],\n styles: {}\n};\n\nexport default ColorWrap(Compact);","import React from 'react';\nimport reactCSS, { handleHover } from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var GithubSwatch = function GithubSwatch(_ref) {\n var hover = _ref.hover,\n color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var hoverSwatch = {\n position: 'relative',\n zIndex: '2',\n outline: '2px solid #fff',\n boxShadow: '0 0 5px 2px rgba(0,0,0,0.25)'\n };\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n width: '25px',\n height: '25px',\n fontSize: '0'\n }\n },\n 'hover': {\n swatch: hoverSwatch\n }\n }, { hover: hover });\n\n return React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(Swatch, {\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: hoverSwatch\n })\n );\n};\n\nexport default handleHover(GithubSwatch);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap } from '../common';\nimport GithubSwatch from './GithubSwatch';\n\nexport var Github = function Github(_ref) {\n var width = _ref.width,\n colors = _ref.colors,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '1px solid rgba(0,0,0,0.2)',\n boxShadow: '0 3px 12px rgba(0,0,0,0.15)',\n borderRadius: '4px',\n position: 'relative',\n padding: '5px',\n display: 'flex',\n flexWrap: 'wrap'\n },\n triangle: {\n position: 'absolute',\n border: '7px solid transparent',\n borderBottomColor: '#fff'\n },\n triangleShadow: {\n position: 'absolute',\n border: '8px solid transparent',\n borderBottomColor: 'rgba(0,0,0,0.15)'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-14px',\n left: '10px'\n },\n triangleShadow: {\n top: '-16px',\n left: '9px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-14px',\n right: '10px'\n },\n triangleShadow: {\n top: '-16px',\n right: '9px'\n }\n },\n 'bottom-left-triangle': {\n triangle: {\n top: '35px',\n left: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n left: '9px',\n transform: 'rotate(180deg)'\n }\n },\n 'bottom-right-triangle': {\n triangle: {\n top: '35px',\n right: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n right: '9px',\n transform: 'rotate(180deg)'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right',\n 'bottom-left-triangle': triangle === 'bottom-left',\n 'bottom-right-triangle': triangle === 'bottom-right'\n });\n\n var handleChange = function handleChange(hex, e) {\n return onChange({ hex: hex, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'github-picker ' + className },\n React.createElement('div', { style: styles.triangleShadow }),\n React.createElement('div', { style: styles.triangle }),\n map(colors, function (c) {\n return React.createElement(GithubSwatch, {\n color: c,\n key: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nGithub.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.string),\n triangle: PropTypes.oneOf(['hide', 'top-left', 'top-right', 'bottom-left', 'bottom-right']),\n styles: PropTypes.object\n};\n\nGithub.defaultProps = {\n width: 200,\n colors: ['#B80000', '#DB3E00', '#FCCB00', '#008B02', '#006B76', '#1273DE', '#004DCF', '#5300EB', '#EB9694', '#FAD0C3', '#FEF3BD', '#C1E1C5', '#BEDADC', '#C4DEF6', '#BED3F3', '#D4C4FB'],\n triangle: 'top-left',\n styles: {}\n};\n\nexport default ColorWrap(Github);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderPointer = function SliderPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default SliderPointer;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Hue } from '../common';\nimport HuePointer from './HuePointer';\n\nexport var HuePicker = function HuePicker(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n hsl = _ref.hsl,\n direction = _ref.direction,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n // Overwrite to provide pure hue color\n var handleChange = function handleChange(data) {\n return onChange({ a: 1, h: data.h, l: 0.5, s: 1 });\n };\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'hue-picker ' + className },\n React.createElement(Hue, _extends({}, styles.hue, {\n hsl: hsl,\n pointer: pointer,\n onChange: handleChange,\n direction: direction\n }))\n );\n};\n\nHuePicker.propTypes = {\n styles: PropTypes.object\n};\nHuePicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: HuePointer,\n styles: {}\n};\n\nexport default ColorWrap(HuePicker);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Raised } from '../common';\n\nexport var Material = function Material(_ref) {\n var onChange = _ref.onChange,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n material: {\n width: '98px',\n height: '98px',\n padding: '16px',\n fontFamily: 'Roboto'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '2px solid ' + hex,\n outline: 'none',\n height: '30px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n Hex: {\n style: {}\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '1px solid #eee',\n outline: 'none',\n height: '30px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n split: {\n display: 'flex',\n marginRight: '-10px',\n paddingTop: '11px'\n },\n third: {\n flex: '1',\n paddingRight: '10px'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n }\n };\n\n return React.createElement(\n Raised,\n { styles: passedStyles },\n React.createElement(\n 'div',\n { style: styles.material, className: 'material-picker ' + className },\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n React.createElement(\n 'div',\n { style: styles.split, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r', value: rgb.r,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexport default ColorWrap(Material);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\n\nimport { EditableInput } from '../common';\n\nexport var PhotoshopPicker = function PhotoshopPicker(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsv = _ref.hsv,\n hex = _ref.hex;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n paddingTop: '5px',\n paddingBottom: '9px',\n width: '80px',\n position: 'relative'\n },\n divider: {\n height: '5px'\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n marginLeft: '40%',\n width: '40%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '5px',\n fontSize: '13px',\n paddingLeft: '3px',\n marginRight: '10px'\n },\n RGBlabel: {\n left: '0px',\n top: '0px',\n width: '34px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px',\n position: 'absolute'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n marginLeft: '20%',\n width: '80%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '6px',\n fontSize: '13px',\n paddingLeft: '3px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n width: '14px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px'\n },\n fieldSymbols: {\n position: 'absolute',\n top: '5px',\n right: '-7px',\n fontSize: '13px'\n },\n symbol: {\n height: '20px',\n lineHeight: '22px',\n paddingBottom: '7px'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data['#']) {\n color.isValidHex(data['#']) && onChange({\n hex: data['#'],\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.v) {\n onChange({\n h: data.h || hsv.h,\n s: data.s || hsv.s,\n v: data.v || hsv.v,\n source: 'hsv'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'h',\n value: Math.round(hsv.h),\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 's',\n value: Math.round(hsv.s * 100),\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'v',\n value: Math.round(hsv.v * 100),\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.divider }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.divider }),\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: '#',\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n React.createElement(\n 'div',\n { style: styles.fieldSymbols },\n React.createElement(\n 'div',\n { style: styles.symbol },\n '\\xB0'\n ),\n React.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n ),\n React.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n )\n )\n );\n};\n\nexport default PhotoshopPicker;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPointerCircle = function PhotoshopPointerCircle(_ref) {\n var hsl = _ref.hsl;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n },\n 'black-outline': {\n picker: {\n boxShadow: 'inset 0 0 0 1px #000'\n }\n }\n }, { 'black-outline': hsl.l > 0.5 });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default PhotoshopPointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPointerCircle = function PhotoshopPointerCircle() {\n var styles = reactCSS({\n 'default': {\n triangle: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '4px 0 4px 6px',\n borderColor: 'transparent transparent transparent #fff',\n position: 'absolute',\n top: '1px',\n left: '1px'\n },\n triangleBorder: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '5px 0 5px 8px',\n borderColor: 'transparent transparent transparent #555'\n },\n\n left: {\n Extend: 'triangleBorder',\n transform: 'translate(-13px, -4px)'\n },\n leftInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n },\n\n right: {\n Extend: 'triangleBorder',\n transform: 'translate(20px, -14px) rotate(180deg)'\n },\n rightInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.pointer },\n React.createElement(\n 'div',\n { style: styles.left },\n React.createElement('div', { style: styles.leftInside })\n ),\n React.createElement(\n 'div',\n { style: styles.right },\n React.createElement('div', { style: styles.rightInside })\n )\n );\n};\n\nexport default PhotoshopPointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopButton = function PhotoshopButton(_ref) {\n var onClick = _ref.onClick,\n label = _ref.label,\n children = _ref.children,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n button: {\n backgroundImage: 'linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)',\n border: '1px solid #878787',\n borderRadius: '2px',\n height: '20px',\n boxShadow: '0 1px 0 0 #EAEAEA',\n fontSize: '14px',\n color: '#000',\n lineHeight: '20px',\n textAlign: 'center',\n marginBottom: '10px',\n cursor: 'pointer'\n }\n },\n 'active': {\n button: {\n boxShadow: '0 0 0 1px #878787'\n }\n }\n }, { active: active });\n\n return React.createElement(\n 'div',\n { style: styles.button, onClick: onClick },\n label || children\n );\n};\n\nexport default PhotoshopButton;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPreviews = function PhotoshopPreviews(_ref) {\n var rgb = _ref.rgb,\n currentColor = _ref.currentColor;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n border: '1px solid #B3B3B3',\n borderBottom: '1px solid #F0F0F0',\n marginBottom: '2px',\n marginTop: '1px'\n },\n new: {\n height: '34px',\n background: 'rgb(' + rgb.r + ',' + rgb.g + ', ' + rgb.b + ')',\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000'\n },\n current: {\n height: '34px',\n background: currentColor,\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000'\n },\n label: {\n fontSize: '14px',\n color: '#000',\n textAlign: 'center'\n }\n }\n });\n\n return React.createElement(\n 'div',\n null,\n React.createElement(\n 'div',\n { style: styles.label },\n 'new'\n ),\n React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement('div', { style: styles.new }),\n React.createElement('div', { style: styles.current })\n ),\n React.createElement(\n 'div',\n { style: styles.label },\n 'current'\n )\n );\n};\n\nexport default PhotoshopPreviews;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue } from '../common';\nimport PhotoshopFields from './PhotoshopFields';\nimport PhotoshopPointerCircle from './PhotoshopPointerCircle';\nimport PhotoshopPointer from './PhotoshopPointer';\nimport PhotoshopButton from './PhotoshopButton';\nimport PhotoshopPreviews from './PhotoshopPreviews';\n\nexport var Photoshop = function (_React$Component) {\n _inherits(Photoshop, _React$Component);\n\n function Photoshop(props) {\n _classCallCheck(this, Photoshop);\n\n var _this = _possibleConstructorReturn(this, (Photoshop.__proto__ || Object.getPrototypeOf(Photoshop)).call(this));\n\n _this.state = {\n currentColor: props.hex\n };\n return _this;\n }\n\n _createClass(Photoshop, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n _props$styles = _props.styles,\n passedStyles = _props$styles === undefined ? {} : _props$styles,\n _props$className = _props.className,\n className = _props$className === undefined ? '' : _props$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n background: '#DCDCDC',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)',\n boxSizing: 'initial',\n width: '513px'\n },\n head: {\n backgroundImage: 'linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)',\n borderBottom: '1px solid #B1B1B1',\n boxShadow: 'inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)',\n height: '23px',\n lineHeight: '24px',\n borderRadius: '4px 4px 0 0',\n fontSize: '13px',\n color: '#4D4D4D',\n textAlign: 'center'\n },\n body: {\n padding: '15px 15px 0',\n display: 'flex'\n },\n saturation: {\n width: '256px',\n height: '256px',\n position: 'relative',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0',\n overflow: 'hidden'\n },\n hue: {\n position: 'relative',\n height: '256px',\n width: '19px',\n marginLeft: '10px',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0'\n },\n controls: {\n width: '180px',\n marginLeft: '10px'\n },\n top: {\n display: 'flex'\n },\n previews: {\n width: '60px'\n },\n actions: {\n flex: '1',\n marginLeft: '20px'\n }\n }\n }, passedStyles));\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'photoshop-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.head },\n this.props.header\n ),\n React.createElement(\n 'div',\n { style: styles.body, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n hsl: this.props.hsl,\n hsv: this.props.hsv,\n pointer: PhotoshopPointerCircle,\n onChange: this.props.onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n direction: 'vertical',\n hsl: this.props.hsl,\n pointer: PhotoshopPointer,\n onChange: this.props.onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.controls },\n React.createElement(\n 'div',\n { style: styles.top, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.previews },\n React.createElement(PhotoshopPreviews, {\n rgb: this.props.rgb,\n currentColor: this.state.currentColor\n })\n ),\n React.createElement(\n 'div',\n { style: styles.actions },\n React.createElement(PhotoshopButton, { label: 'OK', onClick: this.props.onAccept, active: true }),\n React.createElement(PhotoshopButton, { label: 'Cancel', onClick: this.props.onCancel }),\n React.createElement(PhotoshopFields, {\n onChange: this.props.onChange,\n rgb: this.props.rgb,\n hsv: this.props.hsv,\n hex: this.props.hex\n })\n )\n )\n )\n )\n );\n }\n }]);\n\n return Photoshop;\n}(React.Component);\n\nPhotoshop.propTypes = {\n header: PropTypes.string,\n styles: PropTypes.object\n};\n\nPhotoshop.defaultProps = {\n header: 'Color Picker',\n styles: {}\n};\n\nexport default ColorWrap(Photoshop);","/* eslint-disable no-param-reassign */\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\n\nimport { EditableInput } from '../common';\n\nexport var SketchFields = function SketchFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n disableAlpha = _ref.disableAlpha;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n display: 'flex',\n paddingTop: '4px'\n },\n single: {\n flex: '1',\n paddingLeft: '6px'\n },\n alpha: {\n flex: '1',\n paddingLeft: '6px'\n },\n double: {\n flex: '2'\n },\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #ccc',\n fontSize: '11px'\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: '11px',\n color: '#222',\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, { disableAlpha: disableAlpha });\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n a: rgb.a,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 100) {\n data.a = 100;\n }\n\n data.a /= 100;\n onChange({\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: data.a,\n source: 'rgb'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.double },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex.replace('#', ''),\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: rgb.r,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: rgb.g,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: rgb.b,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: Math.round(rgb.a * 100),\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '100'\n })\n )\n );\n};\n\nexport default SketchFields;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var SketchPresetColors = function SketchPresetColors(_ref) {\n var colors = _ref.colors,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = reactCSS({\n 'default': {\n colors: {\n margin: '0 -10px',\n padding: '10px 0 0 10px',\n borderTop: '1px solid #eee',\n display: 'flex',\n flexWrap: 'wrap',\n position: 'relative'\n },\n swatchWrap: {\n width: '16px',\n height: '16px',\n margin: '0 10px 10px 0'\n },\n swatch: {\n borderRadius: '3px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)'\n }\n },\n 'no-presets': {\n colors: {\n display: 'none'\n }\n }\n }, {\n 'no-presets': !colors || !colors.length\n });\n\n var handleClick = function handleClick(hex, e) {\n onClick({\n hex: hex,\n source: 'hex'\n }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.colors, className: 'flexbox-fix' },\n colors.map(function (colorObjOrString) {\n var c = typeof colorObjOrString === 'string' ? { color: colorObjOrString } : colorObjOrString;\n var key = '' + c.color + (c.title || '');\n return React.createElement(\n 'div',\n { key: key, style: styles.swatchWrap },\n React.createElement(Swatch, _extends({}, c, {\n style: styles.swatch,\n onClick: handleClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px ' + c.color\n }\n }))\n );\n })\n );\n};\n\nSketchPresetColors.propTypes = {\n colors: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n color: PropTypes.string,\n title: PropTypes.string\n })])).isRequired\n};\n\nexport default SketchPresetColors;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport SketchFields from './SketchFields';\nimport SketchPresetColors from './SketchPresetColors';\n\nexport var Sketch = function Sketch(_ref) {\n var width = _ref.width,\n rgb = _ref.rgb,\n hex = _ref.hex,\n hsv = _ref.hsv,\n hsl = _ref.hsl,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n disableAlpha = _ref.disableAlpha,\n presetColors = _ref.presetColors,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': _extends({\n picker: {\n width: width,\n padding: '10px 10px 0',\n boxSizing: 'initial',\n background: '#fff',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)'\n },\n saturation: {\n width: '100%',\n paddingBottom: '75%',\n position: 'relative',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '3px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n controls: {\n display: 'flex'\n },\n sliders: {\n padding: '4px 0',\n flex: '1'\n },\n color: {\n width: '24px',\n height: '24px',\n position: 'relative',\n marginTop: '4px',\n marginLeft: '4px',\n borderRadius: '3px'\n },\n activeColor: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '2px',\n background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n hue: {\n position: 'relative',\n height: '10px',\n overflow: 'hidden'\n },\n Hue: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n\n alpha: {\n position: 'relative',\n height: '10px',\n marginTop: '4px',\n overflow: 'hidden'\n },\n Alpha: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n }\n }, passedStyles),\n 'disableAlpha': {\n color: {\n height: '10px'\n },\n hue: {\n height: '10px'\n },\n alpha: {\n display: 'none'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'sketch-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.sliders },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n renderers: renderers,\n onChange: onChange\n })\n )\n ),\n React.createElement(\n 'div',\n { style: styles.color },\n React.createElement(Checkboard, null),\n React.createElement('div', { style: styles.activeColor })\n )\n ),\n React.createElement(SketchFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n onChange: onChange,\n disableAlpha: disableAlpha\n }),\n React.createElement(SketchPresetColors, {\n colors: presetColors,\n onClick: onChange,\n onSwatchHover: onSwatchHover\n })\n );\n};\n\nSketch.propTypes = {\n disableAlpha: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n styles: PropTypes.object\n};\n\nSketch.defaultProps = {\n disableAlpha: false,\n width: 200,\n styles: {},\n presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF']\n};\n\nexport default ColorWrap(Sketch);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderSwatch = function SliderSwatch(_ref) {\n var hsl = _ref.hsl,\n offset = _ref.offset,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n active = _ref.active,\n first = _ref.first,\n last = _ref.last;\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n height: '12px',\n background: 'hsl(' + hsl.h + ', 50%, ' + offset * 100 + '%)',\n cursor: 'pointer'\n }\n },\n 'first': {\n swatch: {\n borderRadius: '2px 0 0 2px'\n }\n },\n 'last': {\n swatch: {\n borderRadius: '0 2px 2px 0'\n }\n },\n 'active': {\n swatch: {\n transform: 'scaleY(1.8)',\n borderRadius: '3.6px/2px'\n }\n }\n }, { active: active, first: first, last: last });\n\n var handleClick = function handleClick(e) {\n return onClick({\n h: hsl.h,\n s: 0.5,\n l: offset,\n source: 'hsl'\n }, e);\n };\n\n return React.createElement('div', { style: styles.swatch, onClick: handleClick });\n};\n\nexport default SliderSwatch;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nimport SliderSwatch from './SliderSwatch';\n\nexport var SliderSwatches = function SliderSwatches(_ref) {\n var onClick = _ref.onClick,\n hsl = _ref.hsl;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n marginTop: '20px'\n },\n swatch: {\n boxSizing: 'border-box',\n width: '20%',\n paddingRight: '1px',\n float: 'left'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n // Acceptible difference in floating point equality\n var epsilon = 0.1;\n\n return React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.80',\n active: Math.abs(hsl.l - 0.80) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n first: true\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.65',\n active: Math.abs(hsl.l - 0.65) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.50',\n active: Math.abs(hsl.l - 0.50) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.35',\n active: Math.abs(hsl.l - 0.35) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.20',\n active: Math.abs(hsl.l - 0.20) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n last: true\n })\n ),\n React.createElement('div', { style: styles.clear })\n );\n};\n\nexport default SliderSwatches;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderPointer = function SliderPointer() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '14px',\n height: '14px',\n borderRadius: '6px',\n transform: 'translate(-7px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default SliderPointer;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Hue } from '../common';\nimport SliderSwatches from './SliderSwatches';\nimport SliderPointer from './SliderPointer';\n\nexport var Slider = function Slider(_ref) {\n var hsl = _ref.hsl,\n onChange = _ref.onChange,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n hue: {\n height: '12px',\n position: 'relative'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n return React.createElement(\n 'div',\n { style: styles.wrap || {}, className: 'slider-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: pointer,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement(SliderSwatches, { hsl: hsl, onClick: onChange })\n )\n );\n};\n\nSlider.propTypes = {\n styles: PropTypes.object\n};\nSlider.defaultProps = {\n pointer: SliderPointer,\n styles: {}\n};\n\nexport default ColorWrap(Slider);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as colorUtils from '../../helpers/color';\n\nimport { Swatch } from '../common';\nimport CheckIcon from '@icons/material/CheckIcon';\n\nexport var SwatchesColor = function SwatchesColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n first = _ref.first,\n last = _ref.last,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n color: {\n width: '40px',\n height: '24px',\n cursor: 'pointer',\n background: color,\n marginBottom: '1px'\n },\n check: {\n color: colorUtils.getContrastingColor(color),\n marginLeft: '8px',\n display: 'none'\n }\n },\n 'first': {\n color: {\n overflow: 'hidden',\n borderRadius: '2px 2px 0 0'\n }\n },\n 'last': {\n color: {\n overflow: 'hidden',\n borderRadius: '0 0 2px 2px'\n }\n },\n 'active': {\n check: {\n display: 'block'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n check: {\n color: '#333'\n }\n },\n 'transparent': {\n check: {\n color: '#333'\n }\n }\n }, {\n first: first,\n last: last,\n active: active,\n 'color-#FFFFFF': color === '#FFFFFF',\n 'transparent': color === 'transparent'\n });\n\n return React.createElement(\n Swatch,\n {\n color: color,\n style: styles.color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n React.createElement(\n 'div',\n { style: styles.check },\n React.createElement(CheckIcon, null)\n )\n );\n};\n\nexport default SwatchesColor;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\n\nimport SwatchesColor from './SwatchesColor';\n\nexport var SwatchesGroup = function SwatchesGroup(_ref) {\n var onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n group = _ref.group,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n group: {\n paddingBottom: '10px',\n width: '40px',\n float: 'left',\n marginRight: '10px'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.group },\n map(group, function (color, i) {\n return React.createElement(SwatchesColor, {\n key: color,\n color: color,\n active: color.toLowerCase() === active,\n first: i === 0,\n last: i === group.length - 1,\n onClick: onClick,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nexport default SwatchesGroup;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as material from 'material-colors';\n\nimport { ColorWrap, Raised } from '../common';\nimport SwatchesGroup from './SwatchesGroup';\n\nexport var Swatches = function Swatches(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n height: height\n },\n overflow: {\n height: height,\n overflowY: 'scroll'\n },\n body: {\n padding: '16px 0 6px 16px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n return onChange({ hex: data, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'swatches-picker ' + className },\n React.createElement(\n Raised,\n null,\n React.createElement(\n 'div',\n { style: styles.overflow },\n React.createElement(\n 'div',\n { style: styles.body },\n map(colors, function (group) {\n return React.createElement(SwatchesGroup, {\n key: group.toString(),\n group: group,\n active: hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n React.createElement('div', { style: styles.clear })\n )\n )\n )\n );\n};\n\nSwatches.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),\n styles: PropTypes.object\n\n /* eslint-disable max-len */\n};Swatches.defaultProps = {\n width: 320,\n height: 240,\n colors: [[material.red['900'], material.red['700'], material.red['500'], material.red['300'], material.red['100']], [material.pink['900'], material.pink['700'], material.pink['500'], material.pink['300'], material.pink['100']], [material.purple['900'], material.purple['700'], material.purple['500'], material.purple['300'], material.purple['100']], [material.deepPurple['900'], material.deepPurple['700'], material.deepPurple['500'], material.deepPurple['300'], material.deepPurple['100']], [material.indigo['900'], material.indigo['700'], material.indigo['500'], material.indigo['300'], material.indigo['100']], [material.blue['900'], material.blue['700'], material.blue['500'], material.blue['300'], material.blue['100']], [material.lightBlue['900'], material.lightBlue['700'], material.lightBlue['500'], material.lightBlue['300'], material.lightBlue['100']], [material.cyan['900'], material.cyan['700'], material.cyan['500'], material.cyan['300'], material.cyan['100']], [material.teal['900'], material.teal['700'], material.teal['500'], material.teal['300'], material.teal['100']], ['#194D33', material.green['700'], material.green['500'], material.green['300'], material.green['100']], [material.lightGreen['900'], material.lightGreen['700'], material.lightGreen['500'], material.lightGreen['300'], material.lightGreen['100']], [material.lime['900'], material.lime['700'], material.lime['500'], material.lime['300'], material.lime['100']], [material.yellow['900'], material.yellow['700'], material.yellow['500'], material.yellow['300'], material.yellow['100']], [material.amber['900'], material.amber['700'], material.amber['500'], material.amber['300'], material.amber['100']], [material.orange['900'], material.orange['700'], material.orange['500'], material.orange['300'], material.orange['100']], [material.deepOrange['900'], material.deepOrange['700'], material.deepOrange['500'], material.deepOrange['300'], material.deepOrange['100']], [material.brown['900'], material.brown['700'], material.brown['500'], material.brown['300'], material.brown['100']], [material.blueGrey['900'], material.blueGrey['700'], material.blueGrey['500'], material.blueGrey['300'], material.blueGrey['100']], ['#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF']],\n styles: {}\n};\n\nexport default ColorWrap(Swatches);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Swatch } from '../common';\n\nexport var Twitter = function Twitter(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '0 solid rgba(0,0,0,0.25)',\n boxShadow: '0 1px 4px rgba(0,0,0,0.25)',\n borderRadius: '4px',\n position: 'relative'\n },\n body: {\n padding: '15px 9px 9px 15px'\n },\n label: {\n fontSize: '18px',\n color: '#fff'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent #fff transparent',\n position: 'absolute'\n },\n triangleShadow: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent rgba(0,0,0,.1) transparent',\n position: 'absolute'\n },\n hash: {\n background: '#F0F0F0',\n height: '30px',\n width: '30px',\n borderRadius: '4px 0 0 4px',\n float: 'left',\n color: '#98A1A4',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n input: {\n width: '100px',\n fontSize: '14px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '28px',\n boxShadow: 'inset 0 0 0 1px #F0F0F0',\n boxSizing: 'content-box',\n borderRadius: '0 4px 4px 0',\n float: 'left',\n paddingLeft: '8px'\n },\n swatch: {\n width: '30px',\n height: '30px',\n float: 'left',\n borderRadius: '4px',\n margin: '0 6px 6px 0'\n },\n clear: {\n clear: 'both'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-10px',\n left: '12px'\n },\n triangleShadow: {\n top: '-11px',\n left: '12px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-10px',\n right: '12px'\n },\n triangleShadow: {\n top: '-11px',\n right: '12px'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right'\n });\n\n var handleChange = function handleChange(hexcode, e) {\n color.isValidHex(hexcode) && onChange({\n hex: hexcode,\n source: 'hex'\n }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'twitter-picker ' + className },\n React.createElement('div', { style: styles.triangleShadow }),\n React.createElement('div', { style: styles.triangle }),\n React.createElement(\n 'div',\n { style: styles.body },\n map(colors, function (c, i) {\n return React.createElement(Swatch, {\n key: i,\n color: c,\n hex: c,\n style: styles.swatch,\n onClick: handleChange,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n React.createElement(\n 'div',\n { style: styles.hash },\n '#'\n ),\n React.createElement(EditableInput, {\n label: null,\n style: { input: styles.input },\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.clear })\n )\n );\n};\n\nTwitter.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n triangle: PropTypes.oneOf(['hide', 'top-left', 'top-right']),\n colors: PropTypes.arrayOf(PropTypes.string),\n styles: PropTypes.object\n};\n\nTwitter.defaultProps = {\n width: 276,\n colors: ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'],\n triangle: 'top-left',\n styles: {}\n};\n\nexport default ColorWrap(Twitter);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport PropTypes from 'prop-types';\n\nexport var GooglePointerCircle = function GooglePointerCircle(props) {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n border: '2px #fff solid',\n transform: 'translate(-12px, -13px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', ' + Math.round(props.hsl.s * 100) + '%, ' + Math.round(props.hsl.l * 100) + '%)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nGooglePointerCircle.propTypes = {\n hsl: PropTypes.shape({\n h: PropTypes.number,\n s: PropTypes.number,\n l: PropTypes.number,\n a: PropTypes.number\n })\n};\n\nGooglePointerCircle.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexport default GooglePointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport PropTypes from 'prop-types';\n\nexport var GooglePointer = function GooglePointer(props) {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n transform: 'translate(-10px, -7px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', 100%, 50%)',\n border: '2px white solid'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nGooglePointer.propTypes = {\n hsl: PropTypes.shape({\n h: PropTypes.number,\n s: PropTypes.number,\n l: PropTypes.number,\n a: PropTypes.number\n })\n};\n\nGooglePointer.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexport default GooglePointer;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport { EditableInput } from '../common';\n\nexport var GoogleFields = function GoogleFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n hsv = _ref.hsv;\n\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.rgb) {\n var values = data.rgb.split(',');\n color.isvalidColorString(data.rgb, 'rgb') && onChange({\n r: values[0],\n g: values[1],\n b: values[2],\n a: 1,\n source: 'rgb'\n }, e);\n } else if (data.hsv) {\n var _values = data.hsv.split(',');\n if (color.isvalidColorString(data.hsv, 'hsv')) {\n _values[2] = _values[2].replace('%', '');\n _values[1] = _values[1].replace('%', '');\n _values[0] = _values[0].replace('°', '');\n if (_values[1] == 1) {\n _values[1] = 0.01;\n } else if (_values[2] == 1) {\n _values[2] = 0.01;\n }\n onChange({\n h: Number(_values[0]),\n s: Number(_values[1]),\n v: Number(_values[2]),\n source: 'hsv'\n }, e);\n }\n } else if (data.hsl) {\n var _values2 = data.hsl.split(',');\n if (color.isvalidColorString(data.hsl, 'hsl')) {\n _values2[2] = _values2[2].replace('%', '');\n _values2[1] = _values2[1].replace('%', '');\n _values2[0] = _values2[0].replace('°', '');\n if (hsvValue[1] == 1) {\n hsvValue[1] = 0.01;\n } else if (hsvValue[2] == 1) {\n hsvValue[2] = 0.01;\n }\n onChange({\n h: Number(_values2[0]),\n s: Number(_values2[1]),\n v: Number(_values2[2]),\n source: 'hsl'\n }, e);\n }\n }\n };\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n display: 'flex',\n height: '100px',\n marginTop: '4px'\n },\n fields: {\n width: '100%'\n },\n column: {\n paddingTop: '10px',\n display: 'flex',\n justifyContent: 'space-between'\n },\n double: {\n padding: '0px 4.4px',\n boxSizing: 'border-box'\n },\n input: {\n width: '100%',\n height: '38px',\n boxSizing: 'border-box',\n padding: '4px 10% 3px',\n textAlign: 'center',\n border: '1px solid #dadce0',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n input2: {\n height: '38px',\n width: '100%',\n border: '1px solid #dadce0',\n boxSizing: 'border-box',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n paddingLeft: '10px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label: {\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '35px',\n top: '-6px',\n left: '0',\n right: '0',\n marginLeft: 'auto',\n marginRight: 'auto',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label2: {\n left: '10px',\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '32px',\n top: '-6px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n single: {\n flexGrow: '1',\n margin: '0px 4.4px'\n }\n }\n });\n\n var rgbValue = rgb.r + ', ' + rgb.g + ', ' + rgb.b;\n var hslValue = Math.round(hsl.h) + '\\xB0, ' + Math.round(hsl.s * 100) + '%, ' + Math.round(hsl.l * 100) + '%';\n var hsvValue = Math.round(hsv.h) + '\\xB0, ' + Math.round(hsv.s * 100) + '%, ' + Math.round(hsv.v * 100) + '%';\n\n return React.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.fields },\n React.createElement(\n 'div',\n { style: styles.double },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.column },\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'rgb',\n value: rgbValue,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsv',\n value: hsvValue,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsl',\n value: hslValue,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexport default GoogleFields;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue } from '../common';\nimport GooglePointerCircle from './GooglePointerCircle';\nimport GooglePointer from './GooglePointer';\nimport GoogleFields from './GoogleFields';\n\nexport var Google = function Google(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n header = _ref.header,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n border: '1px solid #dfe1e5',\n boxSizing: 'initial',\n display: 'flex',\n flexWrap: 'wrap',\n borderRadius: '8px 8px 0px 0px'\n },\n head: {\n height: '57px',\n width: '100%',\n paddingTop: '16px',\n paddingBottom: '16px',\n paddingLeft: '16px',\n fontSize: '20px',\n boxSizing: 'border-box',\n fontFamily: 'Roboto-Regular,HelveticaNeue,Arial,sans-serif'\n },\n saturation: {\n width: '70%',\n padding: '0px',\n position: 'relative',\n overflow: 'hidden'\n },\n swatch: {\n width: '30%',\n height: '228px',\n padding: '0px',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', 1)',\n position: 'relative',\n overflow: 'hidden'\n },\n body: {\n margin: 'auto',\n width: '95%'\n },\n controls: {\n display: 'flex',\n boxSizing: 'border-box',\n height: '52px',\n paddingTop: '22px'\n },\n color: {\n width: '32px'\n },\n hue: {\n height: '8px',\n position: 'relative',\n margin: '0px 16px 0px 16px',\n width: '100%'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'google-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.head },\n header\n ),\n React.createElement('div', { style: styles.swatch }),\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n hsl: hsl,\n hsv: hsv,\n pointer: GooglePointerCircle,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n radius: '4px',\n pointer: GooglePointer,\n onChange: onChange\n })\n )\n ),\n React.createElement(GoogleFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n hsv: hsv,\n onChange: onChange\n })\n )\n );\n};\n\nGoogle.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n styles: PropTypes.object,\n header: PropTypes.string\n\n};\n\nGoogle.defaultProps = {\n width: 652,\n styles: {},\n header: 'Color picker'\n};\n\nexport default ColorWrap(Google);","\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./react-email-editor.cjs.production.min.js')\n} else {\n module.exports = require('./react-email-editor.cjs.development.js')\n}\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var e,t=require(\"react\"),n=(e=t)&&\"object\"==typeof e&&\"default\"in e?e.default:e;function o(){return(o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}var r=[],i=!1,l=function(){if(i)for(var e;e=r.shift();)e()},d=\"undefined\"==typeof window?{__unlayer_lastEditorId:0}:window;d.__unlayer_lastEditorId=d.__unlayer_lastEditorId||0;var a=n.forwardRef((function(e,a){var u,s,c,f,p,y,v,E,m,_=e.onLoad,h=e.onReady,j=e.scriptUrl,b=e.minHeight,I=void 0===b?500:b,O=e.style,g=void 0===O?{}:O,w=t.useState(null),x=w[0],M=w[1],L=t.useState(!1),S=L[0],H=L[1],R=t.useMemo((function(){return e.editorId||\"editor-\"+ ++d.__unlayer_lastEditorId}),[e.editorId]),k=o({},e.options||{},{appearance:null!=(u=e.appearance)?u:null==(s=e.options)?void 0:s.appearance,displayMode:(null==e?void 0:e.displayMode)||(null==(c=e.options)?void 0:c.displayMode)||\"email\",locale:null!=(f=e.locale)?f:null==(p=e.options)?void 0:p.locale,projectId:null!=(y=e.projectId)?y:null==(v=e.options)?void 0:v.projectId,tools:null!=(E=e.tools)?E:null==(m=e.options)?void 0:m.tools,id:R,source:{name:\"react-email-editor\",version:\"1.7.11\"}});t.useImperativeHandle(a,(function(){return{editor:x}}),[x]),t.useEffect((function(){return function(){null==x||x.destroy()}}),[]),t.useEffect((function(){H(!1),function(e,t){if(void 0===t&&(t=\"https://editor.unlayer.com/embed.js?2\"),r.push((function(){return H(!0)})),function(e){var t=document.querySelectorAll(\"script\"),n=!1;return t.forEach((function(t){t.src.includes(e)&&(n=!0)})),n}(t))l();else{var n=document.createElement(\"script\");n.setAttribute(\"src\",t),n.onload=function(){i=!0,l()},document.head.appendChild(n)}}(0,j)}),[j]),t.useEffect((function(){S&&(null==x||x.destroy(),M(unlayer.createEditor(k)))}),[JSON.stringify(k),S]);var q=Object.keys(e).filter((function(e){return/^on/.test(e)}));return t.useEffect((function(){x&&(null==_||_(x),q.forEach((function(t){/^on/.test(t)&&\"onLoad\"!==t&&\"onReady\"!==t&&\"function\"==typeof e[t]&&x.addEventListener(t,e[t])})),h&&x.addEventListener(\"editor:ready\",(function(){h(x)})))}),[x,Object.keys(q).join(\",\")]),n.createElement(\"div\",{style:{flex:1,display:\"flex\",minHeight:I}},n.createElement(\"div\",{id:R,style:o({},g,{flex:1})}))}));exports.EmailEditor=a,exports.default=a;\n//# sourceMappingURL=react-email-editor.cjs.production.min.js.map\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],t):\"object\"==typeof exports?exports.FacebookLogin=t(require(\"react\")):e.FacebookLogin=t(e.react)}(this,function(e){return function(e){function t(n){if(o[n])return o[n].exports;var r=o[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var o={};return t.m=e,t.c=o,t.p=\"\",t(0)}([function(e,t,o){e.exports=o(4)},function(e,t,o){e.exports=o(6)()},function(t,o){t.exports=e},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t[\"default\"]=function(e,t){return decodeURIComponent(e.replace(new RegExp(\"^(?:.*[&\\\\?]\"+encodeURIComponent(t).replace(/[\\.\\+\\*]/g,\"\\\\$&\")+\"(?:\\\\=([^&]*))?)?.*$\",\"i\"),\"$1\"))}},function(e,t,o){\"use strict\";function n(e){return e&&e.__esModule?e:{\"default\":e}}function r(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function i(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function s(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,\"__esModule\",{value:!0});var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},c=function(){function e(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}(),u=o(2),d=n(u),l=o(1),p=n(l),f=o(5),b=n(f),y=o(3),h=n(y),g=function(){var e=!1;try{e=!!(window.navigator&&window.navigator.standalone||navigator.userAgent.match(\"CriOS\")||navigator.userAgent.match(/mobile/i))}catch(t){}return e},k=function(e){function t(){var e,o,n,s;r(this,t);for(var c=arguments.length,u=Array(c),d=0;d<c;d++)u[d]=arguments[d];return o=n=i(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),n.state={isSdkLoaded:!1,isProcessing:!1},n.responseApi=function(e){window.FB.api(\"/me\",{locale:n.props.language,fields:n.props.fields},function(t){a(t,e),n.props.callback(t)})},n.checkLoginState=function(e){n.setStateIfMounted({isProcessing:!1}),e.authResponse?n.responseApi(e.authResponse):n.props.onFailure?n.props.onFailure({status:e.status}):n.props.callback({status:e.status})},n.checkLoginAfterRefresh=function(e){\"connected\"===e.status?n.checkLoginState(e):window.FB.login(function(e){return n.checkLoginState(e)},!0)},n.click=function(e){if(n.state.isSdkLoaded&&!n.state.isProcessing&&!n.props.isDisabled){n.setState({isProcessing:!0});var t=n.props,o=t.scope,r=t.appId,i=t.onClick,s=t.returnScopes,a=t.responseType,c=t.redirectUri,u=t.disableMobileRedirect,d=t.authType,l=t.state;if(\"function\"!=typeof i||(i(e),!e.defaultPrevented)){var p={client_id:r,redirect_uri:c,state:l,return_scopes:s,scope:o,response_type:a,auth_type:d};if(n.props.isMobile&&!u)window.location.href=\"https://www.facebook.com/dialog/oauth\"+(0,b[\"default\"])(p);else{if(!window.FB)return void(n.props.onFailure&&n.props.onFailure({status:\"facebookNotLoaded\"}));window.FB.login(n.checkLoginState,{scope:o,return_scopes:s,auth_type:p.auth_type})}}}},s=o,i(n,s)}return s(t,e),c(t,[{key:\"componentDidMount\",value:function(){if(this._isMounted=!0,document.getElementById(\"facebook-jssdk\"))return void this.sdkLoaded();this.setFbAsyncInit(),this.loadSdkAsynchronously();var e=document.getElementById(\"fb-root\");e||(e=document.createElement(\"div\"),e.id=\"fb-root\",document.body.appendChild(e))}},{key:\"componentWillReceiveProps\",value:function(e){this.state.isSdkLoaded&&e.autoLoad&&!this.props.autoLoad&&window.FB.getLoginStatus(this.checkLoginAfterRefresh)}},{key:\"componentWillUnmount\",value:function(){this._isMounted=!1}},{key:\"setStateIfMounted\",value:function(e){this._isMounted&&this.setState(e)}},{key:\"setFbAsyncInit\",value:function(){var e=this,t=this.props,o=t.appId,n=t.xfbml,r=t.cookie,i=t.version,s=t.autoLoad;window.fbAsyncInit=function(){window.FB.init({version:\"v\"+i,appId:o,xfbml:n,cookie:r}),e.setStateIfMounted({isSdkLoaded:!0}),(s||e.isRedirectedFromFb())&&window.FB.getLoginStatus(e.checkLoginAfterRefresh)}}},{key:\"isRedirectedFromFb\",value:function(){var e=window.location.search;return(0,h[\"default\"])(e,\"code\")||(0,h[\"default\"])(e,\"granted_scopes\")}},{key:\"sdkLoaded\",value:function(){this.setState({isSdkLoaded:!0})}},{key:\"loadSdkAsynchronously\",value:function(){var e=this.props.language;!function(t,o,n){var r=t.getElementsByTagName(o)[0],i=r,s=r;t.getElementById(n)||(s=t.createElement(o),s.id=n,s.src=\"https://connect.facebook.net/\"+e+\"/sdk.js\",i.parentNode.insertBefore(s,i))}(document,\"script\",\"facebook-jssdk\")}},{key:\"render\",value:function o(){var o=this.props.render;if(!o)throw new Error(\"ReactFacebookLogin requires a render prop to render\");var e={onClick:this.click,isDisabled:!!this.props.isDisabled,isProcessing:this.state.isProcessing,isSdkLoaded:this.state.isSdkLoaded};return this.props.render(e)}}]),t}(d[\"default\"].Component);k.propTypes={isDisabled:p[\"default\"].bool,callback:p[\"default\"].func.isRequired,appId:p[\"default\"].string.isRequired,xfbml:p[\"default\"].bool,cookie:p[\"default\"].bool,authType:p[\"default\"].string,scope:p[\"default\"].string,state:p[\"default\"].string,responseType:p[\"default\"].string,returnScopes:p[\"default\"].bool,redirectUri:p[\"default\"].string,autoLoad:p[\"default\"].bool,disableMobileRedirect:p[\"default\"].bool,isMobile:p[\"default\"].bool,fields:p[\"default\"].string,version:p[\"default\"].string,language:p[\"default\"].string,onClick:p[\"default\"].func,onFailure:p[\"default\"].func,render:p[\"default\"].func.isRequired},k.defaultProps={redirectUri:\"undefined\"!=typeof window?window.location.href:\"/\",scope:\"public_profile,email\",returnScopes:!1,xfbml:!1,cookie:!1,authType:\"\",fields:\"name\",version:\"2.3\",language:\"en_US\",disableMobileRedirect:!1,isMobile:g(),onFailure:null,state:\"facebookdirect\",responseType:\"code\"},t[\"default\"]=k},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t[\"default\"]=function(e){return\"?\"+Object.keys(e).map(function(t){return t+\"=\"+encodeURIComponent(e[t])}).join(\"&\")}},function(e,t,o){\"use strict\";function n(){}var r=o(7);e.exports=function(){function e(e,t,o,n,i,s){if(s!==r){var a=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw a.name=\"Invariant Violation\",a}}function t(){return e}e.isRequired=e;var o={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return o.checkPropTypes=n,o.PropTypes=o,o}},function(e,t){\"use strict\";var o=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";e.exports=o}])});","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],t):\"object\"==typeof exports?exports.GoogleAuthorize=t(require(\"react\")):e.GoogleAuthorize=t(e.react)}(this,function(e){return function(e){function t(n){if(o[n])return o[n].exports;var r=o[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,n){t.o(e,o)||Object.defineProperty(e,o,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,\"a\",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"\",t(t.s=1)}([function(e,t,o){\"use strict\";function n(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function r(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function i(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function c(e,t,o,n){if(e.getElementById(o))return void n();var r=e.getElementsByTagName(t)[0],i=r,c=r;c=e.createElement(t),c.id=o,c.src=\"//apis.google.com/js/client:platform.js\",i.parentNode.insertBefore(c,i),c.onload=function(){n()}}var u=o(3),a=o.n(u),s=o(4),l=(o.n(s),function(){function e(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}()),f=function(e){function t(e){n(this,t);var o=r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return o.handleClick=o.handleClick.bind(o),o.state={disabled:!0},o}return i(t,e),l(t,[{key:\"componentDidMount\",value:function(){var e=this;c(document,\"script\",\"react-google-authorize-script\",function(){e.setState({disabled:!1})})}},{key:\"handleClick\",value:function(e){if(e&&e.preventDefault(),!this.state.disabled){var t=this.props,o=t.clientId,n=t.cookiePolicy,r=t.loginHint,i=t.hostedDomain,c=t.fetchBasicProfile,u=t.redirectUri,a=t.discoveryDocs,s=t.onFailure,l=t.uxMode,f=t.scope,p=t.responseType,d=t.onSuccess,h=t.onRequest,y=t.prompt,b={client_id:o,cookie_policy:n,login_hint:r,hosted_domain:i,fetch_basic_profile:c,ux_mode:l,redirect_uri:u,include_granted_scopes:!0,discoveryDocs:a,prompt:y,scope:f};\"code\"===p&&(b.access_type=\"offline\",b.response_type=\"code\"),h(),window.gapi.auth2.authorize(b,function(e){if(e.error)return void s(new Error(e.error));d(e)})}}},{key:\"render\",value:function(){var e=this.props,t=e.tag,o=e.type,n=e.style,r=e.className,i=e.disabledStyle,c=e.buttonText,u=e.children,s=e.render,l=this.state.disabled||this.props.disabled;if(s)return s({onClick:this.handleClick});var f={display:\"inline-block\",background:\"#d14836\",color:\"#fff\",width:190,paddingTop:10,paddingBottom:10,borderRadius:2,border:\"1px solid transparent\",fontSize:16,fontWeight:\"bold\",fontFamily:\"Roboto\",cursor:\"pointer\"},p=function(){return n||(r&&!n?{}:f)}(),d=function(){return l?Object.assign({},p,i):p}();return a.a.createElement(t,{onClick:this.handleClick,style:d,type:o,disabled:l,className:r},u||c)}}]),t}(u.Component);f.defaultProps={type:\"button\",tag:\"button\",buttonText:\"Login with Google\",scope:\"profile email\",prompt:\"\",cookiePolicy:\"single_host_origin\",fetchBasicProfile:!0,uxMode:\"popup\",disabledStyle:{opacity:.6,background:\"#9c9c9c\",cursor:\"not-allowed\"},onRequest:function(){}},t.a=f},function(e,t,o){e.exports=o(2)},function(e,t,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=o(0);o.d(t,\"default\",function(){return n.a}),o.d(t,\"GoogleAuthorize\",function(){return n.a})},function(t,o){t.exports=e},function(e,t,o){\"function\"==typeof Symbol&&Symbol.iterator,e.exports=o(5)()},function(e,t,o){\"use strict\";var n=o(6),r=o(7),i=o(8);e.exports=function(){function e(e,t,o,n,c,u){u!==i&&r(!1,\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\")}function t(){return e}e.isRequired=e;var o={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return o.checkPropTypes=n,o.PropTypes=o,o}},function(e,t,o){\"use strict\";function n(e){return function(){return e}}var r=function(){};r.thatReturns=n,r.thatReturnsFalse=n(!1),r.thatReturnsTrue=n(!0),r.thatReturnsNull=n(null),r.thatReturnsThis=function(){return this},r.thatReturnsArgument=function(e){return e},e.exports=r},function(e,t,o){\"use strict\";function n(e,t,o,n,i,c,u,a){if(r(t),!e){var s;if(void 0===t)s=new Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var l=[o,n,i,c,u,a],f=0;s=new Error(t.replace(/%s/g,function(){return l[f++]})),s.name=\"Invariant Violation\"}throw s.framesToPop=1,s}}var r=function(e){};e.exports=n},function(e,t,o){\"use strict\";e.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"}])});","import{useRef as e,useCallback as r,useEffect as n,useState as t}from\"react\";import{jsx as o}from\"react/jsx-runtime\";function i(t){var o=t.redirectUri,i=t.clientId,c=t.onSuccess,a=t.onError,s=t.scope,d=void 0===s?\"r_emailaddress\":s,u=t.state,l=void 0===u?\"\":u,w=t.closePopupMessage,p=void 0===w?\"User closed the popup\":w,g=e(null),v=e(null),f=r((function(e){var r=localStorage.getItem(\"linkedin_oauth2_state\");if(e.origin===window.location.origin)if(e.data.errorMessage&&\"Linked In\"===e.data.from){if(e.data.state!==r)return void(g.current&&g.current.close());a&&a(e.data),g.current&&g.current.close()}else if(e.data.code&&\"Linked In\"===e.data.from){if(e.data.state!==r)return void(g.current&&g.current.close());c&&c(e.data.code),g.current&&g.current.close()}}),[a,c]);n((function(){return function(){window.removeEventListener(\"message\",f,!1),g.current&&(g.current.close(),g.current=null),v.current&&(window.clearInterval(v.current),v.current=null)}}),[f]),n((function(){return window.addEventListener(\"message\",f,!1),function(){window.removeEventListener(\"message\",f,!1)}}),[f]);var h=function(){var e=\"&scope=\"+encodeURI(d),r=l||function(e){void 0===e&&(e=20);for(var r=\"\",n=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",t=n.length,o=0;o<e;o++)r+=n.charAt(Math.floor(Math.random()*t));return r}();return localStorage.setItem(\"linkedin_oauth2_state\",r),\"https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=\"+i+\"&redirect_uri=\"+o+e+\"&state=\"+r};return{linkedInLogin:function(){var e;null===(e=g.current)||void 0===e||e.close(),g.current=window.open(h(),\"_blank\",function(e){var r=e.width,n=void 0===r?600:r,t=e.height,o=void 0===t?600:t;return\"left=\"+(screen.width/2-n/2)+\",top=\"+(screen.height/2-o/2)+\",width=\"+n+\",height=\"+o}({width:600,height:600})),v.current&&(window.clearInterval(v.current),v.current=null),v.current=window.setInterval((function(){try{g.current&&g.current.closed&&(window.clearInterval(v.current),v.current=null,a&&a({error:\"user_closed_popup\",errorMessage:p}))}catch(e){window.clearInterval(v.current),v.current=null}}),1e3)}}}function c(e){return(0,e.children)({linkedInLogin:i({redirectUri:e.redirectUri,clientId:e.clientId,onSuccess:e.onSuccess,onError:e.onError,state:e.state,scope:e.scope,closePopupMessage:e.closePopupMessage}).linkedInLogin})}function a(){var e=t(\"\"),r=e[0],i=e[1];return n((function(){var e=function(e){for(var r=e.substring(1).split(\"&\"),n={},t=0;t<r.length;t++){var o=r[t].split(\"=\");o.length>1&&(n[decodeURIComponent(o[0])]=decodeURIComponent(o[1]))}return n}(window.location.search);if(e.state!==localStorage.getItem(\"linkedin_oauth2_state\"))i(\"State does not match\");else if(e.error){var r=e.error_description||\"Login failed. Please try again.\";window.opener&&window.opener.postMessage({error:e.error,state:e.state,errorMessage:r,from:\"Linked In\"},window.location.origin),\"user_cancelled_login\"===e.error&&window.close()}e.code&&window.opener&&window.opener.postMessage({code:e.code,state:e.state,from:\"Linked In\"},window.location.origin)}),[]),o(\"div\",{children:r},void 0)}export{c as LinkedIn,a as LinkedInCallback,i as useLinkedIn};\n//# sourceMappingURL=index.esm.js.map\n","export default __webpack_public_path__ + \"51103eacf3bef7f35f0812db4ea611f7.js\";","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","// As defined on the list of supported events: https://reactjs.org/docs/events.html\nexport var clipboardEvents = ['onCopy', 'onCut', 'onPaste'];\nexport var compositionEvents = ['onCompositionEnd', 'onCompositionStart', 'onCompositionUpdate'];\nexport var keyboardEvents = ['onKeyDown', 'onKeyPress', 'onKeyUp'];\nexport var focusEvents = ['onFocus', 'onBlur'];\nexport var formEvents = ['onChange', 'onInput', 'onInvalid', 'onReset', 'onSubmit'];\nexport var genericEvents = ['onError', 'onLoad'];\nexport var mouseEvents = ['onClick', 'onContextMenu', 'onDoubleClick', 'onDrag', 'onDragEnd', 'onDragEnter', 'onDragExit', 'onDragLeave', 'onDragOver', 'onDragStart', 'onDrop', 'onMouseDown', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp'];\nexport var pointerEvents = ['onPointerDown', 'onPointerMove', 'onPointerUp', 'onPointerCancel', 'onGotPointerCapture', 'onLostPointerCapture', 'onPointerEnter', 'onPointerLeave', 'onPointerOver', 'onPointerOut'];\nexport var selectionEvents = ['onSelect'];\nexport var touchEvents = ['onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart'];\nexport var uiEvents = ['onScroll'];\nexport var wheelEvents = ['onWheel'];\nexport var mediaEvents = ['onAbort', 'onCanPlay', 'onCanPlayThrough', 'onDurationChange', 'onEmptied', 'onEncrypted', 'onEnded', 'onError', 'onLoadedData', 'onLoadedMetadata', 'onLoadStart', 'onPause', 'onPlay', 'onPlaying', 'onProgress', 'onRateChange', 'onSeeked', 'onSeeking', 'onStalled', 'onSuspend', 'onTimeUpdate', 'onVolumeChange', 'onWaiting'];\nexport var imageEvents = ['onLoad', 'onError'];\nexport var animationEvents = ['onAnimationStart', 'onAnimationEnd', 'onAnimationIteration'];\nexport var transitionEvents = ['onTransitionEnd'];\nexport var otherEvents = ['onToggle'];\nexport var allEvents = [].concat(clipboardEvents, compositionEvents, keyboardEvents, focusEvents, formEvents, genericEvents, mouseEvents, pointerEvents, selectionEvents, touchEvents, uiEvents, wheelEvents, mediaEvents, imageEvents, animationEvents, transitionEvents, otherEvents);\n/**\n * Returns an object with on-event callback props curried with provided args.\n * @param {Object} props Props passed to a component.\n * @param {Function=} getArgs A function that returns argument(s) on-event callbacks\n * shall be curried with.\n */\n\nvar makeEventProps = function makeEventProps(props, getArgs) {\n var eventProps = {};\n allEvents.forEach(function (eventName) {\n if (!(eventName in props)) {\n return;\n }\n\n if (!getArgs) {\n eventProps[eventName] = props[eventName];\n return;\n }\n\n eventProps[eventName] = function (event) {\n return props[eventName](event, getArgs(eventName));\n };\n });\n return eventProps;\n};\n\nexport default makeEventProps;","export default function makeCancellablePromise(promise) {\n var isCancelled = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise.then(function () {\n return !isCancelled && resolve.apply(void 0, arguments);\n })[\"catch\"](function (error) {\n return !isCancelled && reject(error);\n });\n });\n return {\n promise: wrappedPromise,\n cancel: function cancel() {\n isCancelled = true;\n }\n };\n}","export default function mergeClassNames() {\n return Array.prototype.slice.call(arguments).reduce(function (classList, arg) {\n return classList.concat(arg);\n }, []).filter(function (arg) {\n return typeof arg === 'string';\n }).join(' ');\n}","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import React from 'react';\nimport PropTypes from 'prop-types';\nexport default function Message(_ref) {\n var children = _ref.children,\n type = _ref.type;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-pdf__message react-pdf__message--\".concat(type)\n }, children);\n}\nMessage.propTypes = {\n children: PropTypes.node,\n type: PropTypes.oneOf(['error', 'loading', 'no-data']).isRequired\n};","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\n\n/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport invariant from 'tiny-invariant';\nvar DEFAULT_LINK_REL = 'noopener noreferrer nofollow';\n\nvar LinkService = /*#__PURE__*/function () {\n function LinkService() {\n _classCallCheck(this, LinkService);\n\n this.externalLinkTarget = null;\n this.externalLinkRel = null;\n }\n\n _createClass(LinkService, [{\n key: \"setDocument\",\n value: function setDocument(pdfDocument) {\n this.pdfDocument = pdfDocument;\n }\n }, {\n key: \"setViewer\",\n value: function setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n }, {\n key: \"setExternalLinkRel\",\n value: function setExternalLinkRel(externalLinkRel) {\n this.externalLinkRel = externalLinkRel;\n }\n }, {\n key: \"setExternalLinkTarget\",\n value: function setExternalLinkTarget(externalLinkTarget) {\n this.externalLinkTarget = externalLinkTarget;\n }\n }, {\n key: \"setHistory\",\n value: function setHistory() {}\n }, {\n key: \"pagesCount\",\n get: function get() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n }, {\n key: \"page\",\n get: function get() {\n return this.pdfViewer.currentPageNumber;\n },\n set: function set(value) {\n this.pdfViewer.currentPageNumber = value;\n }\n }, {\n key: \"rotation\",\n get: function get() {\n return 0;\n },\n set: function set(value) {}\n }, {\n key: \"goToDestination\",\n value: function goToDestination(dest) {\n var _this = this;\n\n new Promise(function (resolve) {\n if (typeof dest === 'string') {\n _this.pdfDocument.getDestination(dest).then(resolve);\n } else if (Array.isArray(dest)) {\n resolve(dest);\n } else {\n dest.then(resolve);\n }\n }).then(function (explicitDest) {\n invariant(Array.isArray(explicitDest), \"\\\"\".concat(explicitDest, \"\\\" is not a valid destination array.\"));\n var destRef = explicitDest[0];\n new Promise(function (resolve) {\n if (destRef instanceof Object) {\n _this.pdfDocument.getPageIndex(destRef).then(function (pageIndex) {\n resolve(pageIndex);\n })[\"catch\"](function () {\n invariant(false, \"\\\"\".concat(destRef, \"\\\" is not a valid page reference.\"));\n });\n } else if (typeof destRef === 'number') {\n resolve(destRef);\n } else {\n invariant(false, \"\\\"\".concat(destRef, \"\\\" is not a valid destination reference.\"));\n }\n }).then(function (pageIndex) {\n var pageNumber = pageIndex + 1;\n invariant(pageNumber >= 1 && pageNumber <= _this.pagesCount, \"\\\"\".concat(pageNumber, \"\\\" is not a valid page number.\"));\n\n _this.pdfViewer.scrollPageIntoView({\n dest: dest,\n pageIndex: pageIndex,\n pageNumber: pageNumber\n });\n });\n });\n }\n }, {\n key: \"navigateTo\",\n value: function navigateTo(dest) {\n this.goToDestination(dest);\n }\n }, {\n key: \"goToPage\",\n value: function goToPage() {}\n }, {\n key: \"addLinkAttributes\",\n value: function addLinkAttributes(link, url, newWindow) {\n link.href = url;\n link.rel = this.externalLinkRel || DEFAULT_LINK_REL;\n link.target = newWindow ? '_blank' : this.externalLinkTarget || '';\n }\n }, {\n key: \"getDestinationHash\",\n value: function getDestinationHash() {\n return '#';\n }\n }, {\n key: \"getAnchorUrl\",\n value: function getAnchorUrl() {\n return '#';\n }\n }, {\n key: \"setHash\",\n value: function setHash() {}\n }, {\n key: \"executeNamedAction\",\n value: function executeNamedAction() {}\n }, {\n key: \"cachePageRef\",\n value: function cachePageRef() {}\n }, {\n key: \"isPageVisible\",\n value: function isPageVisible() {\n return true;\n }\n }, {\n key: \"isPageCached\",\n value: function isPageCached() {\n return true;\n }\n }]);\n\n return LinkService;\n}();\n\nexport { LinkService as default };","// As defined in https://github.com/mozilla/pdf.js/blob/d9fac3459609a807be6506fb3441b5da4b154d14/src/shared/util.js#L371-L374\nvar PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexport default PasswordResponses;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\n/**\n * Checks if we're running in a browser environment.\n */\n\nexport var isBrowser = typeof window !== 'undefined';\n/**\n * Checks whether we're running from a local file system.\n */\n\nexport var isLocalFileSystem = isBrowser && window.location.protocol === 'file:';\n/**\n * Checks whether a variable is defined.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isDefined(variable) {\n return typeof variable !== 'undefined';\n}\n/**\n * Checks whether a variable is defined and not null.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isProvided(variable) {\n return isDefined(variable) && variable !== null;\n}\n/**\n * Checkes whether a variable provided is a string.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isString(variable) {\n return typeof variable === 'string';\n}\n/**\n * Checks whether a variable provided is an ArrayBuffer.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isArrayBuffer(variable) {\n return variable instanceof ArrayBuffer;\n}\n/**\n * Checkes whether a variable provided is a Blob.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isBlob(variable) {\n invariant(isBrowser, 'isBlob can only be used in a browser environment');\n return variable instanceof Blob;\n}\n/**\n * Checkes whether a variable provided is a File.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isFile(variable) {\n invariant(isBrowser, 'isFile can only be used in a browser environment');\n return variable instanceof File;\n}\n/**\n * Checks whether a string provided is a data URI.\n *\n * @param {string} str String to check\n */\n\nexport function isDataURI(str) {\n return isString(str) && /^data:/.test(str);\n}\nexport function dataURItoByteString(dataURI) {\n invariant(isDataURI(dataURI), 'Invalid data URI.');\n\n var _dataURI$split = dataURI.split(','),\n _dataURI$split2 = _slicedToArray(_dataURI$split, 2),\n headersString = _dataURI$split2[0],\n dataString = _dataURI$split2[1];\n\n var headers = headersString.split(';');\n\n if (headers.indexOf('base64') !== -1) {\n return atob(dataString);\n }\n\n return unescape(dataString);\n}\nexport function getPixelRatio() {\n return isBrowser && window.devicePixelRatio || 1;\n}\nvar allowFileAccessFromFilesTip = 'On Chromium based browsers, you can use --allow-file-access-from-files flag for debugging purposes.';\nexport function displayCORSWarning() {\n warning(!isLocalFileSystem, \"Loading PDF as base64 strings/URLs may not work on protocols other than HTTP/HTTPS. \".concat(allowFileAccessFromFilesTip));\n}\nexport function displayWorkerWarning() {\n warning(!isLocalFileSystem, \"Loading PDF.js worker may not work on protocols other than HTTP/HTTPS. \".concat(allowFileAccessFromFilesTip));\n}\nexport function cancelRunningTask(runningTask) {\n if (runningTask && runningTask.cancel) runningTask.cancel();\n}\nexport function makePageCallback(page, scale) {\n Object.defineProperty(page, 'width', {\n get: function get() {\n return this.view[2] * scale;\n },\n configurable: true\n });\n Object.defineProperty(page, 'height', {\n get: function get() {\n return this.view[3] * scale;\n },\n configurable: true\n });\n Object.defineProperty(page, 'originalWidth', {\n get: function get() {\n return this.view[2];\n },\n configurable: true\n });\n Object.defineProperty(page, 'originalHeight', {\n get: function get() {\n return this.view[3];\n },\n configurable: true\n });\n return page;\n}\nexport function isCancelException(error) {\n return error.name === 'RenderingCancelledException';\n}\nexport function loadFromFile(file) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n\n reader.onload = function () {\n return resolve(new Uint8Array(reader.result));\n };\n\n reader.onerror = function (event) {\n switch (event.target.error.code) {\n case event.target.error.NOT_FOUND_ERR:\n return reject(new Error('Error while reading a file: File not found.'));\n\n case event.target.error.NOT_READABLE_ERR:\n return reject(new Error('Error while reading a file: File not readable.'));\n\n case event.target.error.SECURITY_ERR:\n return reject(new Error('Error while reading a file: Security error.'));\n\n case event.target.error.ABORT_ERR:\n return reject(new Error('Error while reading a file: Aborted.'));\n\n default:\n return reject(new Error('Error while reading a file.'));\n }\n };\n\n reader.readAsArrayBuffer(file);\n return null;\n });\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport PropTypes from 'prop-types';\nimport { mouseEvents, touchEvents, keyboardEvents } from 'make-event-props';\nimport { isDefined } from './utils';\nimport LinkService from '../LinkService';\nexport var eventProps = function () {\n var result = {};\n [].concat(_toConsumableArray(mouseEvents), _toConsumableArray(touchEvents), _toConsumableArray(keyboardEvents)).forEach(function (eventName) {\n result[eventName] = PropTypes.func;\n });\n return result;\n}();\nvar fileTypes = [PropTypes.string, PropTypes.instanceOf(ArrayBuffer), PropTypes.shape({\n data: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n httpHeaders: PropTypes.object,\n range: PropTypes.object,\n url: PropTypes.string,\n withCredentials: PropTypes.bool\n})];\n\nif (typeof File !== 'undefined') {\n fileTypes.push(PropTypes.instanceOf(File));\n}\n\nif (typeof Blob !== 'undefined') {\n fileTypes.push(PropTypes.instanceOf(Blob));\n}\n\nexport var isClassName = PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]);\nexport var isFile = PropTypes.oneOfType(fileTypes);\nexport var isLinkService = PropTypes.instanceOf(LinkService);\nexport var isLinkTarget = PropTypes.oneOf(['_self', '_blank', '_parent', '_top']);\nexport var isPage = PropTypes.shape({\n _transport: PropTypes.shape({\n fontLoader: PropTypes.object.isRequired\n }).isRequired,\n commonObjs: PropTypes.shape({\n _objs: PropTypes.object.isRequired\n }).isRequired,\n getAnnotations: PropTypes.func.isRequired,\n getTextContent: PropTypes.func.isRequired,\n getViewport: PropTypes.func.isRequired,\n render: PropTypes.func.isRequired\n});\nexport var isPageIndex = function isPageIndex(props, propName, componentName) {\n var pageIndex = props[propName],\n pageNumber = props.pageNumber,\n pdf = props.pdf;\n\n if (!isDefined(pdf)) {\n return null;\n }\n\n if (isDefined(pageIndex)) {\n if (typeof pageIndex !== 'number') {\n return new Error(\"`\".concat(propName, \"` of type `\").concat(_typeof(pageIndex), \"` supplied to `\").concat(componentName, \"`, expected `number`.\"));\n }\n\n if (pageIndex < 0) {\n return new Error(\"Expected `\".concat(propName, \"` to be greater or equal to 0.\"));\n }\n\n var numPages = pdf.numPages;\n\n if (pageIndex + 1 > numPages) {\n return new Error(\"Expected `\".concat(propName, \"` to be less or equal to \").concat(numPages - 1, \".\"));\n }\n } else if (!isDefined(pageNumber)) {\n return new Error(\"`\".concat(propName, \"` not supplied. Either pageIndex or pageNumber must be supplied to `\").concat(componentName, \"`.\"));\n } // Everything is fine\n\n\n return null;\n};\nexport var isPageNumber = function isPageNumber(props, propName, componentName) {\n var pageNumber = props[propName],\n pageIndex = props.pageIndex,\n pdf = props.pdf;\n\n if (!isDefined(pdf)) {\n return null;\n }\n\n if (isDefined(pageNumber)) {\n if (typeof pageNumber !== 'number') {\n return new Error(\"`\".concat(propName, \"` of type `\").concat(_typeof(pageNumber), \"` supplied to `\").concat(componentName, \"`, expected `number`.\"));\n }\n\n if (pageNumber < 1) {\n return new Error(\"Expected `\".concat(propName, \"` to be greater or equal to 1.\"));\n }\n\n var numPages = pdf.numPages;\n\n if (pageNumber > numPages) {\n return new Error(\"Expected `\".concat(propName, \"` to be less or equal to \").concat(numPages, \".\"));\n }\n } else if (!isDefined(pageIndex)) {\n return new Error(\"`\".concat(propName, \"` not supplied. Either pageIndex or pageNumber must be supplied to `\").concat(componentName, \"`.\"));\n } // Everything is fine\n\n\n return null;\n};\nexport var isPdf = PropTypes.oneOfType([PropTypes.shape({\n getDestination: PropTypes.func.isRequired,\n getOutline: PropTypes.func.isRequired,\n getPage: PropTypes.func.isRequired,\n numPages: PropTypes.number.isRequired\n}), PropTypes.bool]);\nexport var isRef = PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n})]);\nexport var isRenderMode = PropTypes.oneOf(['canvas', 'none', 'svg']);\nexport var isRotate = PropTypes.oneOf([0, 90, 180, 270]);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"url\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * Loads a PDF document. Passes it to all children.\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeEventProps from 'make-event-props';\nimport makeCancellable from 'make-cancellable-promise';\nimport mergeClassNames from 'merge-class-names';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport * as pdfjs from 'pdfjs-dist/legacy/build/pdf';\nimport DocumentContext from './DocumentContext';\nimport Message from './Message';\nimport LinkService from './LinkService';\nimport PasswordResponses from './PasswordResponses';\nimport { cancelRunningTask, dataURItoByteString, displayCORSWarning, isArrayBuffer, isBlob, isBrowser, isDataURI, isFile, loadFromFile } from './shared/utils';\nimport { eventProps, isClassName, isFile as isFileProp, isRef } from './shared/propTypes';\nvar PDFDataRangeTransport = pdfjs.PDFDataRangeTransport;\n\nvar Document = /*#__PURE__*/function (_PureComponent) {\n _inherits(Document, _PureComponent);\n\n var _super = _createSuper(Document);\n\n function Document() {\n var _this;\n\n _classCallCheck(this, Document);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n pdf: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"viewer\", {\n scrollPageIntoView: function scrollPageIntoView(_ref) {\n var dest = _ref.dest,\n pageIndex = _ref.pageIndex,\n pageNumber = _ref.pageNumber;\n // Handling jumping to internal links target\n var onItemClick = _this.props.onItemClick; // First, check if custom handling of onItemClick was provided\n\n if (onItemClick) {\n onItemClick({\n dest: dest,\n pageIndex: pageIndex,\n pageNumber: pageNumber\n });\n return;\n } // If not, try to look for target page within the <Document>.\n\n\n var page = _this.pages[pageIndex];\n\n if (page) {\n // Scroll to the page automatically\n page.scrollIntoView();\n return;\n }\n\n warning(false, \"An internal link leading to page \".concat(pageNumber, \" was clicked, but neither <Document> was provided with onItemClick nor it was able to find the page within itself. Either provide onItemClick to <Document> and handle navigating by yourself or ensure that all pages are rendered within <Document>.\"));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"linkService\", new LinkService());\n\n _defineProperty(_assertThisInitialized(_this), \"loadDocument\", function () {\n // If another rendering is in progress, let's cancel it\n cancelRunningTask(_this.runningTask); // If another loading is in progress, let's destroy it\n\n if (_this.loadingTask) _this.loadingTask.destroy();\n var cancellable = makeCancellable(_this.findDocumentSource());\n _this.runningTask = cancellable;\n cancellable.promise.then(function (source) {\n _this.onSourceSuccess();\n\n if (!source) {\n return;\n }\n\n _this.setState(function (prevState) {\n if (!prevState.pdf) {\n return null;\n }\n\n return {\n pdf: null\n };\n });\n\n var _this$props = _this.props,\n options = _this$props.options,\n onLoadProgress = _this$props.onLoadProgress,\n onPassword = _this$props.onPassword;\n _this.loadingTask = pdfjs.getDocument(_objectSpread(_objectSpread({}, source), options));\n _this.loadingTask.onPassword = onPassword;\n\n if (onLoadProgress) {\n _this.loadingTask.onProgress = onLoadProgress;\n }\n\n var cancellable = makeCancellable(_this.loadingTask.promise);\n _this.runningTask = cancellable;\n cancellable.promise.then(function (pdf) {\n _this.setState(function (prevState) {\n if (prevState.pdf && prevState.pdf.fingerprint === pdf.fingerprint) {\n return null;\n }\n\n return {\n pdf: pdf\n };\n }, _this.onLoadSuccess);\n })[\"catch\"](function (error) {\n _this.onLoadError(error);\n });\n })[\"catch\"](function (error) {\n _this.onSourceError(error);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setupLinkService\", function () {\n var _this$props2 = _this.props,\n externalLinkRel = _this$props2.externalLinkRel,\n externalLinkTarget = _this$props2.externalLinkTarget;\n\n _this.linkService.setViewer(_this.viewer);\n\n _this.linkService.setExternalLinkRel(externalLinkRel);\n\n _this.linkService.setExternalLinkTarget(externalLinkTarget);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSourceSuccess\", function () {\n var onSourceSuccess = _this.props.onSourceSuccess;\n if (onSourceSuccess) onSourceSuccess();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSourceError\", function (error) {\n warning(error);\n var onSourceError = _this.props.onSourceError;\n if (onSourceError) onSourceError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var onLoadSuccess = _this.props.onLoadSuccess;\n var pdf = _this.state.pdf;\n if (onLoadSuccess) onLoadSuccess(pdf);\n _this.pages = new Array(pdf.numPages);\n\n _this.linkService.setDocument(pdf);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n _this.setState({\n pdf: false\n });\n\n warning(error);\n var onLoadError = _this.props.onLoadError;\n if (onLoadError) onLoadError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"findDocumentSource\", function () {\n return new Promise(function (resolve) {\n var file = _this.props.file;\n\n if (!file) {\n resolve(null);\n } // File is a string\n\n\n if (typeof file === 'string') {\n if (isDataURI(file)) {\n var fileByteString = dataURItoByteString(file);\n resolve({\n data: fileByteString\n });\n }\n\n displayCORSWarning();\n resolve({\n url: file\n });\n } // File is PDFDataRangeTransport\n\n\n if (file instanceof PDFDataRangeTransport) {\n resolve({\n range: file\n });\n } // File is an ArrayBuffer\n\n\n if (isArrayBuffer(file)) {\n resolve({\n data: file\n });\n }\n /**\n * The cases below are browser-only.\n * If you're running on a non-browser environment, these cases will be of no use.\n */\n\n\n if (isBrowser) {\n // File is a Blob\n if (isBlob(file) || isFile(file)) {\n loadFromFile(file).then(function (data) {\n resolve({\n data: data\n });\n });\n return;\n }\n } // At this point, file must be an object\n\n\n invariant(_typeof(file) === 'object', 'Invalid parameter in file, need either Uint8Array, string or a parameter object');\n invariant(file.url || file.data || file.range, 'Invalid parameter object: need either .data, .range or .url'); // File .url is a string\n\n if (typeof file.url === 'string') {\n if (isDataURI(file.url)) {\n var url = file.url,\n otherParams = _objectWithoutProperties(file, _excluded);\n\n var _fileByteString = dataURItoByteString(url);\n\n resolve(_objectSpread({\n data: _fileByteString\n }, otherParams));\n }\n\n displayCORSWarning();\n }\n\n resolve(file);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"registerPage\", function (pageIndex, ref) {\n _this.pages[pageIndex] = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unregisterPage\", function (pageIndex) {\n delete _this.pages[pageIndex];\n });\n\n return _this;\n }\n\n _createClass(Document, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.loadDocument();\n this.setupLinkService();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var file = this.props.file;\n\n if (file !== prevProps.file) {\n this.loadDocument();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n // If rendering is in progress, let's cancel it\n cancelRunningTask(this.runningTask); // If loading is in progress, let's destroy it\n\n if (this.loadingTask) this.loadingTask.destroy();\n }\n }, {\n key: \"childContext\",\n get: function get() {\n var linkService = this.linkService,\n registerPage = this.registerPage,\n unregisterPage = this.unregisterPage;\n var _this$props3 = this.props,\n imageResourcesPath = _this$props3.imageResourcesPath,\n renderMode = _this$props3.renderMode,\n rotate = _this$props3.rotate;\n var pdf = this.state.pdf;\n return {\n imageResourcesPath: imageResourcesPath,\n linkService: linkService,\n pdf: pdf,\n registerPage: registerPage,\n renderMode: renderMode,\n rotate: rotate,\n unregisterPage: unregisterPage\n };\n }\n }, {\n key: \"eventProps\",\n get: function get() {\n var _this2 = this;\n\n return makeEventProps(this.props, function () {\n return _this2.state.pdf;\n });\n }\n /**\n * Called when a document source is resolved correctly\n */\n\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var children = this.props.children;\n return /*#__PURE__*/React.createElement(DocumentContext.Provider, {\n value: this.childContext\n }, children);\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var file = this.props.file;\n var pdf = this.state.pdf;\n\n if (!file) {\n var noData = this.props.noData;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"no-data\"\n }, typeof noData === 'function' ? noData() : noData);\n }\n\n if (pdf === null) {\n var loading = this.props.loading;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"loading\"\n }, typeof loading === 'function' ? loading() : loading);\n }\n\n if (pdf === false) {\n var error = this.props.error;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"error\"\n }, typeof error === 'function' ? error() : error);\n }\n\n return this.renderChildren();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n className = _this$props4.className,\n inputRef = _this$props4.inputRef;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergeClassNames('react-pdf__Document', className),\n ref: inputRef\n }, this.eventProps), this.renderContent());\n }\n }]);\n\n return Document;\n}(PureComponent);\n\nexport { Document as default };\nDocument.defaultProps = {\n error: 'Failed to load PDF file.',\n loading: 'Loading PDF…',\n noData: 'No PDF file specified.',\n onPassword: function onPassword(callback, reason) {\n switch (reason) {\n case PasswordResponses.NEED_PASSWORD:\n {\n // eslint-disable-next-line no-alert\n var password = prompt('Enter the password to open this PDF file.');\n callback(password);\n break;\n }\n\n case PasswordResponses.INCORRECT_PASSWORD:\n {\n // eslint-disable-next-line no-alert\n var _password = prompt('Invalid password. Please try again.');\n\n callback(_password);\n break;\n }\n\n default:\n }\n }\n};\nvar isFunctionOrNode = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\nDocument.propTypes = _objectSpread(_objectSpread({}, eventProps), {}, {\n children: PropTypes.node,\n className: isClassName,\n error: isFunctionOrNode,\n externalLinkRel: PropTypes.string,\n externalLinkTarget: PropTypes.string,\n file: isFileProp,\n imageResourcesPath: PropTypes.string,\n inputRef: isRef,\n loading: isFunctionOrNode,\n noData: isFunctionOrNode,\n onItemClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoadProgress: PropTypes.func,\n onLoadSuccess: PropTypes.func,\n onPassword: PropTypes.func,\n onSourceError: PropTypes.func,\n onSourceSuccess: PropTypes.func,\n rotate: PropTypes.number\n});","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\n\nvar Ref = /*#__PURE__*/function () {\n function Ref(_ref) {\n var num = _ref.num,\n gen = _ref.gen;\n\n _classCallCheck(this, Ref);\n\n this.num = num;\n this.gen = gen;\n }\n\n _createClass(Ref, [{\n key: \"toString\",\n value: function toString() {\n var str = \"\".concat(this.num, \"R\");\n\n if (this.gen !== 0) {\n str += this.gen;\n }\n\n return str;\n }\n }]);\n\n return Ref;\n}();\n\nexport { Ref as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"item\"];\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport DocumentContext from './DocumentContext';\nimport OutlineContext from './OutlineContext';\nimport Ref from './Ref';\nimport { isDefined } from './shared/utils';\nimport { isPdf } from './shared/propTypes';\nexport var OutlineItemInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(OutlineItemInternal, _PureComponent);\n\n var _super = _createSuper(OutlineItemInternal);\n\n function OutlineItemInternal() {\n var _this;\n\n _classCallCheck(this, OutlineItemInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"getDestination\", function () {\n return new Promise(function (resolve, reject) {\n var _this$props = _this.props,\n item = _this$props.item,\n pdf = _this$props.pdf;\n\n if (!isDefined(_this.destination)) {\n if (typeof item.dest === 'string') {\n pdf.getDestination(item.dest).then(resolve)[\"catch\"](reject);\n } else {\n resolve(item.dest);\n }\n }\n\n return _this.destination;\n }).then(function (destination) {\n _this.destination = destination;\n return destination;\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPageIndex\", function () {\n return new Promise(function (resolve, reject) {\n var pdf = _this.props.pdf;\n\n if (isDefined(_this.pageIndex)) {\n resolve(_this.pageIndex);\n }\n\n _this.getDestination().then(function (destination) {\n if (!destination) {\n return;\n }\n\n var _destination = _slicedToArray(destination, 1),\n ref = _destination[0];\n\n pdf.getPageIndex(new Ref(ref)).then(resolve)[\"catch\"](reject);\n });\n }).then(function (pageIndex) {\n _this.pageIndex = pageIndex;\n return _this.pageIndex;\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPageNumber\", function () {\n return new Promise(function (resolve, reject) {\n if (isDefined(_this.pageNumber)) {\n resolve(_this.pageNumber);\n }\n\n _this.getPageIndex().then(function (pageIndex) {\n resolve(pageIndex + 1);\n })[\"catch\"](reject);\n }).then(function (pageNumber) {\n _this.pageNumber = pageNumber;\n return pageNumber;\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var onClick = _this.props.onClick;\n event.preventDefault();\n\n if (!onClick) {\n return false;\n }\n\n return Promise.all([_this.getDestination(), _this.getPageIndex(), _this.getPageNumber()]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 3),\n dest = _ref2[0],\n pageIndex = _ref2[1],\n pageNumber = _ref2[2];\n\n onClick({\n dest: dest,\n pageIndex: pageIndex,\n pageNumber: pageNumber\n });\n });\n });\n\n return _this;\n }\n\n _createClass(OutlineItemInternal, [{\n key: \"renderSubitems\",\n value: function renderSubitems() {\n var _this$props2 = this.props,\n item = _this$props2.item,\n otherProps = _objectWithoutProperties(_this$props2, _excluded);\n\n if (!item.items || !item.items.length) {\n return null;\n }\n\n var subitems = item.items;\n return /*#__PURE__*/React.createElement(\"ul\", null, subitems.map(function (subitem, subitemIndex) {\n return /*#__PURE__*/React.createElement(OutlineItemInternal, _extends({\n key: typeof subitem.destination === 'string' ? subitem.destination : subitemIndex,\n item: subitem\n }, otherProps));\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var item = this.props.item;\n return /*#__PURE__*/React.createElement(\"li\", null, /*#__PURE__*/React.createElement(\"a\", {\n href: \"#\",\n onClick: this.onClick\n }, item.title), this.renderSubitems());\n }\n }]);\n\n return OutlineItemInternal;\n}(PureComponent);\nvar isDestination = PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.any)]);\nOutlineItemInternal.propTypes = {\n item: PropTypes.shape({\n dest: isDestination,\n items: PropTypes.arrayOf(PropTypes.shape({\n dest: isDestination,\n title: PropTypes.string\n })),\n title: PropTypes.string\n }).isRequired,\n onClick: PropTypes.func,\n pdf: isPdf.isRequired\n};\n\nvar OutlineItem = function OutlineItem(props) {\n return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (documentContext) {\n return /*#__PURE__*/React.createElement(OutlineContext.Consumer, null, function (outlineContext) {\n return /*#__PURE__*/React.createElement(OutlineItemInternal, _extends({}, documentContext, outlineContext, props));\n });\n });\n};\n\nexport default OutlineItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport mergeClassNames from 'merge-class-names';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport DocumentContext from './DocumentContext';\nimport OutlineContext from './OutlineContext';\nimport OutlineItem from './OutlineItem';\nimport { cancelRunningTask } from './shared/utils';\nimport { eventProps, isClassName, isPdf, isRef } from './shared/propTypes';\nexport var OutlineInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(OutlineInternal, _PureComponent);\n\n var _super = _createSuper(OutlineInternal);\n\n function OutlineInternal() {\n var _this;\n\n _classCallCheck(this, OutlineInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n outline: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"loadOutline\", function () {\n var pdf = _this.props.pdf;\n\n _this.setState(function (prevState) {\n if (!prevState.outline) {\n return null;\n }\n\n return {\n outline: null\n };\n });\n\n var cancellable = makeCancellable(pdf.getOutline());\n _this.runningTask = cancellable;\n cancellable.promise.then(function (outline) {\n _this.setState({\n outline: outline\n }, _this.onLoadSuccess);\n })[\"catch\"](function (error) {\n _this.onLoadError(error);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var onLoadSuccess = _this.props.onLoadSuccess;\n var outline = _this.state.outline;\n if (onLoadSuccess) onLoadSuccess(outline);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n _this.setState({\n outline: false\n });\n\n warning(error);\n var onLoadError = _this.props.onLoadError;\n if (onLoadError) onLoadError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onItemClick\", function (_ref) {\n var dest = _ref.dest,\n pageIndex = _ref.pageIndex,\n pageNumber = _ref.pageNumber;\n var onItemClick = _this.props.onItemClick;\n\n if (onItemClick) {\n onItemClick({\n dest: dest,\n pageIndex: pageIndex,\n pageNumber: pageNumber\n });\n }\n });\n\n return _this;\n }\n\n _createClass(OutlineInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var pdf = this.props.pdf;\n invariant(pdf, 'Attempted to load an outline, but no document was specified.');\n this.loadOutline();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var pdf = this.props.pdf;\n\n if (prevProps.pdf && pdf !== prevProps.pdf) {\n this.loadOutline();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n cancelRunningTask(this.runningTask);\n }\n }, {\n key: \"childContext\",\n get: function get() {\n return {\n onClick: this.onItemClick\n };\n }\n }, {\n key: \"eventProps\",\n get: function get() {\n var _this2 = this;\n\n return makeEventProps(this.props, function () {\n return _this2.state.outline;\n });\n }\n /**\n * Called when an outline is read successfully\n */\n\n }, {\n key: \"renderOutline\",\n value: function renderOutline() {\n var outline = this.state.outline;\n return /*#__PURE__*/React.createElement(\"ul\", null, outline.map(function (item, itemIndex) {\n return /*#__PURE__*/React.createElement(OutlineItem, {\n key: typeof item.destination === 'string' ? item.destination : itemIndex,\n item: item\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var pdf = this.props.pdf;\n var outline = this.state.outline;\n\n if (!pdf || !outline) {\n return null;\n }\n\n var _this$props = this.props,\n className = _this$props.className,\n inputRef = _this$props.inputRef;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergeClassNames('react-pdf__Outline', className),\n ref: inputRef\n }, this.eventProps), /*#__PURE__*/React.createElement(OutlineContext.Provider, {\n value: this.childContext\n }, this.renderOutline()));\n }\n }]);\n\n return OutlineInternal;\n}(PureComponent);\nOutlineInternal.propTypes = _objectSpread({\n className: isClassName,\n inputRef: isRef,\n onItemClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoadSuccess: PropTypes.func,\n pdf: isPdf\n}, eventProps);\n\nfunction Outline(props, ref) {\n return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(OutlineInternal, _extends({\n ref: ref\n }, context, props));\n });\n}\n\nexport default /*#__PURE__*/React.forwardRef(Outline);","/**\n * A function that merges React refs into one.\n * Supports both functions and ref objects created using createRef() and useRef().\n *\n * Usage:\n * ```jsx\n * <div ref={mergeRefs(ref1, ref2, ref3)} />\n * ```\n *\n * @param {...Array<Function|object>} inputRefs Array of refs\n * @returns {Function} Merged refs\n */\nexport default function mergeRefs() {\n for (var _len = arguments.length, inputRefs = new Array(_len), _key = 0; _key < _len; _key++) {\n inputRefs[_key] = arguments[_key];\n }\n\n var filteredInputRefs = inputRefs.filter(Boolean);\n\n if (filteredInputRefs.length <= 1) {\n return filteredInputRefs[0];\n }\n\n return function mergedRefs(ref) {\n filteredInputRefs.forEach(function (inputRef) {\n if (typeof inputRef === 'function') {\n inputRef(ref);\n } else {\n // eslint-disable-next-line no-param-reassign\n inputRef.current = ref;\n }\n });\n };\n}","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { createRef, PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport mergeRefs from 'merge-refs';\nimport warning from 'tiny-warning';\nimport * as pdfjs from 'pdfjs-dist/legacy/build/pdf';\nimport PageContext from '../PageContext';\nimport { getPixelRatio, isCancelException, makePageCallback } from '../shared/utils';\nimport { isPage, isRef, isRotate } from '../shared/propTypes';\nvar ANNOTATION_MODE = pdfjs.AnnotationMode;\nexport var PageCanvasInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(PageCanvasInternal, _PureComponent);\n\n var _super = _createSuper(PageCanvasInternal);\n\n function PageCanvasInternal() {\n var _this;\n\n _classCallCheck(this, PageCanvasInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"canvasElement\", /*#__PURE__*/createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderSuccess\", function () {\n _this.renderer = null;\n var _this$props = _this.props,\n onRenderSuccess = _this$props.onRenderSuccess,\n page = _this$props.page,\n scale = _this$props.scale;\n if (onRenderSuccess) onRenderSuccess(makePageCallback(page, scale));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderError\", function (error) {\n if (isCancelException(error)) {\n return;\n }\n\n warning(error);\n var onRenderError = _this.props.onRenderError;\n if (onRenderError) onRenderError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"drawPageOnCanvas\", function () {\n var canvas = _this.canvasElement.current;\n\n if (!canvas) {\n return null;\n }\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n renderViewport = _assertThisInitialize.renderViewport,\n viewport = _assertThisInitialize.viewport;\n\n var _this$props2 = _this.props,\n canvasBackground = _this$props2.canvasBackground,\n page = _this$props2.page,\n renderForms = _this$props2.renderForms;\n canvas.width = renderViewport.width;\n canvas.height = renderViewport.height;\n canvas.style.width = \"\".concat(Math.floor(viewport.width), \"px\");\n canvas.style.height = \"\".concat(Math.floor(viewport.height), \"px\");\n var renderContext = {\n annotationMode: renderForms ? ANNOTATION_MODE.ENABLE_FORMS : ANNOTATION_MODE.ENABLE,\n\n get canvasContext() {\n return canvas.getContext('2d');\n },\n\n viewport: renderViewport\n };\n\n if (canvasBackground) {\n renderContext.background = canvasBackground;\n } // If another render is in progress, let's cancel it\n\n\n _this.cancelRenderingTask();\n\n _this.renderer = page.render(renderContext);\n return _this.renderer.promise.then(_this.onRenderSuccess)[\"catch\"](_this.onRenderError);\n });\n\n return _this;\n }\n\n _createClass(PageCanvasInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.drawPageOnCanvas();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n canvasBackground = _this$props3.canvasBackground,\n page = _this$props3.page,\n renderForms = _this$props3.renderForms;\n\n if (canvasBackground !== prevProps.canvasBackground || renderForms !== prevProps.renderForms) {\n // Ensures the canvas will be re-rendered from scratch. Otherwise all form data will stay.\n page.cleanup();\n this.drawPageOnCanvas();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRenderingTask();\n var canvas = this.canvasElement.current;\n /**\n * Zeroing the width and height cause most browsers to release graphics\n * resources immediately, which can greatly reduce memory consumption.\n */\n\n if (canvas) {\n canvas.width = 0;\n canvas.height = 0;\n }\n }\n }, {\n key: \"cancelRenderingTask\",\n value: function cancelRenderingTask() {\n if (this.renderer) {\n this.renderer.cancel();\n this.renderer = null;\n }\n }\n /**\n * Called when a page is rendered successfully.\n */\n\n }, {\n key: \"renderViewport\",\n get: function get() {\n var _this$props4 = this.props,\n page = _this$props4.page,\n rotate = _this$props4.rotate,\n scale = _this$props4.scale;\n var pixelRatio = getPixelRatio();\n return page.getViewport({\n scale: scale * pixelRatio,\n rotation: rotate\n });\n }\n }, {\n key: \"viewport\",\n get: function get() {\n var _this$props5 = this.props,\n page = _this$props5.page,\n rotate = _this$props5.rotate,\n scale = _this$props5.scale;\n return page.getViewport({\n scale: scale,\n rotation: rotate\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var canvasRef = this.props.canvasRef;\n return /*#__PURE__*/React.createElement(\"canvas\", {\n className: \"react-pdf__Page__canvas\",\n dir: \"ltr\",\n ref: mergeRefs(canvasRef, this.canvasElement),\n style: {\n display: 'block',\n userSelect: 'none'\n }\n });\n }\n }]);\n\n return PageCanvasInternal;\n}(PureComponent);\nPageCanvasInternal.propTypes = {\n canvasBackground: PropTypes.string,\n canvasRef: isRef,\n onRenderError: PropTypes.func,\n onRenderSuccess: PropTypes.func,\n page: isPage.isRequired,\n renderForms: PropTypes.bool,\n rotate: isRotate,\n scale: PropTypes.number.isRequired\n};\nexport default function PageCanvas(props) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(PageCanvasInternal, _extends({}, context, props));\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport * as pdfjs from 'pdfjs-dist/legacy/build/pdf';\nimport PageContext from '../PageContext';\nimport { isCancelException, makePageCallback } from '../shared/utils';\nimport { isPage, isRotate } from '../shared/propTypes';\nexport var PageSVGInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(PageSVGInternal, _PureComponent);\n\n var _super = _createSuper(PageSVGInternal);\n\n function PageSVGInternal() {\n var _this;\n\n _classCallCheck(this, PageSVGInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n svg: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderSuccess\", function () {\n _this.renderer = null;\n var _this$props = _this.props,\n onRenderSuccess = _this$props.onRenderSuccess,\n page = _this$props.page,\n scale = _this$props.scale;\n if (onRenderSuccess) onRenderSuccess(makePageCallback(page, scale));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderError\", function (error) {\n if (isCancelException(error)) {\n return;\n }\n\n warning(error);\n var onRenderError = _this.props.onRenderError;\n if (onRenderError) onRenderError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderSVG\", function () {\n var page = _this.props.page;\n _this.renderer = page.getOperatorList();\n return _this.renderer.then(function (operatorList) {\n var svgGfx = new pdfjs.SVGGraphics(page.commonObjs, page.objs);\n _this.renderer = svgGfx.getSVG(operatorList, _this.viewport).then(function (svg) {\n _this.setState({\n svg: svg\n }, _this.onRenderSuccess);\n })[\"catch\"](_this.onRenderError);\n })[\"catch\"](_this.onRenderError);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"drawPageOnContainer\", function (element) {\n var svg = _this.state.svg;\n\n if (!element || !svg) {\n return;\n } // Append SVG element to the main container, if this hasn't been done already\n\n\n if (!element.firstElementChild) {\n element.appendChild(svg);\n }\n\n var _this$viewport = _this.viewport,\n width = _this$viewport.width,\n height = _this$viewport.height;\n svg.setAttribute('width', width);\n svg.setAttribute('height', height);\n });\n\n return _this;\n }\n\n _createClass(PageSVGInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.renderSVG();\n }\n /**\n * Called when a page is rendered successfully.\n */\n\n }, {\n key: \"viewport\",\n get: function get() {\n var _this$props2 = this.props,\n page = _this$props2.page,\n rotate = _this$props2.rotate,\n scale = _this$props2.scale;\n return page.getViewport({\n scale: scale,\n rotation: rotate\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$viewport2 = this.viewport,\n width = _this$viewport2.width,\n height = _this$viewport2.height;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-pdf__Page__svg\" // Note: This cannot be shortened, as we need this function to be called with each render.\n ,\n ref: function ref(_ref) {\n return _this2.drawPageOnContainer(_ref);\n },\n style: {\n display: 'block',\n backgroundColor: 'white',\n overflow: 'hidden',\n width: width,\n height: height,\n userSelect: 'none'\n }\n });\n }\n }]);\n\n return PageSVGInternal;\n}(PureComponent);\nPageSVGInternal.propTypes = {\n onRenderError: PropTypes.func,\n onRenderSuccess: PropTypes.func,\n page: isPage.isRequired,\n rotate: isRotate,\n scale: PropTypes.number.isRequired\n};\nexport default function PageSVG(props) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(PageSVGInternal, _extends({}, context, props));\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { createRef, PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport PageContext from '../PageContext';\nimport { isPage, isRotate } from '../shared/propTypes';\nexport var TextLayerItemInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(TextLayerItemInternal, _PureComponent);\n\n var _super = _createSuper(TextLayerItemInternal);\n\n function TextLayerItemInternal() {\n var _this;\n\n _classCallCheck(this, TextLayerItemInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"itemElement\", /*#__PURE__*/createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"getElementWidth\", function (element) {\n var _assertThisInitialize = _assertThisInitialized(_this),\n sideways = _assertThisInitialize.sideways;\n\n return element.getBoundingClientRect()[sideways ? 'height' : 'width'];\n });\n\n return _this;\n }\n\n _createClass(TextLayerItemInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.alignTextItem();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.alignTextItem();\n }\n }, {\n key: \"unrotatedViewport\",\n get: function get() {\n var _this$props = this.props,\n page = _this$props.page,\n scale = _this$props.scale;\n return page.getViewport({\n scale: scale\n });\n }\n /**\n * It might happen that the page is rotated by default. In such cases, we shouldn't rotate\n * text content.\n */\n\n }, {\n key: \"rotate\",\n get: function get() {\n var _this$props2 = this.props,\n page = _this$props2.page,\n rotate = _this$props2.rotate;\n return rotate - page.rotate;\n }\n }, {\n key: \"sideways\",\n get: function get() {\n var rotate = this.rotate;\n return rotate % 180 !== 0;\n }\n }, {\n key: \"defaultSideways\",\n get: function get() {\n var rotation = this.unrotatedViewport.rotation;\n return rotation % 180 !== 0;\n }\n }, {\n key: \"fontSize\",\n get: function get() {\n var transform = this.props.transform;\n var defaultSideways = this.defaultSideways;\n\n var _transform = _slicedToArray(transform, 2),\n fontHeightPx = _transform[0],\n fontWidthPx = _transform[1];\n\n return defaultSideways ? fontWidthPx : fontHeightPx;\n }\n }, {\n key: \"top\",\n get: function get() {\n var transform = this.props.transform;\n var viewport = this.unrotatedViewport,\n defaultSideways = this.defaultSideways;\n\n var _transform2 = _slicedToArray(transform, 6),\n\n /* fontHeightPx */\n\n /* fontWidthPx */\n offsetX = _transform2[2],\n offsetY = _transform2[3],\n x = _transform2[4],\n y = _transform2[5];\n\n var _viewport$viewBox = _slicedToArray(viewport.viewBox, 4),\n\n /* xMin */\n yMin\n /* xMax */\n = _viewport$viewBox[1],\n yMax = _viewport$viewBox[3];\n\n return defaultSideways ? x + offsetX + yMin : yMax - (y + offsetY);\n }\n }, {\n key: \"left\",\n get: function get() {\n var transform = this.props.transform;\n var viewport = this.unrotatedViewport,\n defaultSideways = this.defaultSideways;\n\n var _transform3 = _slicedToArray(transform, 6),\n\n /* fontHeightPx */\n\n /* fontWidthPx */\n\n /* offsetX */\n\n /* offsetY */\n x = _transform3[4],\n y = _transform3[5];\n\n var _viewport$viewBox2 = _slicedToArray(viewport.viewBox, 1),\n xMin = _viewport$viewBox2[0];\n\n return defaultSideways ? y - xMin : x - xMin;\n }\n }, {\n key: \"getFontData\",\n value: function getFontData(fontName) {\n var page = this.props.page;\n return new Promise(function (resolve) {\n page.commonObjs.get(fontName, resolve);\n });\n }\n }, {\n key: \"alignTextItem\",\n value: function alignTextItem() {\n var _this2 = this;\n\n var element = this.itemElement.current;\n\n if (!element) {\n return;\n }\n\n element.style.transform = '';\n var _this$props3 = this.props,\n fontName = _this$props3.fontName,\n scale = _this$props3.scale,\n width = _this$props3.width;\n element.style.fontFamily = \"\".concat(fontName, \", sans-serif\");\n this.getFontData(fontName).then(function (fontData) {\n var fallbackFontName = fontData ? fontData.fallbackName : 'sans-serif';\n element.style.fontFamily = \"\".concat(fontName, \", \").concat(fallbackFontName);\n var targetWidth = width * scale;\n\n var actualWidth = _this2.getElementWidth(element);\n\n var transform = \"scaleX(\".concat(targetWidth / actualWidth, \")\");\n var ascent = fontData ? fontData.ascent : 0;\n\n if (ascent) {\n transform += \" translateY(\".concat((1 - ascent) * 100, \"%)\");\n }\n\n element.style.transform = transform;\n element.style.WebkitTransform = transform;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var fontSize = this.fontSize,\n top = this.top,\n left = this.left;\n var _this$props4 = this.props,\n customTextRenderer = _this$props4.customTextRenderer,\n scale = _this$props4.scale,\n text = _this$props4.str;\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: this.itemElement,\n style: {\n height: '1em',\n fontFamily: 'sans-serif',\n fontSize: \"\".concat(fontSize * scale, \"px\"),\n position: 'absolute',\n top: \"\".concat(top * scale, \"px\"),\n left: \"\".concat(left * scale, \"px\"),\n transformOrigin: 'left bottom',\n whiteSpace: 'pre',\n pointerEvents: 'all'\n }\n }, customTextRenderer ? customTextRenderer(this.props) : text);\n }\n }]);\n\n return TextLayerItemInternal;\n}(PureComponent);\nTextLayerItemInternal.propTypes = {\n customTextRenderer: PropTypes.func,\n fontName: PropTypes.string.isRequired,\n itemIndex: PropTypes.number.isRequired,\n page: isPage.isRequired,\n rotate: isRotate,\n scale: PropTypes.number,\n str: PropTypes.string.isRequired,\n transform: PropTypes.arrayOf(PropTypes.number).isRequired,\n width: PropTypes.number.isRequired\n};\nexport default function TextLayerItem(props) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(TextLayerItemInternal, _extends({}, context, props));\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport PageContext from '../PageContext';\nimport TextLayerItem from './TextLayerItem';\nimport { cancelRunningTask } from '../shared/utils';\nimport { isPage, isRotate } from '../shared/propTypes';\nexport var TextLayerInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(TextLayerInternal, _PureComponent);\n\n var _super = _createSuper(TextLayerInternal);\n\n function TextLayerInternal() {\n var _this;\n\n _classCallCheck(this, TextLayerInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n textItems: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"loadTextItems\", function () {\n var page = _this.props.page;\n var cancellable = makeCancellable(page.getTextContent());\n _this.runningTask = cancellable;\n cancellable.promise.then(function (_ref) {\n var textItems = _ref.items;\n\n _this.setState({\n textItems: textItems\n }, _this.onLoadSuccess);\n })[\"catch\"](function (error) {\n _this.onLoadError(error);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var onGetTextSuccess = _this.props.onGetTextSuccess;\n var textItems = _this.state.textItems;\n if (onGetTextSuccess) onGetTextSuccess(textItems);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n _this.setState({\n textItems: false\n });\n\n warning(error);\n var onGetTextError = _this.props.onGetTextError;\n if (onGetTextError) onGetTextError(error);\n });\n\n return _this;\n }\n\n _createClass(TextLayerInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var page = this.props.page;\n invariant(page, 'Attempted to load page text content, but no page was specified.');\n this.loadTextItems();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var page = this.props.page;\n\n if (prevProps.page && page !== prevProps.page) {\n this.loadTextItems();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n cancelRunningTask(this.runningTask);\n }\n }, {\n key: \"unrotatedViewport\",\n get: function get() {\n var _this$props = this.props,\n page = _this$props.page,\n scale = _this$props.scale;\n return page.getViewport({\n scale: scale\n });\n }\n /**\n * It might happen that the page is rotated by default. In such cases, we shouldn't rotate\n * text content.\n */\n\n }, {\n key: \"rotate\",\n get: function get() {\n var _this$props2 = this.props,\n page = _this$props2.page,\n rotate = _this$props2.rotate;\n return rotate - page.rotate;\n }\n }, {\n key: \"renderTextItems\",\n value: function renderTextItems() {\n var textItems = this.state.textItems;\n\n if (!textItems) {\n return null;\n }\n\n return textItems.map(function (textItem, itemIndex) {\n return /*#__PURE__*/React.createElement(TextLayerItem // eslint-disable-next-line react/no-array-index-key\n , _extends({\n key: itemIndex,\n itemIndex: itemIndex\n }, textItem));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var viewport = this.unrotatedViewport,\n rotate = this.rotate;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-pdf__Page__textContent\",\n style: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: \"\".concat(viewport.width, \"px\"),\n height: \"\".concat(viewport.height, \"px\"),\n color: 'transparent',\n transform: \"translate(-50%, -50%) rotate(\".concat(rotate, \"deg)\"),\n WebkitTransform: \"translate(-50%, -50%) rotate(\".concat(rotate, \"deg)\"),\n pointerEvents: 'none'\n }\n }, this.renderTextItems());\n }\n }]);\n\n return TextLayerInternal;\n}(PureComponent);\nTextLayerInternal.propTypes = {\n onGetTextError: PropTypes.func,\n onGetTextSuccess: PropTypes.func,\n page: isPage.isRequired,\n rotate: isRotate,\n scale: PropTypes.number\n};\nexport default function TextLayer(props) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(TextLayerInternal, _extends({}, context, props));\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { createRef, PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport * as pdfjs from 'pdfjs-dist/legacy/build/pdf';\nimport DocumentContext from '../DocumentContext';\nimport PageContext from '../PageContext';\nimport { cancelRunningTask } from '../shared/utils';\nimport { isLinkService, isPage, isRotate } from '../shared/propTypes';\nexport var AnnotationLayerInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(AnnotationLayerInternal, _PureComponent);\n\n var _super = _createSuper(AnnotationLayerInternal);\n\n function AnnotationLayerInternal() {\n var _this;\n\n _classCallCheck(this, AnnotationLayerInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n annotations: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"layerElement\", /*#__PURE__*/createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"loadAnnotations\", function () {\n var page = _this.props.page;\n var cancellable = makeCancellable(page.getAnnotations());\n _this.runningTask = cancellable;\n cancellable.promise.then(function (annotations) {\n _this.setState({\n annotations: annotations\n }, _this.onLoadSuccess);\n })[\"catch\"](function (error) {\n _this.onLoadError(error);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var onGetAnnotationsSuccess = _this.props.onGetAnnotationsSuccess;\n var annotations = _this.state.annotations;\n if (onGetAnnotationsSuccess) onGetAnnotationsSuccess(annotations);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n _this.setState({\n annotations: false\n });\n\n warning(error);\n var onGetAnnotationsError = _this.props.onGetAnnotationsError;\n if (onGetAnnotationsError) onGetAnnotationsError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderSuccess\", function () {\n var onRenderAnnotationLayerSuccess = _this.props.onRenderAnnotationLayerSuccess;\n if (onRenderAnnotationLayerSuccess) onRenderAnnotationLayerSuccess();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRenderError\", function (error) {\n warning(error);\n var onRenderAnnotationLayerError = _this.props.onRenderAnnotationLayerError;\n if (onRenderAnnotationLayerError) onRenderAnnotationLayerError(error);\n });\n\n return _this;\n }\n\n _createClass(AnnotationLayerInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var page = this.props.page;\n invariant(page, 'Attempted to load page annotations, but no page was specified.');\n this.loadAnnotations();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props = this.props,\n page = _this$props.page,\n renderForms = _this$props.renderForms;\n\n if (prevProps.page && page !== prevProps.page || renderForms !== prevProps.renderForms) {\n this.loadAnnotations();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n cancelRunningTask(this.runningTask);\n }\n }, {\n key: \"viewport\",\n get: function get() {\n var _this$props2 = this.props,\n page = _this$props2.page,\n rotate = _this$props2.rotate,\n scale = _this$props2.scale;\n return page.getViewport({\n scale: scale,\n rotation: rotate\n });\n }\n }, {\n key: \"renderAnnotationLayer\",\n value: function renderAnnotationLayer() {\n var annotations = this.state.annotations;\n\n if (!annotations) {\n return;\n }\n\n var _this$props3 = this.props,\n imageResourcesPath = _this$props3.imageResourcesPath,\n linkService = _this$props3.linkService,\n page = _this$props3.page,\n renderForms = _this$props3.renderForms;\n var viewport = this.viewport.clone({\n dontFlip: true\n });\n var parameters = {\n annotations: annotations,\n div: this.layerElement.current,\n imageResourcesPath: imageResourcesPath,\n linkService: linkService,\n page: page,\n renderForms: renderForms,\n viewport: viewport\n };\n this.layerElement.current.innerHTML = '';\n\n try {\n pdfjs.AnnotationLayer.render(parameters);\n this.onRenderSuccess();\n } catch (error) {\n this.onRenderError(error);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-pdf__Page__annotations annotationLayer\",\n ref: this.layerElement\n }, this.renderAnnotationLayer());\n }\n }]);\n\n return AnnotationLayerInternal;\n}(PureComponent);\nAnnotationLayerInternal.propTypes = {\n imageResourcesPath: PropTypes.string,\n linkService: isLinkService.isRequired,\n onGetAnnotationsError: PropTypes.func,\n onGetAnnotationsSuccess: PropTypes.func,\n onRenderAnnotationLayerError: PropTypes.func,\n onRenderAnnotationLayerSuccess: PropTypes.func,\n page: isPage,\n renderForms: PropTypes.bool,\n rotate: isRotate,\n scale: PropTypes.number\n};\n\nvar AnnotationLayer = function AnnotationLayer(props) {\n return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (documentContext) {\n return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (pageContext) {\n return /*#__PURE__*/React.createElement(AnnotationLayerInternal, _extends({}, documentContext, pageContext, props));\n });\n });\n};\n\nexport default AnnotationLayer;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { createRef, PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport mergeClassNames from 'merge-class-names';\nimport mergeRefs from 'merge-refs';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport DocumentContext from './DocumentContext';\nimport PageContext from './PageContext';\nimport Message from './Message';\nimport PageCanvas from './Page/PageCanvas';\nimport PageSVG from './Page/PageSVG';\nimport TextLayer from './Page/TextLayer';\nimport AnnotationLayer from './Page/AnnotationLayer';\nimport { cancelRunningTask, isProvided, makePageCallback } from './shared/utils';\nimport { eventProps, isClassName, isPageIndex, isPageNumber, isPdf, isRef, isRenderMode, isRotate } from './shared/propTypes';\nvar defaultScale = 1;\nexport var PageInternal = /*#__PURE__*/function (_PureComponent) {\n _inherits(PageInternal, _PureComponent);\n\n var _super = _createSuper(PageInternal);\n\n function PageInternal() {\n var _this;\n\n _classCallCheck(this, PageInternal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n page: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pageElement\", /*#__PURE__*/createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n var _this$props = _this.props,\n onLoadSuccess = _this$props.onLoadSuccess,\n registerPage = _this$props.registerPage;\n var page = _this.state.page;\n if (onLoadSuccess) onLoadSuccess(makePageCallback(page, _this.scale));\n if (registerPage) registerPage(_this.pageIndex, _this.pageElement.current);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n _this.setState({\n page: false\n });\n\n warning(error);\n var onLoadError = _this.props.onLoadError;\n if (onLoadError) onLoadError(error);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"loadPage\", function () {\n var pdf = _this.props.pdf;\n\n var pageNumber = _this.getPageNumber();\n\n if (!pageNumber) {\n return;\n }\n\n _this.setState(function (prevState) {\n if (!prevState.page) {\n return null;\n }\n\n return {\n page: null\n };\n });\n\n var cancellable = makeCancellable(pdf.getPage(pageNumber));\n _this.runningTask = cancellable;\n cancellable.promise.then(function (page) {\n _this.setState({\n page: page\n }, _this.onLoadSuccess);\n })[\"catch\"](function (error) {\n _this.onLoadError(error);\n });\n });\n\n return _this;\n }\n\n _createClass(PageInternal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var pdf = this.props.pdf;\n invariant(pdf, 'Attempted to load a page, but no document was specified.');\n this.loadPage();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var pdf = this.props.pdf;\n\n if (prevProps.pdf && pdf !== prevProps.pdf || this.getPageNumber() !== this.getPageNumber(prevProps)) {\n var unregisterPage = this.props.unregisterPage;\n if (unregisterPage) unregisterPage(this.getPageIndex(prevProps));\n this.loadPage();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var unregisterPage = this.props.unregisterPage;\n if (unregisterPage) unregisterPage(this.pageIndex);\n cancelRunningTask(this.runningTask);\n }\n }, {\n key: \"childContext\",\n get: function get() {\n var page = this.state.page;\n\n if (!page) {\n return {};\n }\n\n var _this$props2 = this.props,\n canvasBackground = _this$props2.canvasBackground,\n customTextRenderer = _this$props2.customTextRenderer,\n onGetAnnotationsError = _this$props2.onGetAnnotationsError,\n onGetAnnotationsSuccess = _this$props2.onGetAnnotationsSuccess,\n onGetTextError = _this$props2.onGetTextError,\n onGetTextSuccess = _this$props2.onGetTextSuccess,\n onRenderAnnotationLayerError = _this$props2.onRenderAnnotationLayerError,\n onRenderAnnotationLayerSuccess = _this$props2.onRenderAnnotationLayerSuccess,\n onRenderError = _this$props2.onRenderError,\n onRenderSuccess = _this$props2.onRenderSuccess,\n renderForms = _this$props2.renderForms,\n renderInteractiveForms = _this$props2.renderInteractiveForms;\n return {\n canvasBackground: canvasBackground,\n customTextRenderer: customTextRenderer,\n onGetAnnotationsError: onGetAnnotationsError,\n onGetAnnotationsSuccess: onGetAnnotationsSuccess,\n onGetTextError: onGetTextError,\n onGetTextSuccess: onGetTextSuccess,\n onRenderAnnotationLayerError: onRenderAnnotationLayerError,\n onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccess,\n onRenderError: onRenderError,\n onRenderSuccess: onRenderSuccess,\n page: page,\n renderForms: renderForms !== null && renderForms !== void 0 ? renderForms : renderInteractiveForms,\n // For backward compatibility\n rotate: this.rotate,\n scale: this.scale\n };\n }\n /**\n * Called when a page is loaded successfully\n */\n\n }, {\n key: \"getPageIndex\",\n value: function getPageIndex() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n\n if (isProvided(props.pageNumber)) {\n return props.pageNumber - 1;\n }\n\n if (isProvided(props.pageIndex)) {\n return props.pageIndex;\n }\n\n return null;\n }\n }, {\n key: \"getPageNumber\",\n value: function getPageNumber() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n\n if (isProvided(props.pageNumber)) {\n return props.pageNumber;\n }\n\n if (isProvided(props.pageIndex)) {\n return props.pageIndex + 1;\n }\n\n return null;\n }\n }, {\n key: \"pageIndex\",\n get: function get() {\n return this.getPageIndex();\n }\n }, {\n key: \"pageNumber\",\n get: function get() {\n return this.getPageNumber();\n }\n }, {\n key: \"rotate\",\n get: function get() {\n var rotate = this.props.rotate;\n\n if (isProvided(rotate)) {\n return rotate;\n }\n\n var page = this.state.page;\n\n if (!page) {\n return null;\n }\n\n return page.rotate;\n }\n }, {\n key: \"scale\",\n get: function get() {\n var page = this.state.page;\n\n if (!page) {\n return null;\n }\n\n var _this$props3 = this.props,\n scale = _this$props3.scale,\n width = _this$props3.width,\n height = _this$props3.height;\n var rotate = this.rotate; // Be default, we'll render page at 100% * scale width.\n\n var pageScale = 1; // Passing scale explicitly null would cause the page not to render\n\n var scaleWithDefault = scale === null ? defaultScale : scale; // If width/height is defined, calculate the scale of the page so it could be of desired width.\n\n if (width || height) {\n var viewport = page.getViewport({\n scale: 1,\n rotation: rotate\n });\n pageScale = width ? width / viewport.width : height / viewport.height;\n }\n\n return scaleWithDefault * pageScale;\n }\n }, {\n key: \"eventProps\",\n get: function get() {\n var _this2 = this;\n\n return makeEventProps(this.props, function () {\n var page = _this2.state.page;\n\n if (!page) {\n return page;\n }\n\n return makePageCallback(page, _this2.scale);\n });\n }\n }, {\n key: \"pageKey\",\n get: function get() {\n var page = this.state.page;\n return \"\".concat(page.pageIndex, \"@\").concat(this.scale, \"/\").concat(this.rotate);\n }\n }, {\n key: \"pageKeyNoScale\",\n get: function get() {\n var page = this.state.page;\n return \"\".concat(page.pageIndex, \"/\").concat(this.rotate);\n }\n }, {\n key: \"renderMainLayer\",\n value: function renderMainLayer() {\n var _this$props4 = this.props,\n canvasRef = _this$props4.canvasRef,\n renderMode = _this$props4.renderMode;\n\n switch (renderMode) {\n case 'none':\n return null;\n\n case 'svg':\n return /*#__PURE__*/React.createElement(PageSVG, {\n key: \"\".concat(this.pageKeyNoScale, \"_svg\")\n });\n\n case 'canvas':\n default:\n return /*#__PURE__*/React.createElement(PageCanvas, {\n key: \"\".concat(this.pageKey, \"_canvas\"),\n canvasRef: canvasRef\n });\n }\n }\n }, {\n key: \"renderTextLayer\",\n value: function renderTextLayer() {\n var renderTextLayer = this.props.renderTextLayer;\n\n if (!renderTextLayer) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(TextLayer, {\n key: \"\".concat(this.pageKey, \"_text\")\n });\n }\n }, {\n key: \"renderAnnotationLayer\",\n value: function renderAnnotationLayer() {\n var renderAnnotationLayer = this.props.renderAnnotationLayer;\n\n if (!renderAnnotationLayer) {\n return null;\n }\n /**\n * As of now, PDF.js 2.0.943 returns warnings on unimplemented annotations in SVG mode.\n * Therefore, as a fallback, we render \"traditional\" AnnotationLayer component.\n */\n\n\n return /*#__PURE__*/React.createElement(AnnotationLayer, {\n key: \"\".concat(this.pageKey, \"_annotations\")\n });\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var children = this.props.children;\n return /*#__PURE__*/React.createElement(PageContext.Provider, {\n value: this.childContext\n }, this.renderMainLayer(), this.renderTextLayer(), this.renderAnnotationLayer(), children);\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var pageNumber = this.pageNumber;\n var pdf = this.props.pdf;\n var page = this.state.page;\n\n if (!pageNumber) {\n var noData = this.props.noData;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"no-data\"\n }, typeof noData === 'function' ? noData() : noData);\n }\n\n if (pdf === null || page === null) {\n var loading = this.props.loading;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"loading\"\n }, typeof loading === 'function' ? loading() : loading);\n }\n\n if (pdf === false || page === false) {\n var error = this.props.error;\n return /*#__PURE__*/React.createElement(Message, {\n type: \"error\"\n }, typeof error === 'function' ? error() : error);\n }\n\n return this.renderChildren();\n }\n }, {\n key: \"render\",\n value: function render() {\n var pageNumber = this.pageNumber;\n var _this$props5 = this.props,\n className = _this$props5.className,\n inputRef = _this$props5.inputRef;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergeClassNames('react-pdf__Page', className),\n \"data-page-number\": pageNumber,\n ref: mergeRefs(inputRef, this.pageElement),\n style: {\n position: 'relative'\n }\n }, this.eventProps), this.renderContent());\n }\n }]);\n\n return PageInternal;\n}(PureComponent);\nPageInternal.defaultProps = {\n error: 'Failed to load the page.',\n loading: 'Loading page…',\n noData: 'No page specified.',\n renderAnnotationLayer: true,\n renderForms: false,\n renderMode: 'canvas',\n renderTextLayer: true,\n scale: defaultScale\n};\nvar isFunctionOrNode = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\nPageInternal.propTypes = _objectSpread(_objectSpread({}, eventProps), {}, {\n canvasBackground: PropTypes.string,\n children: PropTypes.node,\n className: isClassName,\n customTextRenderer: PropTypes.func,\n error: isFunctionOrNode,\n height: PropTypes.number,\n imageResourcesPath: PropTypes.string,\n inputRef: isRef,\n loading: isFunctionOrNode,\n noData: isFunctionOrNode,\n onGetTextError: PropTypes.func,\n onGetTextSuccess: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoadSuccess: PropTypes.func,\n onRenderError: PropTypes.func,\n onRenderSuccess: PropTypes.func,\n pageIndex: isPageIndex,\n pageNumber: isPageNumber,\n pdf: isPdf,\n registerPage: PropTypes.func,\n renderAnnotationLayer: PropTypes.bool,\n renderForms: PropTypes.bool,\n renderInteractiveForms: PropTypes.bool,\n // For backward compatibility\n renderMode: isRenderMode,\n renderTextLayer: PropTypes.bool,\n rotate: isRotate,\n scale: PropTypes.number,\n unregisterPage: PropTypes.func,\n width: PropTypes.number\n});\n\nfunction Page(props, ref) {\n return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(PageInternal, _extends({\n ref: ref\n }, context, props));\n });\n}\n\nexport default /*#__PURE__*/React.forwardRef(Page);","import * as pdfjs from 'pdfjs-dist/legacy/build/pdf'; // eslint-disable-next-line import/no-unresolved\n\nimport pdfjsWorker from 'file-loader!pdfjs-dist/legacy/build/pdf.worker';\nimport Document from './Document';\nimport Outline from './Outline';\nimport Page from './Page';\nimport { displayWorkerWarning } from './shared/utils';\ndisplayWorkerWarning();\npdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker;\nexport { pdfjs, Document, Outline, Page };","var CAN_USE_DOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n// Adapted from Modernizr\n// https://github.com/Modernizr/Modernizr/blob/acb3f0d9/feature-detects/dom/passiveeventlisteners.js#L26-L37\nfunction testPassiveEventListeners() {\n if (!CAN_USE_DOM) {\n return false;\n }\n\n if (!window.addEventListener || !window.removeEventListener || !Object.defineProperty) {\n return false;\n }\n\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line getter-return\n get: function () {\n function get() {\n supportsPassiveOption = true;\n }\n\n return get;\n }()\n });\n var noop = function noop() {};\n window.addEventListener('testPassiveEventSupport', noop, opts);\n window.removeEventListener('testPassiveEventSupport', noop, opts);\n } catch (e) {\n // do nothing\n }\n\n return supportsPassiveOption;\n}\n\nvar memoized = void 0;\n\nfunction canUsePassiveEventListeners() {\n if (memoized === undefined) {\n memoized = testPassiveEventListeners();\n }\n return memoized;\n}\n\nfunction normalizeEventOptions(eventOptions) {\n if (!eventOptions) {\n return undefined;\n }\n\n if (!canUsePassiveEventListeners()) {\n // If the browser does not support the passive option, then it is expecting\n // a boolean for the options argument to specify whether it should use\n // capture or not. In more modern browsers, this is passed via the `capture`\n // option, so let's just hoist that value up.\n return !!eventOptions.capture;\n }\n\n return eventOptions;\n}\n\n/* eslint-disable no-bitwise */\n\n/**\n * Generate a unique key for any set of event options\n */\nfunction eventOptionsKey(normalizedEventOptions) {\n if (!normalizedEventOptions) {\n return 0;\n }\n\n // If the browser does not support passive event listeners, the normalized\n // event options will be a boolean.\n if (normalizedEventOptions === true) {\n return 100;\n }\n\n // At this point, the browser supports passive event listeners, so we expect\n // the event options to be an object with possible properties of capture,\n // passive, and once.\n //\n // We want to consistently return the same value, regardless of the order of\n // these properties, so let's use binary maths to assign each property to a\n // bit, and then add those together (with an offset to account for the\n // booleans at the beginning of this function).\n var capture = normalizedEventOptions.capture << 0;\n var passive = normalizedEventOptions.passive << 1;\n var once = normalizedEventOptions.once << 2;\n return capture + passive + once;\n}\n\nfunction ensureCanMutateNextEventHandlers(eventHandlers) {\n if (eventHandlers.handlers === eventHandlers.nextHandlers) {\n // eslint-disable-next-line no-param-reassign\n eventHandlers.nextHandlers = eventHandlers.handlers.slice();\n }\n}\n\nfunction TargetEventHandlers(target) {\n this.target = target;\n this.events = {};\n}\n\nTargetEventHandlers.prototype.getEventHandlers = function () {\n function getEventHandlers(eventName, options) {\n var key = String(eventName) + ' ' + String(eventOptionsKey(options));\n\n if (!this.events[key]) {\n this.events[key] = {\n handlers: [],\n handleEvent: undefined\n };\n this.events[key].nextHandlers = this.events[key].handlers;\n }\n\n return this.events[key];\n }\n\n return getEventHandlers;\n}();\n\nTargetEventHandlers.prototype.handleEvent = function () {\n function handleEvent(eventName, options, event) {\n var eventHandlers = this.getEventHandlers(eventName, options);\n eventHandlers.handlers = eventHandlers.nextHandlers;\n eventHandlers.handlers.forEach(function (handler) {\n if (handler) {\n // We need to check for presence here because a handler function may\n // cause later handlers to get removed. This can happen if you for\n // instance have a waypoint that unmounts another waypoint as part of an\n // onEnter/onLeave handler.\n handler(event);\n }\n });\n }\n\n return handleEvent;\n}();\n\nTargetEventHandlers.prototype.add = function () {\n function add(eventName, listener, options) {\n var _this = this;\n\n // options has already been normalized at this point.\n var eventHandlers = this.getEventHandlers(eventName, options);\n\n ensureCanMutateNextEventHandlers(eventHandlers);\n\n if (eventHandlers.nextHandlers.length === 0) {\n eventHandlers.handleEvent = this.handleEvent.bind(this, eventName, options);\n\n this.target.addEventListener(eventName, eventHandlers.handleEvent, options);\n }\n\n eventHandlers.nextHandlers.push(listener);\n\n var isSubscribed = true;\n var unsubscribe = function () {\n function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextEventHandlers(eventHandlers);\n var index = eventHandlers.nextHandlers.indexOf(listener);\n eventHandlers.nextHandlers.splice(index, 1);\n\n if (eventHandlers.nextHandlers.length === 0) {\n // All event handlers have been removed, so we want to remove the event\n // listener from the target node.\n\n if (_this.target) {\n // There can be a race condition where the target may no longer exist\n // when this function is called, e.g. when a React component is\n // unmounting. Guarding against this prevents the following error:\n //\n // Cannot read property 'removeEventListener' of undefined\n _this.target.removeEventListener(eventName, eventHandlers.handleEvent, options);\n }\n\n eventHandlers.handleEvent = undefined;\n }\n }\n\n return unsubscribe;\n }();\n return unsubscribe;\n }\n\n return add;\n}();\n\nvar EVENT_HANDLERS_KEY = '__consolidated_events_handlers__';\n\n// eslint-disable-next-line import/prefer-default-export\nfunction addEventListener(target, eventName, listener, options) {\n if (!target[EVENT_HANDLERS_KEY]) {\n // eslint-disable-next-line no-param-reassign\n target[EVENT_HANDLERS_KEY] = new TargetEventHandlers(target);\n }\n var normalizedEventOptions = normalizeEventOptions(options);\n return target[EVENT_HANDLERS_KEY].add(eventName, listener, normalizedEventOptions);\n}\n\nexport { addEventListener };\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { addEventListener } from 'consolidated-events';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { isForwardRef } from 'react-is';\n\n/**\n * Attempts to parse the offset provided as a prop as a percentage. For\n * instance, if the component has been provided with the string \"20%\" as\n * a value of one of the offset props. If the value matches, then it returns\n * a numeric version of the prop. For instance, \"20%\" would become `0.2`.\n * If `str` isn't a percentage, then `undefined` will be returned.\n *\n * @param {string} str The value of an offset prop to be converted to a\n * number.\n * @return {number|undefined} The numeric version of `str`. Undefined if `str`\n * was not a percentage.\n */\nfunction parseOffsetAsPercentage(str) {\n if (str.slice(-1) === '%') {\n return parseFloat(str.slice(0, -1)) / 100;\n }\n\n return undefined;\n}\n\n/**\n * Attempts to parse the offset provided as a prop as a pixel value. If\n * parsing fails, then `undefined` is returned. Three examples of values that\n * will be successfully parsed are:\n * `20`\n * \"20px\"\n * \"20\"\n *\n * @param {string|number} str A string of the form \"{number}\" or \"{number}px\",\n * or just a number.\n * @return {number|undefined} The numeric version of `str`. Undefined if `str`\n * was neither a number nor string ending in \"px\".\n */\nfunction parseOffsetAsPixels(str) {\n if (!isNaN(parseFloat(str)) && isFinite(str)) {\n return parseFloat(str);\n }\n\n if (str.slice(-2) === 'px') {\n return parseFloat(str.slice(0, -2));\n }\n\n return undefined;\n}\n\n/**\n * @param {string|number} offset\n * @param {number} contextHeight\n * @return {number} A number representing `offset` converted into pixels.\n */\n\nfunction computeOffsetPixels(offset, contextHeight) {\n var pixelOffset = parseOffsetAsPixels(offset);\n\n if (typeof pixelOffset === 'number') {\n return pixelOffset;\n }\n\n var percentOffset = parseOffsetAsPercentage(offset);\n\n if (typeof percentOffset === 'number') {\n return percentOffset * contextHeight;\n }\n\n return undefined;\n}\n\nvar ABOVE = 'above';\nvar INSIDE = 'inside';\nvar BELOW = 'below';\nvar INVISIBLE = 'invisible';\n\nfunction debugLog() {\n if (process.env.NODE_ENV !== 'production') {\n var _console;\n\n (_console = console).log.apply(_console, arguments); // eslint-disable-line no-console\n\n }\n}\n\n/**\n * When an element's type is a string, it represents a DOM node with that tag name\n * https://facebook.github.io/react/blog/2015/12/18/react-components-elements-and-instances.html#dom-elements\n *\n * @param {React.element} Component\n * @return {bool} Whether the component is a DOM Element\n */\nfunction isDOMElement(Component) {\n return typeof Component.type === 'string';\n}\n\nvar errorMessage = '<Waypoint> needs a DOM element to compute boundaries. The child you passed is neither a ' + 'DOM element (e.g. <div>) nor does it use the innerRef prop.\\n\\n' + 'See https://goo.gl/LrBNgw for more info.';\n/**\n * Raise an error if \"children\" is not a DOM Element and there is no ref provided to Waypoint\n *\n * @param {?React.element} children\n * @param {?HTMLElement} ref\n * @return {undefined}\n */\n\nfunction ensureRefIsProvidedByChild(children, ref) {\n if (children && !isDOMElement(children) && !ref) {\n throw new Error(errorMessage);\n }\n}\n\n/**\n * @param {object} bounds An object with bounds data for the waypoint and\n * scrollable parent\n * @return {string} The current position of the waypoint in relation to the\n * visible portion of the scrollable parent. One of the constants `ABOVE`,\n * `BELOW`, `INSIDE` or `INVISIBLE`.\n */\n\nfunction getCurrentPosition(bounds) {\n if (bounds.viewportBottom - bounds.viewportTop === 0) {\n return INVISIBLE;\n } // top is within the viewport\n\n\n if (bounds.viewportTop <= bounds.waypointTop && bounds.waypointTop <= bounds.viewportBottom) {\n return INSIDE;\n } // bottom is within the viewport\n\n\n if (bounds.viewportTop <= bounds.waypointBottom && bounds.waypointBottom <= bounds.viewportBottom) {\n return INSIDE;\n } // top is above the viewport and bottom is below the viewport\n\n\n if (bounds.waypointTop <= bounds.viewportTop && bounds.viewportBottom <= bounds.waypointBottom) {\n return INSIDE;\n }\n\n if (bounds.viewportBottom < bounds.waypointTop) {\n return BELOW;\n }\n\n if (bounds.waypointTop < bounds.viewportTop) {\n return ABOVE;\n }\n\n return INVISIBLE;\n}\n\nvar timeout;\nvar timeoutQueue = [];\nfunction onNextTick(cb) {\n timeoutQueue.push(cb);\n\n if (!timeout) {\n timeout = setTimeout(function () {\n timeout = null; // Drain the timeoutQueue\n\n var item; // eslint-disable-next-line no-cond-assign\n\n while (item = timeoutQueue.shift()) {\n item();\n }\n }, 0);\n }\n\n var isSubscribed = true;\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n var index = timeoutQueue.indexOf(cb);\n\n if (index === -1) {\n return;\n }\n\n timeoutQueue.splice(index, 1);\n\n if (!timeoutQueue.length && timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n}\n\nfunction resolveScrollableAncestorProp(scrollableAncestor) {\n // When Waypoint is rendered on the server, `window` is not available.\n // To make Waypoint easier to work with, we allow this to be specified in\n // string form and safely convert to `window` here.\n if (scrollableAncestor === 'window') {\n return global.window;\n }\n\n return scrollableAncestor;\n}\n\nvar hasWindow = typeof window !== 'undefined';\nvar defaultProps = {\n debug: false,\n scrollableAncestor: undefined,\n children: undefined,\n topOffset: '0px',\n bottomOffset: '0px',\n horizontal: false,\n onEnter: function onEnter() {},\n onLeave: function onLeave() {},\n onPositionChange: function onPositionChange() {},\n fireOnRapidScroll: true\n}; // Calls a function when you scroll to the element.\n\nvar Waypoint = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(Waypoint, _React$PureComponent);\n\n function Waypoint(props) {\n var _this;\n\n _this = _React$PureComponent.call(this, props) || this;\n\n _this.refElement = function (e) {\n _this._ref = e;\n };\n\n return _this;\n }\n\n var _proto = Waypoint.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n if (!hasWindow) {\n return;\n } // this._ref may occasionally not be set at this time. To help ensure that\n // this works smoothly and to avoid layout thrashing, we want to delay the\n // initial execution until the next tick.\n\n\n this.cancelOnNextTick = onNextTick(function () {\n _this2.cancelOnNextTick = null;\n var _this2$props = _this2.props,\n children = _this2$props.children,\n debug = _this2$props.debug; // Berofe doing anything, we want to check that this._ref is avaliable in Waypoint\n\n ensureRefIsProvidedByChild(children, _this2._ref);\n _this2._handleScroll = _this2._handleScroll.bind(_this2);\n _this2.scrollableAncestor = _this2._findScrollableAncestor();\n\n if (process.env.NODE_ENV !== 'production' && debug) {\n debugLog('scrollableAncestor', _this2.scrollableAncestor);\n }\n\n _this2.scrollEventListenerUnsubscribe = addEventListener(_this2.scrollableAncestor, 'scroll', _this2._handleScroll, {\n passive: true\n });\n _this2.resizeEventListenerUnsubscribe = addEventListener(window, 'resize', _this2._handleScroll, {\n passive: true\n });\n\n _this2._handleScroll(null);\n });\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var _this3 = this;\n\n if (!hasWindow) {\n return;\n }\n\n if (!this.scrollableAncestor) {\n // The Waypoint has not yet initialized.\n return;\n } // The element may have moved, so we need to recompute its position on the\n // page. This happens via handleScroll in a way that forces layout to be\n // computed.\n //\n // We want this to be deferred to avoid forcing layout during render, which\n // causes layout thrashing. And, if we already have this work enqueued, we\n // can just wait for that to happen instead of enqueueing again.\n\n\n if (this.cancelOnNextTick) {\n return;\n }\n\n this.cancelOnNextTick = onNextTick(function () {\n _this3.cancelOnNextTick = null;\n\n _this3._handleScroll(null);\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!hasWindow) {\n return;\n }\n\n if (this.scrollEventListenerUnsubscribe) {\n this.scrollEventListenerUnsubscribe();\n }\n\n if (this.resizeEventListenerUnsubscribe) {\n this.resizeEventListenerUnsubscribe();\n }\n\n if (this.cancelOnNextTick) {\n this.cancelOnNextTick();\n }\n }\n /**\n * Traverses up the DOM to find an ancestor container which has an overflow\n * style that allows for scrolling.\n *\n * @return {Object} the closest ancestor element with an overflow style that\n * allows for scrolling. If none is found, the `window` object is returned\n * as a fallback.\n */\n ;\n\n _proto._findScrollableAncestor = function _findScrollableAncestor() {\n var _this$props = this.props,\n horizontal = _this$props.horizontal,\n scrollableAncestor = _this$props.scrollableAncestor;\n\n if (scrollableAncestor) {\n return resolveScrollableAncestorProp(scrollableAncestor);\n }\n\n var node = this._ref;\n\n while (node.parentNode) {\n node = node.parentNode;\n\n if (node === document.body) {\n // We've reached all the way to the root node.\n return window;\n }\n\n var style = window.getComputedStyle(node);\n var overflowDirec = horizontal ? style.getPropertyValue('overflow-x') : style.getPropertyValue('overflow-y');\n var overflow = overflowDirec || style.getPropertyValue('overflow');\n\n if (overflow === 'auto' || overflow === 'scroll' || overflow === 'overlay') {\n return node;\n }\n } // A scrollable ancestor element was not found, which means that we need to\n // do stuff on window.\n\n\n return window;\n }\n /**\n * @param {Object} event the native scroll event coming from the scrollable\n * ancestor, or resize event coming from the window. Will be undefined if\n * called by a React lifecyle method\n */\n ;\n\n _proto._handleScroll = function _handleScroll(event) {\n if (!this._ref) {\n // There's a chance we end up here after the component has been unmounted.\n return;\n }\n\n var bounds = this._getBounds();\n\n var currentPosition = getCurrentPosition(bounds);\n var previousPosition = this._previousPosition;\n var _this$props2 = this.props,\n debug = _this$props2.debug,\n onPositionChange = _this$props2.onPositionChange,\n onEnter = _this$props2.onEnter,\n onLeave = _this$props2.onLeave,\n fireOnRapidScroll = _this$props2.fireOnRapidScroll;\n\n if (process.env.NODE_ENV !== 'production' && debug) {\n debugLog('currentPosition', currentPosition);\n debugLog('previousPosition', previousPosition);\n } // Save previous position as early as possible to prevent cycles\n\n\n this._previousPosition = currentPosition;\n\n if (previousPosition === currentPosition) {\n // No change since last trigger\n return;\n }\n\n var callbackArg = {\n currentPosition: currentPosition,\n previousPosition: previousPosition,\n event: event,\n waypointTop: bounds.waypointTop,\n waypointBottom: bounds.waypointBottom,\n viewportTop: bounds.viewportTop,\n viewportBottom: bounds.viewportBottom\n };\n onPositionChange.call(this, callbackArg);\n\n if (currentPosition === INSIDE) {\n onEnter.call(this, callbackArg);\n } else if (previousPosition === INSIDE) {\n onLeave.call(this, callbackArg);\n }\n\n var isRapidScrollDown = previousPosition === BELOW && currentPosition === ABOVE;\n var isRapidScrollUp = previousPosition === ABOVE && currentPosition === BELOW;\n\n if (fireOnRapidScroll && (isRapidScrollDown || isRapidScrollUp)) {\n // If the scroll event isn't fired often enough to occur while the\n // waypoint was visible, we trigger both callbacks anyway.\n onEnter.call(this, {\n currentPosition: INSIDE,\n previousPosition: previousPosition,\n event: event,\n waypointTop: bounds.waypointTop,\n waypointBottom: bounds.waypointBottom,\n viewportTop: bounds.viewportTop,\n viewportBottom: bounds.viewportBottom\n });\n onLeave.call(this, {\n currentPosition: currentPosition,\n previousPosition: INSIDE,\n event: event,\n waypointTop: bounds.waypointTop,\n waypointBottom: bounds.waypointBottom,\n viewportTop: bounds.viewportTop,\n viewportBottom: bounds.viewportBottom\n });\n }\n };\n\n _proto._getBounds = function _getBounds() {\n var _this$props3 = this.props,\n horizontal = _this$props3.horizontal,\n debug = _this$props3.debug;\n\n var _this$_ref$getBoundin = this._ref.getBoundingClientRect(),\n left = _this$_ref$getBoundin.left,\n top = _this$_ref$getBoundin.top,\n right = _this$_ref$getBoundin.right,\n bottom = _this$_ref$getBoundin.bottom;\n\n var waypointTop = horizontal ? left : top;\n var waypointBottom = horizontal ? right : bottom;\n var contextHeight;\n var contextScrollTop;\n\n if (this.scrollableAncestor === window) {\n contextHeight = horizontal ? window.innerWidth : window.innerHeight;\n contextScrollTop = 0;\n } else {\n contextHeight = horizontal ? this.scrollableAncestor.offsetWidth : this.scrollableAncestor.offsetHeight;\n contextScrollTop = horizontal ? this.scrollableAncestor.getBoundingClientRect().left : this.scrollableAncestor.getBoundingClientRect().top;\n }\n\n if (process.env.NODE_ENV !== 'production' && debug) {\n debugLog('waypoint top', waypointTop);\n debugLog('waypoint bottom', waypointBottom);\n debugLog('scrollableAncestor height', contextHeight);\n debugLog('scrollableAncestor scrollTop', contextScrollTop);\n }\n\n var _this$props4 = this.props,\n bottomOffset = _this$props4.bottomOffset,\n topOffset = _this$props4.topOffset;\n var topOffsetPx = computeOffsetPixels(topOffset, contextHeight);\n var bottomOffsetPx = computeOffsetPixels(bottomOffset, contextHeight);\n var contextBottom = contextScrollTop + contextHeight;\n return {\n waypointTop: waypointTop,\n waypointBottom: waypointBottom,\n viewportTop: contextScrollTop + topOffsetPx,\n viewportBottom: contextBottom - bottomOffsetPx\n };\n }\n /**\n * @return {Object}\n */\n ;\n\n _proto.render = function render() {\n var _this4 = this;\n\n var children = this.props.children;\n\n if (!children) {\n // We need an element that we can locate in the DOM to determine where it is\n // rendered relative to the top of its context.\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: this.refElement,\n style: {\n fontSize: 0\n }\n });\n }\n\n if (isDOMElement(children) || isForwardRef(children)) {\n var ref = function ref(node) {\n _this4.refElement(node);\n\n if (children.ref) {\n if (typeof children.ref === 'function') {\n children.ref(node);\n } else {\n children.ref.current = node;\n }\n }\n };\n\n return /*#__PURE__*/React.cloneElement(children, {\n ref: ref\n });\n }\n\n return /*#__PURE__*/React.cloneElement(children, {\n innerRef: this.refElement\n });\n };\n\n return Waypoint;\n}(React.PureComponent);\n\nif (process.env.NODE_ENV !== 'production') {\n Waypoint.propTypes = {\n children: PropTypes.element,\n debug: PropTypes.bool,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func,\n onPositionChange: PropTypes.func,\n fireOnRapidScroll: PropTypes.bool,\n // eslint-disable-next-line react/forbid-prop-types\n scrollableAncestor: PropTypes.any,\n horizontal: PropTypes.bool,\n // `topOffset` can either be a number, in which case its a distance from the\n // top of the container in pixels, or a string value. Valid string values are\n // of the form \"20px\", which is parsed as pixels, or \"20%\", which is parsed\n // as a percentage of the height of the containing element.\n // For instance, if you pass \"-20%\", and the containing element is 100px tall,\n // then the waypoint will be triggered when it has been scrolled 20px beyond\n // the top of the containing element.\n topOffset: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // `bottomOffset` can either be a number, in which case its a distance from the\n // bottom of the container in pixels, or a string value. Valid string values are\n // of the form \"20px\", which is parsed as pixels, or \"20%\", which is parsed\n // as a percentage of the height of the containing element.\n // For instance, if you pass \"20%\", and the containing element is 100px tall,\n // then the waypoint will be triggered when it has been scrolled 20px beyond\n // the bottom of the containing element.\n // Similar to `topOffset`, but for the bottom of the container.\n bottomOffset: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n };\n}\n\nWaypoint.above = ABOVE;\nWaypoint.below = BELOW;\nWaypoint.inside = INSIDE;\nWaypoint.invisible = INVISIBLE;\nWaypoint.defaultProps = defaultProps;\nWaypoint.displayName = 'Waypoint';\n\nexport { Waypoint };\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.autoprefix = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar transforms = {\n borderRadius: function borderRadius(value) {\n return {\n msBorderRadius: value,\n MozBorderRadius: value,\n OBorderRadius: value,\n WebkitBorderRadius: value,\n borderRadius: value\n };\n },\n boxShadow: function boxShadow(value) {\n return {\n msBoxShadow: value,\n MozBoxShadow: value,\n OBoxShadow: value,\n WebkitBoxShadow: value,\n boxShadow: value\n };\n },\n userSelect: function userSelect(value) {\n return {\n WebkitTouchCallout: value,\n KhtmlUserSelect: value,\n MozUserSelect: value,\n msUserSelect: value,\n WebkitUserSelect: value,\n userSelect: value\n };\n },\n\n flex: function flex(value) {\n return {\n WebkitBoxFlex: value,\n MozBoxFlex: value,\n WebkitFlex: value,\n msFlex: value,\n flex: value\n };\n },\n flexBasis: function flexBasis(value) {\n return {\n WebkitFlexBasis: value,\n flexBasis: value\n };\n },\n justifyContent: function justifyContent(value) {\n return {\n WebkitJustifyContent: value,\n justifyContent: value\n };\n },\n\n transition: function transition(value) {\n return {\n msTransition: value,\n MozTransition: value,\n OTransition: value,\n WebkitTransition: value,\n transition: value\n };\n },\n\n transform: function transform(value) {\n return {\n msTransform: value,\n MozTransform: value,\n OTransform: value,\n WebkitTransform: value,\n transform: value\n };\n },\n absolute: function absolute(value) {\n var direction = value && value.split(' ');\n return {\n position: 'absolute',\n top: direction && direction[0],\n right: direction && direction[1],\n bottom: direction && direction[2],\n left: direction && direction[3]\n };\n },\n extend: function extend(name, otherElementStyles) {\n var otherStyle = otherElementStyles[name];\n if (otherStyle) {\n return otherStyle;\n }\n return {\n 'extend': name\n };\n }\n};\n\nvar autoprefix = exports.autoprefix = function autoprefix(elements) {\n var prefixed = {};\n (0, _forOwn3.default)(elements, function (styles, element) {\n var expanded = {};\n (0, _forOwn3.default)(styles, function (value, key) {\n var transform = transforms[key];\n if (transform) {\n expanded = _extends({}, expanded, transform(value));\n } else {\n expanded[key] = value;\n }\n });\n prefixed[element] = expanded;\n });\n return prefixed;\n};\n\nexports.default = autoprefix;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.active = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar active = exports.active = function active(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Active, _React$Component);\n\n function Active() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Active);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Active.__proto__ || Object.getPrototypeOf(Active)).call.apply(_ref, [this].concat(args))), _this), _this.state = { active: false }, _this.handleMouseDown = function () {\n return _this.setState({ active: true });\n }, _this.handleMouseUp = function () {\n return _this.setState({ active: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseDown: _this.handleMouseDown, onMouseUp: _this.handleMouseUp },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Active;\n }(_react2.default.Component);\n};\n\nexports.default = active;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hover = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar hover = exports.hover = function hover(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Hover, _React$Component);\n\n function Hover() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hover);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Hover.__proto__ || Object.getPrototypeOf(Hover)).call.apply(_ref, [this].concat(args))), _this), _this.state = { hover: false }, _this.handleMouseOver = function () {\n return _this.setState({ hover: true });\n }, _this.handleMouseOut = function () {\n return _this.setState({ hover: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseOver: _this.handleMouseOver, onMouseOut: _this.handleMouseOut },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Hover;\n }(_react2.default.Component);\n};\n\nexports.default = hover;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flattenNames = undefined;\n\nvar _isString2 = require('lodash/isString');\n\nvar _isString3 = _interopRequireDefault(_isString2);\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _isPlainObject2 = require('lodash/isPlainObject');\n\nvar _isPlainObject3 = _interopRequireDefault(_isPlainObject2);\n\nvar _map2 = require('lodash/map');\n\nvar _map3 = _interopRequireDefault(_map2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar flattenNames = exports.flattenNames = function flattenNames() {\n var things = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var names = [];\n\n (0, _map3.default)(things, function (thing) {\n if (Array.isArray(thing)) {\n flattenNames(thing).map(function (name) {\n return names.push(name);\n });\n } else if ((0, _isPlainObject3.default)(thing)) {\n (0, _forOwn3.default)(thing, function (value, key) {\n value === true && names.push(key);\n names.push(key + '-' + value);\n });\n } else if ((0, _isString3.default)(thing)) {\n names.push(thing);\n }\n });\n\n return names;\n};\n\nexports.default = flattenNames;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar loopable = function loopable(i, length) {\n var props = {};\n var setProp = function setProp(name) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n props[name] = value;\n };\n\n i === 0 && setProp('first-child');\n i === length - 1 && setProp('last-child');\n (i === 0 || i % 2 === 0) && setProp('even');\n Math.abs(i % 2) === 1 && setProp('odd');\n setProp('nth-child', i);\n\n return props;\n};\n\nexports.default = loopable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mergeClasses = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _cloneDeep2 = require('lodash/cloneDeep');\n\nvar _cloneDeep3 = _interopRequireDefault(_cloneDeep2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mergeClasses = exports.mergeClasses = function mergeClasses(classes) {\n var activeNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var styles = classes.default && (0, _cloneDeep3.default)(classes.default) || {};\n activeNames.map(function (name) {\n var toMerge = classes[name];\n if (toMerge) {\n (0, _forOwn3.default)(toMerge, function (value, key) {\n if (!styles[key]) {\n styles[key] = {};\n }\n\n styles[key] = _extends({}, styles[key], toMerge[key]);\n });\n }\n\n return name;\n });\n return styles;\n};\n\nexports.default = mergeClasses;","'use strict'\nmodule.exports = rfdc\n\nfunction copyBuffer (cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur)\n }\n\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)\n}\n\nfunction rfdc (opts) {\n opts = opts || {}\n\n if (opts.circles) return rfdcCircles(opts)\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n a2[k] = fn(cur)\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = clone(cur)\n }\n }\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n return o2\n }\n}\n\nfunction rfdcCircles (opts) {\n var refs = []\n var refsNew = []\n\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n var index = refs.indexOf(cur)\n if (index !== -1) {\n a2[k] = refsNew[index]\n } else {\n a2[k] = fn(cur)\n }\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = clone(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n}\n","const htmlparser = require('htmlparser2');\nconst escapeStringRegexp = require('escape-string-regexp');\nconst { isPlainObject } = require('is-plain-object');\nconst deepmerge = require('deepmerge');\nconst parseSrcset = require('parse-srcset');\nconst { parse: postcssParse } = require('postcss');\n// Tags that can conceivably represent stand-alone media.\nconst mediaTags = [\n 'img', 'audio', 'video', 'picture', 'svg',\n 'object', 'map', 'iframe', 'embed'\n];\n// Tags that are inherently vulnerable to being used in XSS attacks.\nconst vulnerableTags = [ 'script', 'style' ];\n\nfunction each(obj, cb) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n cb(obj[key], key);\n });\n }\n}\n\n// Avoid false positives with .__proto__, .hasOwnProperty, etc.\nfunction has(obj, key) {\n return ({}).hasOwnProperty.call(obj, key);\n}\n\n// Returns those elements of `a` for which `cb(a)` returns truthy\nfunction filter(a, cb) {\n const n = [];\n each(a, function(v) {\n if (cb(v)) {\n n.push(v);\n }\n });\n return n;\n}\n\nfunction isEmptyObject(obj) {\n for (const key in obj) {\n if (has(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction stringifySrcset(parsedSrcset) {\n return parsedSrcset.map(function(part) {\n if (!part.url) {\n throw new Error('URL missing');\n }\n\n return (\n part.url +\n (part.w ? ` ${part.w}w` : '') +\n (part.h ? ` ${part.h}h` : '') +\n (part.d ? ` ${part.d}x` : '')\n );\n }).join(', ');\n}\n\nmodule.exports = sanitizeHtml;\n\n// A valid attribute name.\n// We use a tolerant definition based on the set of strings defined by\n// html.spec.whatwg.org/multipage/parsing.html#before-attribute-name-state\n// and html.spec.whatwg.org/multipage/parsing.html#attribute-name-state .\n// The characters accepted are ones which can be appended to the attribute\n// name buffer without triggering a parse error:\n// * unexpected-equals-sign-before-attribute-name\n// * unexpected-null-character\n// * unexpected-character-in-attribute-name\n// We exclude the empty string because it's impossible to get to the after\n// attribute name state with an empty attribute name buffer.\nconst VALID_HTML_ATTRIBUTE_NAME = /^[^\\0\\t\\n\\f\\r /<=>]+$/;\n\n// Ignore the _recursing flag; it's there for recursive\n// invocation as a guard against this exploit:\n// https://github.com/fb55/htmlparser2/issues/105\n\nfunction sanitizeHtml(html, options, _recursing) {\n if (html == null) {\n return '';\n }\n if (typeof html === 'number') {\n html = html.toString();\n }\n\n let result = '';\n // Used for hot swapping the result variable with an empty string in order to \"capture\" the text written to it.\n let tempResult = '';\n\n function Frame(tag, attribs) {\n const that = this;\n this.tag = tag;\n this.attribs = attribs || {};\n this.tagPosition = result.length;\n this.text = ''; // Node inner text\n this.mediaChildren = [];\n\n this.updateParentNodeText = function() {\n if (stack.length) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.text += that.text;\n }\n };\n\n this.updateParentNodeMediaChildren = function() {\n if (stack.length && mediaTags.includes(this.tag)) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.mediaChildren.push(this.tag);\n }\n };\n }\n\n options = Object.assign({}, sanitizeHtml.defaults, options);\n options.parser = Object.assign({}, htmlParserDefaults, options.parser);\n\n const tagAllowed = function (name) {\n return options.allowedTags === false || (options.allowedTags || []).indexOf(name) > -1;\n };\n\n // vulnerableTags\n vulnerableTags.forEach(function (tag) {\n if (tagAllowed(tag) && !options.allowVulnerableTags) {\n console.warn(`\\n\\nâš ï¸ Your \\`allowedTags\\` option includes, \\`${tag}\\`, which is inherently\\nvulnerable to XSS attacks. Please remove it from \\`allowedTags\\`.\\nOr, to disable this warning, add the \\`allowVulnerableTags\\` option\\nand ensure you are accounting for this risk.\\n\\n`);\n }\n });\n\n // Tags that contain something other than HTML, or where discarding\n // the text when the tag is disallowed makes sense for other reasons.\n // If we are not allowing these tags, we should drop their content too.\n // For other tags you would drop the tag but keep its content.\n const nonTextTagsArray = options.nonTextTags || [\n 'script',\n 'style',\n 'textarea',\n 'option'\n ];\n let allowedAttributesMap;\n let allowedAttributesGlobMap;\n if (options.allowedAttributes) {\n allowedAttributesMap = {};\n allowedAttributesGlobMap = {};\n each(options.allowedAttributes, function(attributes, tag) {\n allowedAttributesMap[tag] = [];\n const globRegex = [];\n attributes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else {\n allowedAttributesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedAttributesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n });\n }\n const allowedClassesMap = {};\n const allowedClassesGlobMap = {};\n const allowedClassesRegexMap = {};\n each(options.allowedClasses, function(classes, tag) {\n // Implicitly allows the class attribute\n if (allowedAttributesMap) {\n if (!has(allowedAttributesMap, tag)) {\n allowedAttributesMap[tag] = [];\n }\n allowedAttributesMap[tag].push('class');\n }\n\n allowedClassesMap[tag] = classes;\n\n if (Array.isArray(classes)) {\n const globRegex = [];\n allowedClassesMap[tag] = [];\n allowedClassesRegexMap[tag] = [];\n classes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else if (obj instanceof RegExp) {\n allowedClassesRegexMap[tag].push(obj);\n } else {\n allowedClassesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedClassesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n }\n });\n\n const transformTagsMap = {};\n let transformTagsAll;\n each(options.transformTags, function(transform, tag) {\n let transFun;\n if (typeof transform === 'function') {\n transFun = transform;\n } else if (typeof transform === 'string') {\n transFun = sanitizeHtml.simpleTransform(transform);\n }\n if (tag === '*') {\n transformTagsAll = transFun;\n } else {\n transformTagsMap[tag] = transFun;\n }\n });\n\n let depth;\n let stack;\n let skipMap;\n let transformMap;\n let skipText;\n let skipTextDepth;\n let addedText = false;\n\n initializeState();\n\n const parser = new htmlparser.Parser({\n onopentag: function(name, attribs) {\n // If `enforceHtmlBoundary` is `true` and this has found the opening\n // `html` tag, reset the state.\n if (options.enforceHtmlBoundary && name === 'html') {\n initializeState();\n }\n\n if (skipText) {\n skipTextDepth++;\n return;\n }\n const frame = new Frame(name, attribs);\n stack.push(frame);\n\n let skip = false;\n const hasText = !!frame.text;\n let transformedTag;\n if (has(transformTagsMap, name)) {\n transformedTag = transformTagsMap[name](name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n\n if (transformedTag.text !== undefined) {\n frame.innerText = transformedTag.text;\n }\n\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n if (transformTagsAll) {\n transformedTag = transformTagsAll(name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n\n if (!tagAllowed(name) || (options.disallowedTagsMode === 'recursiveEscape' && !isEmptyObject(skipMap)) || (options.nestingLimit != null && depth >= options.nestingLimit)) {\n skip = true;\n skipMap[depth] = true;\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n if (nonTextTagsArray.indexOf(name) !== -1) {\n skipText = true;\n skipTextDepth = 1;\n }\n }\n skipMap[depth] = true;\n }\n depth++;\n if (skip) {\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n // We want the contents but not this tag\n return;\n }\n tempResult = result;\n result = '';\n }\n result += '<' + name;\n\n if (name === 'script') {\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n frame.innerText = '';\n }\n }\n\n if (!allowedAttributesMap || has(allowedAttributesMap, name) || allowedAttributesMap['*']) {\n each(attribs, function(value, a) {\n if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) {\n // This prevents part of an attribute name in the output from being\n // interpreted as the end of an attribute, or end of a tag.\n delete frame.attribs[a];\n return;\n }\n // If the value is empty, check if the attribute is in the allowedEmptyAttributes array.\n // If it is not in the allowedEmptyAttributes array, and it is a known non-boolean attribute, delete it\n // List taken from https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n if (value === '' && (!options.allowedEmptyAttributes.includes(a)) &&\n (options.nonBooleanAttributes.includes(a) || options.nonBooleanAttributes.includes('*'))) {\n delete frame.attribs[a];\n return;\n }\n // check allowedAttributesMap for the element and attribute and modify the value\n // as necessary if there are specific values defined.\n let passedAllowedAttributesMapCheck = false;\n if (!allowedAttributesMap ||\n (has(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1) ||\n (allowedAttributesMap['*'] && allowedAttributesMap['*'].indexOf(a) !== -1) ||\n (has(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a)) ||\n (allowedAttributesGlobMap['*'] && allowedAttributesGlobMap['*'].test(a))) {\n passedAllowedAttributesMapCheck = true;\n } else if (allowedAttributesMap && allowedAttributesMap[name]) {\n for (const o of allowedAttributesMap[name]) {\n if (isPlainObject(o) && o.name && (o.name === a)) {\n passedAllowedAttributesMapCheck = true;\n let newValue = '';\n if (o.multiple === true) {\n // verify the values that are allowed\n const splitStrArray = value.split(' ');\n for (const s of splitStrArray) {\n if (o.values.indexOf(s) !== -1) {\n if (newValue === '') {\n newValue = s;\n } else {\n newValue += ' ' + s;\n }\n }\n }\n } else if (o.values.indexOf(value) >= 0) {\n // verified an allowed value matches the entire attribute value\n newValue = value;\n }\n value = newValue;\n }\n }\n }\n if (passedAllowedAttributesMapCheck) {\n if (options.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) {\n if (naughtyHref(name, value)) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'script' && a === 'src') {\n\n let allowed = true;\n\n try {\n const parsed = parseUrl(value);\n\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n const allowedHostname = (options.allowedScriptHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n allowed = false;\n }\n\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'iframe' && a === 'src') {\n let allowed = true;\n try {\n const parsed = parseUrl(value);\n\n if (parsed.isRelativeUrl) {\n // default value of allowIframeRelativeUrls is true\n // unless allowedIframeHostnames or allowedIframeDomains specified\n allowed = has(options, 'allowIframeRelativeUrls')\n ? options.allowIframeRelativeUrls\n : (!options.allowedIframeHostnames && !options.allowedIframeDomains);\n } else if (options.allowedIframeHostnames || options.allowedIframeDomains) {\n const allowedHostname = (options.allowedIframeHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n // Unparseable iframe src\n allowed = false;\n }\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'srcset') {\n try {\n let parsed = parseSrcset(value);\n parsed.forEach(function(value) {\n if (naughtyHref('srcset', value.url)) {\n value.evil = true;\n }\n });\n parsed = filter(parsed, function(v) {\n return !v.evil;\n });\n if (!parsed.length) {\n delete frame.attribs[a];\n return;\n } else {\n value = stringifySrcset(filter(parsed, function(v) {\n return !v.evil;\n }));\n frame.attribs[a] = value;\n }\n } catch (e) {\n // Unparseable srcset\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'class') {\n const allowedSpecificClasses = allowedClassesMap[name];\n const allowedWildcardClasses = allowedClassesMap['*'];\n const allowedSpecificClassesGlob = allowedClassesGlobMap[name];\n const allowedSpecificClassesRegex = allowedClassesRegexMap[name];\n const allowedWildcardClassesGlob = allowedClassesGlobMap['*'];\n const allowedClassesGlobs = [\n allowedSpecificClassesGlob,\n allowedWildcardClassesGlob\n ]\n .concat(allowedSpecificClassesRegex)\n .filter(function (t) {\n return t;\n });\n if (allowedSpecificClasses && allowedWildcardClasses) {\n value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs);\n } else {\n value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs);\n }\n if (!value.length) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'style') {\n if (options.parseStyleAttributes) {\n try {\n const abstractSyntaxTree = postcssParse(name + ' {' + value + '}', { map: false });\n const filteredAST = filterCss(abstractSyntaxTree, options.allowedStyles);\n\n value = stringifyStyleAttributes(filteredAST);\n\n if (value.length === 0) {\n delete frame.attribs[a];\n return;\n }\n } catch (e) {\n if (typeof window !== 'undefined') {\n console.warn('Failed to parse \"' + name + ' {' + value + '}' + '\", If you\\'re running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547');\n }\n delete frame.attribs[a];\n return;\n }\n } else if (options.allowedStyles) {\n throw new Error('allowedStyles option cannot be used together with parseStyleAttributes: false.');\n }\n }\n result += ' ' + a;\n if (value && value.length) {\n result += '=\"' + escapeHtml(value, true) + '\"';\n } else if (options.allowedEmptyAttributes.includes(a)) {\n result += '=\"\"';\n }\n } else {\n delete frame.attribs[a];\n }\n });\n }\n if (options.selfClosing.indexOf(name) !== -1) {\n result += ' />';\n } else {\n result += '>';\n if (frame.innerText && !hasText && !options.textFilter) {\n result += escapeHtml(frame.innerText);\n addedText = true;\n }\n }\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n },\n ontext: function(text) {\n if (skipText) {\n return;\n }\n const lastFrame = stack[stack.length - 1];\n let tag;\n\n if (lastFrame) {\n tag = lastFrame.tag;\n // If inner text was set by transform function then let's use it\n text = lastFrame.innerText !== undefined ? lastFrame.innerText : text;\n }\n\n if (options.disallowedTagsMode === 'completelyDiscard' && !tagAllowed(tag)) {\n text = '';\n } else if ((options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') && ((tag === 'script') || (tag === 'style'))) {\n // htmlparser2 gives us these as-is. Escaping them ruins the content. Allowing\n // script tags is, by definition, game over for XSS protection, so if that's\n // your concern, don't allow them. The same is essentially true for style tags\n // which have their own collection of XSS vectors.\n result += text;\n } else {\n const escaped = escapeHtml(text, false);\n if (options.textFilter && !addedText) {\n result += options.textFilter(escaped, tag);\n } else if (!addedText) {\n result += escaped;\n }\n }\n if (stack.length) {\n const frame = stack[stack.length - 1];\n frame.text += text;\n }\n },\n onclosetag: function(name, isImplied) {\n\n if (skipText) {\n skipTextDepth--;\n if (!skipTextDepth) {\n skipText = false;\n } else {\n return;\n }\n }\n\n const frame = stack.pop();\n if (!frame) {\n // Do not crash on bad markup\n return;\n }\n\n if (frame.tag !== name) {\n // Another case of bad markup.\n // Push to stack, so that it will be used in future closing tags.\n stack.push(frame);\n return;\n }\n\n skipText = options.enforceHtmlBoundary ? name === 'html' : false;\n depth--;\n const skip = skipMap[depth];\n if (skip) {\n delete skipMap[depth];\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n frame.updateParentNodeText();\n return;\n }\n tempResult = result;\n result = '';\n }\n\n if (transformMap[depth]) {\n name = transformMap[depth];\n delete transformMap[depth];\n }\n\n if (options.exclusiveFilter && options.exclusiveFilter(frame)) {\n result = result.substr(0, frame.tagPosition);\n return;\n }\n\n frame.updateParentNodeMediaChildren();\n frame.updateParentNodeText();\n\n if (\n // Already output />\n options.selfClosing.indexOf(name) !== -1 ||\n // Escaped tag, closing tag is implied\n (isImplied && !tagAllowed(name) && [ 'escape', 'recursiveEscape' ].indexOf(options.disallowedTagsMode) >= 0)\n ) {\n if (skip) {\n result = tempResult;\n tempResult = '';\n }\n return;\n }\n\n result += '</' + name + '>';\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n addedText = false;\n }\n }, options.parser);\n parser.write(html);\n parser.end();\n\n return result;\n\n function initializeState() {\n result = '';\n depth = 0;\n stack = [];\n skipMap = {};\n transformMap = {};\n skipText = false;\n skipTextDepth = 0;\n }\n\n function escapeHtml(s, quote) {\n if (typeof (s) !== 'string') {\n s = s + '';\n }\n if (options.parser.decodeEntities) {\n s = s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n }\n // TODO: this is inadequate because it will pass `&0;`. This approach\n // will not work, each & must be considered with regard to whether it\n // is followed by a 100% syntactically valid entity or not, and escaped\n // if it is not. If this bothers you, don't set parser.decodeEntities\n // to false. (The default is true.)\n s = s.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, '&') // Match ampersands not part of existing HTML entity\n .replace(/</g, '<')\n .replace(/>/g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n return s;\n }\n\n function naughtyHref(name, href) {\n // Browsers ignore character codes of 32 (space) and below in a surprising\n // number of situations. Start reading here:\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#Embedded_tab\n // eslint-disable-next-line no-control-regex\n href = href.replace(/[\\x00-\\x20]+/g, '');\n // Clobber any comments in URLs, which the browser might\n // interpret inside an XML data island, allowing\n // a javascript: URL to be snuck through\n while (true) {\n const firstIndex = href.indexOf('<!--');\n if (firstIndex === -1) {\n break;\n }\n const lastIndex = href.indexOf('-->', firstIndex + 4);\n if (lastIndex === -1) {\n break;\n }\n href = href.substring(0, firstIndex) + href.substring(lastIndex + 3);\n }\n // Case insensitive so we don't get faked out by JAVASCRIPT #1\n // Allow more characters after the first so we don't get faked\n // out by certain schemes browsers accept\n const matches = href.match(/^([a-zA-Z][a-zA-Z0-9.\\-+]*):/);\n if (!matches) {\n // Protocol-relative URL starting with any combination of '/' and '\\'\n if (href.match(/^[/\\\\]{2}/)) {\n return !options.allowProtocolRelative;\n }\n\n // No scheme\n return false;\n }\n const scheme = matches[1].toLowerCase();\n\n if (has(options.allowedSchemesByTag, name)) {\n return options.allowedSchemesByTag[name].indexOf(scheme) === -1;\n }\n\n return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1;\n }\n\n function parseUrl(value) {\n value = value.replace(/^(\\w+:)?\\s*[\\\\/]\\s*[\\\\/]/, '$1//');\n if (value.startsWith('relative:')) {\n // An attempt to exploit our workaround for base URLs being\n // mandatory for relative URL validation in the WHATWG\n // URL parser, reject it\n throw new Error('relative: exploit attempt');\n }\n // naughtyHref is in charge of whether protocol relative URLs\n // are cool. Here we are concerned just with allowed hostnames and\n // whether to allow relative URLs.\n //\n // Build a placeholder \"base URL\" against which any reasonable\n // relative URL may be parsed successfully\n let base = 'relative://relative-site';\n for (let i = 0; (i < 100); i++) {\n base += `/${i}`;\n }\n\n const parsed = new URL(value, base);\n\n const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';\n return {\n isRelativeUrl,\n url: parsed\n };\n }\n /**\n * Filters user input css properties by allowlisted regex attributes.\n * Modifies the abstractSyntaxTree object.\n *\n * @param {object} abstractSyntaxTree - Object representation of CSS attributes.\n * @property {array[Declaration]} abstractSyntaxTree.nodes[0] - Each object cointains prop and value key, i.e { prop: 'color', value: 'red' }.\n * @param {object} allowedStyles - Keys are properties (i.e color), value is list of permitted regex rules (i.e /green/i).\n * @return {object} - The modified tree.\n */\n function filterCss(abstractSyntaxTree, allowedStyles) {\n if (!allowedStyles) {\n return abstractSyntaxTree;\n }\n\n const astRules = abstractSyntaxTree.nodes[0];\n let selectedRule;\n\n // Merge global and tag-specific styles into new AST.\n if (allowedStyles[astRules.selector] && allowedStyles['*']) {\n selectedRule = deepmerge(\n allowedStyles[astRules.selector],\n allowedStyles['*']\n );\n } else {\n selectedRule = allowedStyles[astRules.selector] || allowedStyles['*'];\n }\n\n if (selectedRule) {\n abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []);\n }\n\n return abstractSyntaxTree;\n }\n\n /**\n * Extracts the style attributes from an AbstractSyntaxTree and formats those\n * values in the inline style attribute format.\n *\n * @param {AbstractSyntaxTree} filteredAST\n * @return {string} - Example: \"color:yellow;text-align:center !important;font-family:helvetica;\"\n */\n function stringifyStyleAttributes(filteredAST) {\n return filteredAST.nodes[0].nodes\n .reduce(function(extractedAttributes, attrObject) {\n extractedAttributes.push(\n `${attrObject.prop}:${attrObject.value}${attrObject.important ? ' !important' : ''}`\n );\n return extractedAttributes;\n }, [])\n .join(';');\n }\n\n /**\n * Filters the existing attributes for the given property. Discards any attributes\n * which don't match the allowlist.\n *\n * @param {object} selectedRule - Example: { color: red, font-family: helvetica }\n * @param {array} allowedDeclarationsList - List of declarations which pass the allowlist.\n * @param {object} attributeObject - Object representing the current css property.\n * @property {string} attributeObject.type - Typically 'declaration'.\n * @property {string} attributeObject.prop - The CSS property, i.e 'color'.\n * @property {string} attributeObject.value - The corresponding value to the css property, i.e 'red'.\n * @return {function} - When used in Array.reduce, will return an array of Declaration objects\n */\n function filterDeclarations(selectedRule) {\n return function (allowedDeclarationsList, attributeObject) {\n // If this property is allowlisted...\n if (has(selectedRule, attributeObject.prop)) {\n const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) {\n return regularExpression.test(attributeObject.value);\n });\n\n if (matchesRegex) {\n allowedDeclarationsList.push(attributeObject);\n }\n }\n return allowedDeclarationsList;\n };\n }\n\n function filterClasses(classes, allowed, allowedGlobs) {\n if (!allowed) {\n // The class attribute is allowed without filtering on this tag\n return classes;\n }\n classes = classes.split(/\\s+/);\n return classes.filter(function(clss) {\n return allowed.indexOf(clss) !== -1 || allowedGlobs.some(function(glob) {\n return glob.test(clss);\n });\n }).join(' ');\n }\n}\n\n// Defaults are accessible to you so that you can use them as a starting point\n// programmatically if you wish\n\nconst htmlParserDefaults = {\n decodeEntities: true\n};\nsanitizeHtml.defaults = {\n allowedTags: [\n // Sections derived from MDN element categories and limited to the more\n // benign categories.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n // Content sectioning\n 'address', 'article', 'aside', 'footer', 'header',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup',\n 'main', 'nav', 'section',\n // Text content\n 'blockquote', 'dd', 'div', 'dl', 'dt', 'figcaption', 'figure',\n 'hr', 'li', 'main', 'ol', 'p', 'pre', 'ul',\n // Inline text semantics\n 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn',\n 'em', 'i', 'kbd', 'mark', 'q',\n 'rb', 'rp', 'rt', 'rtc', 'ruby',\n 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u', 'var', 'wbr',\n // Table content\n 'caption', 'col', 'colgroup', 'table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr'\n ],\n // Tags that cannot be boolean\n nonBooleanAttributes: [\n 'abbr', 'accept', 'accept-charset', 'accesskey', 'action',\n 'allow', 'alt', 'as', 'autocapitalize', 'autocomplete',\n 'blocking', 'charset', 'cite', 'class', 'color', 'cols',\n 'colspan', 'content', 'contenteditable', 'coords', 'crossorigin',\n 'data', 'datetime', 'decoding', 'dir', 'dirname', 'download',\n 'draggable', 'enctype', 'enterkeyhint', 'fetchpriority', 'for',\n 'form', 'formaction', 'formenctype', 'formmethod', 'formtarget',\n 'headers', 'height', 'hidden', 'high', 'href', 'hreflang',\n 'http-equiv', 'id', 'imagesizes', 'imagesrcset', 'inputmode',\n 'integrity', 'is', 'itemid', 'itemprop', 'itemref', 'itemtype',\n 'kind', 'label', 'lang', 'list', 'loading', 'low', 'max',\n 'maxlength', 'media', 'method', 'min', 'minlength', 'name',\n 'nonce', 'optimum', 'pattern', 'ping', 'placeholder', 'popover',\n 'popovertarget', 'popovertargetaction', 'poster', 'preload',\n 'referrerpolicy', 'rel', 'rows', 'rowspan', 'sandbox', 'scope',\n 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src',\n 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'style',\n 'tabindex', 'target', 'title', 'translate', 'type', 'usemap',\n 'value', 'width', 'wrap',\n // Event handlers\n 'onauxclick', 'onafterprint', 'onbeforematch', 'onbeforeprint',\n 'onbeforeunload', 'onbeforetoggle', 'onblur', 'oncancel',\n 'oncanplay', 'oncanplaythrough', 'onchange', 'onclick', 'onclose',\n 'oncontextlost', 'oncontextmenu', 'oncontextrestored', 'oncopy',\n 'oncuechange', 'oncut', 'ondblclick', 'ondrag', 'ondragend',\n 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart',\n 'ondrop', 'ondurationchange', 'onemptied', 'onended',\n 'onerror', 'onfocus', 'onformdata', 'onhashchange', 'oninput',\n 'oninvalid', 'onkeydown', 'onkeypress', 'onkeyup',\n 'onlanguagechange', 'onload', 'onloadeddata', 'onloadedmetadata',\n 'onloadstart', 'onmessage', 'onmessageerror', 'onmousedown',\n 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout',\n 'onmouseover', 'onmouseup', 'onoffline', 'ononline', 'onpagehide',\n 'onpageshow', 'onpaste', 'onpause', 'onplay', 'onplaying',\n 'onpopstate', 'onprogress', 'onratechange', 'onreset', 'onresize',\n 'onrejectionhandled', 'onscroll', 'onscrollend',\n 'onsecuritypolicyviolation', 'onseeked', 'onseeking', 'onselect',\n 'onslotchange', 'onstalled', 'onstorage', 'onsubmit', 'onsuspend',\n 'ontimeupdate', 'ontoggle', 'onunhandledrejection', 'onunload',\n 'onvolumechange', 'onwaiting', 'onwheel'\n ],\n disallowedTagsMode: 'discard',\n allowedAttributes: {\n a: [ 'href', 'name', 'target' ],\n // We don't currently allow img itself by default, but\n // these attributes would make sense if we did.\n img: [ 'src', 'srcset', 'alt', 'title', 'width', 'height', 'loading' ]\n },\n allowedEmptyAttributes: [\n 'alt'\n ],\n // Lots of these won't come up by default because we don't allow them\n selfClosing: [ 'img', 'br', 'hr', 'area', 'base', 'basefont', 'input', 'link', 'meta' ],\n // URL schemes we permit\n allowedSchemes: [ 'http', 'https', 'ftp', 'mailto', 'tel' ],\n allowedSchemesByTag: {},\n allowedSchemesAppliedToAttributes: [ 'href', 'src', 'cite' ],\n allowProtocolRelative: true,\n enforceHtmlBoundary: false,\n parseStyleAttributes: true\n};\n\nsanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge) {\n merge = (merge === undefined) ? true : merge;\n newAttribs = newAttribs || {};\n\n return function(tagName, attribs) {\n let attrib;\n if (merge) {\n for (attrib in newAttribs) {\n attribs[attrib] = newAttribs[attrib];\n }\n } else {\n attribs = newAttribs;\n }\n\n return {\n tagName: newTagName,\n attribs: attribs\n };\n };\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","\"use strict\";\n\nconst ipRegex = require('ip-regex');\nconst tlds = require('tlds');\nconst ipv4 = ipRegex.v4().source;\nconst ipv6 = ipRegex.v6().source;\nconst host = '(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)';\nconst domain = '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*';\nconst strictTld = '(?:[a-z\\\\u00a1-\\\\uffff]{2,})';\nconst defaultTlds = `(?:${tlds.sort((a, b) => b.length - a.length).join('|')})`;\nconst port = '(?::\\\\d{2,5})?';\nlet RE2;\nlet hasRE2;\nmodule.exports = options => {\n options = {\n //\n // attempt to use re2, if set to false will use RegExp\n // (we did this approach because we don't want to load in-memory re2 if users don't want it)\n // <https://github.com/spamscanner/url-regex-safe/issues/28>\n //\n re2: true,\n exact: false,\n strict: false,\n auth: false,\n localhost: true,\n parens: false,\n apostrophes: false,\n trailingPeriod: false,\n ipv4: true,\n ipv6: true,\n returnString: false,\n ...options\n };\n\n /* istanbul ignore next */\n const SafeRegExp = options.re2 && hasRE2 !== false ? (() => {\n if (typeof RE2 === 'function') return RE2;\n try {\n RE2 = require('re2');\n return typeof RE2 === 'function' ? RE2 : RegExp;\n } catch {\n hasRE2 = false;\n return RegExp;\n }\n })() : RegExp;\n const protocol = `(?:(?:[a-z]+:)?//)${options.strict ? '' : '?'}`;\n\n // Add option to disable matching urls with HTTP Basic Authentication\n // <https://github.com/kevva/url-regex/pull/63>\n const auth = options.auth ? '(?:\\\\S+(?::\\\\S*)?@)?' : '';\n\n // Add ability to pass custom list of tlds\n // <https://github.com/kevva/url-regex/pull/66>\n const tld = `(?:\\\\.${options.strict ? strictTld : options.tlds ? `(?:${options.tlds.sort((a, b) => b.length - a.length).join('|')})` : defaultTlds})${options.trailingPeriod ? '\\\\.?' : ''}`;\n let disallowedChars = '\\\\s\"';\n if (!options.parens) {\n // Not accept closing parenthesis\n // <https://github.com/kevva/url-regex/pull/35>\n disallowedChars += '\\\\)';\n }\n if (!options.apostrophes) {\n // Don't allow apostrophes\n // <https://github.com/kevva/url-regex/pull/55>\n disallowedChars += \"'\";\n }\n const path = options.trailingPeriod ? `(?:[/?#][^${disallowedChars}]*)?` : `(?:(?:[/?#][^${disallowedChars}]*[^${disallowedChars}.?!])|[/])?`;\n\n // Added IPv6 support\n // <https://github.com/kevva/url-regex/issues/60>\n let regex = `(?:${protocol}|www\\\\.)${auth}(?:`;\n if (options.localhost) regex += 'localhost|';\n if (options.ipv4) regex += `${ipv4}|`;\n if (options.ipv6) regex += `${ipv6}|`;\n regex += `${host}${domain}${tld})${port}${path}`;\n\n // Add option to return the regex string instead of a RegExp\n if (options.returnString) return regex;\n return options.exact ? new SafeRegExp(`(?:^${regex}$)`, 'i') : new SafeRegExp(regex, 'ig');\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpcFJlZ2V4IiwicmVxdWlyZSIsInRsZHMiLCJpcHY0IiwidjQiLCJzb3VyY2UiLCJpcHY2IiwidjYiLCJob3N0IiwiZG9tYWluIiwic3RyaWN0VGxkIiwiZGVmYXVsdFRsZHMiLCJzb3J0IiwiYSIsImIiLCJsZW5ndGgiLCJqb2luIiwicG9ydCIsIlJFMiIsImhhc1JFMiIsIm1vZHVsZSIsImV4cG9ydHMiLCJvcHRpb25zIiwicmUyIiwiZXhhY3QiLCJzdHJpY3QiLCJhdXRoIiwibG9jYWxob3N0IiwicGFyZW5zIiwiYXBvc3Ryb3BoZXMiLCJ0cmFpbGluZ1BlcmlvZCIsInJldHVyblN0cmluZyIsIlNhZmVSZWdFeHAiLCJSZWdFeHAiLCJwcm90b2NvbCIsInRsZCIsImRpc2FsbG93ZWRDaGFycyIsInBhdGgiLCJyZWdleCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpcFJlZ2V4ID0gcmVxdWlyZSgnaXAtcmVnZXgnKTtcbmNvbnN0IHRsZHMgPSByZXF1aXJlKCd0bGRzJyk7XG5cbmNvbnN0IGlwdjQgPSBpcFJlZ2V4LnY0KCkuc291cmNlO1xuY29uc3QgaXB2NiA9IGlwUmVnZXgudjYoKS5zb3VyY2U7XG5jb25zdCBob3N0ID0gJyg/Oig/OlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XVstX10qKSpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rKSc7XG5jb25zdCBkb21haW4gPSAnKD86XFxcXC4oPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0tKikqW2EtelxcXFx1MDBhMS1cXFxcdWZmZmYwLTldKykqJztcbmNvbnN0IHN0cmljdFRsZCA9ICcoPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZl17Mix9KSc7XG5jb25zdCBkZWZhdWx0VGxkcyA9IGAoPzoke3RsZHMuc29ydCgoYSwgYikgPT4gYi5sZW5ndGggLSBhLmxlbmd0aCkuam9pbignfCcpfSlgO1xuY29uc3QgcG9ydCA9ICcoPzo6XFxcXGR7Miw1fSk/JztcblxubGV0IFJFMjtcbmxldCBoYXNSRTI7XG5cbm1vZHVsZS5leHBvcnRzID0gKG9wdGlvbnMpID0+IHtcbiAgb3B0aW9ucyA9IHtcbiAgICAvL1xuICAgIC8vIGF0dGVtcHQgdG8gdXNlIHJlMiwgaWYgc2V0IHRvIGZhbHNlIHdpbGwgdXNlIFJlZ0V4cFxuICAgIC8vICh3ZSBkaWQgdGhpcyBhcHByb2FjaCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gbG9hZCBpbi1tZW1vcnkgcmUyIGlmIHVzZXJzIGRvbid0IHdhbnQgaXQpXG4gICAgLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9zcGFtc2Nhbm5lci91cmwtcmVnZXgtc2FmZS9pc3N1ZXMvMjg+XG4gICAgLy9cbiAgICByZTI6IHRydWUsXG4gICAgZXhhY3Q6IGZhbHNlLFxuICAgIHN0cmljdDogZmFsc2UsXG4gICAgYXV0aDogZmFsc2UsXG4gICAgbG9jYWxob3N0OiB0cnVlLFxuICAgIHBhcmVuczogZmFsc2UsXG4gICAgYXBvc3Ryb3BoZXM6IGZhbHNlLFxuICAgIHRyYWlsaW5nUGVyaW9kOiBmYWxzZSxcbiAgICBpcHY0OiB0cnVlLFxuICAgIGlwdjY6IHRydWUsXG4gICAgcmV0dXJuU3RyaW5nOiBmYWxzZSxcbiAgICAuLi5vcHRpb25zXG4gIH07XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgY29uc3QgU2FmZVJlZ0V4cCA9XG4gICAgb3B0aW9ucy5yZTIgJiYgaGFzUkUyICE9PSBmYWxzZVxuICAgICAgPyAoKCkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgUkUyID09PSAnZnVuY3Rpb24nKSByZXR1cm4gUkUyO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBSRTIgPSByZXF1aXJlKCdyZTInKTtcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgUkUyID09PSAnZnVuY3Rpb24nID8gUkUyIDogUmVnRXhwO1xuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgaGFzUkUyID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gUmVnRXhwO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkoKVxuICAgICAgOiBSZWdFeHA7XG5cbiAgY29uc3QgcHJvdG9jb2wgPSBgKD86KD86W2Etel0rOik/Ly8pJHtvcHRpb25zLnN0cmljdCA/ICcnIDogJz8nfWA7XG5cbiAgLy8gQWRkIG9wdGlvbiB0byBkaXNhYmxlIG1hdGNoaW5nIHVybHMgd2l0aCBIVFRQIEJhc2ljIEF1dGhlbnRpY2F0aW9uXG4gIC8vIDxodHRwczovL2dpdGh1Yi5jb20va2V2dmEvdXJsLXJlZ2V4L3B1bGwvNjM+XG4gIGNvbnN0IGF1dGggPSBvcHRpb25zLmF1dGggPyAnKD86XFxcXFMrKD86OlxcXFxTKik/QCk/JyA6ICcnO1xuXG4gIC8vIEFkZCBhYmlsaXR5IHRvIHBhc3MgY3VzdG9tIGxpc3Qgb2YgdGxkc1xuICAvLyA8aHR0cHM6Ly9naXRodWIuY29tL2tldnZhL3VybC1yZWdleC9wdWxsLzY2PlxuICBjb25zdCB0bGQgPSBgKD86XFxcXC4ke1xuICAgIG9wdGlvbnMuc3RyaWN0XG4gICAgICA/IHN0cmljdFRsZFxuICAgICAgOiBvcHRpb25zLnRsZHNcbiAgICAgID8gYCg/OiR7b3B0aW9ucy50bGRzLnNvcnQoKGEsIGIpID0+IGIubGVuZ3RoIC0gYS5sZW5ndGgpLmpvaW4oJ3wnKX0pYFxuICAgICAgOiBkZWZhdWx0VGxkc1xuICB9KSR7b3B0aW9ucy50cmFpbGluZ1BlcmlvZCA/ICdcXFxcLj8nIDogJyd9YDtcblxuICBsZXQgZGlzYWxsb3dlZENoYXJzID0gJ1xcXFxzXCInO1xuICBpZiAoIW9wdGlvbnMucGFyZW5zKSB7XG4gICAgLy8gTm90IGFjY2VwdCBjbG9zaW5nIHBhcmVudGhlc2lzXG4gICAgLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9rZXZ2YS91cmwtcmVnZXgvcHVsbC8zNT5cbiAgICBkaXNhbGxvd2VkQ2hhcnMgKz0gJ1xcXFwpJztcbiAgfVxuXG4gIGlmICghb3B0aW9ucy5hcG9zdHJvcGhlcykge1xuICAgIC8vIERvbid0IGFsbG93IGFwb3N0cm9waGVzXG4gICAgLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9rZXZ2YS91cmwtcmVnZXgvcHVsbC81NT5cbiAgICBkaXNhbGxvd2VkQ2hhcnMgKz0gXCInXCI7XG4gIH1cblxuICBjb25zdCBwYXRoID0gb3B0aW9ucy50cmFpbGluZ1BlcmlvZFxuICAgID8gYCg/OlsvPyNdW14ke2Rpc2FsbG93ZWRDaGFyc31dKik/YFxuICAgIDogYCg/Oig/OlsvPyNdW14ke2Rpc2FsbG93ZWRDaGFyc31dKlteJHtkaXNhbGxvd2VkQ2hhcnN9Lj8hXSl8Wy9dKT9gO1xuXG4gIC8vIEFkZGVkIElQdjYgc3VwcG9ydFxuICAvLyA8aHR0cHM6Ly9naXRodWIuY29tL2tldnZhL3VybC1yZWdleC9pc3N1ZXMvNjA+XG4gIGxldCByZWdleCA9IGAoPzoke3Byb3RvY29sfXx3d3dcXFxcLikke2F1dGh9KD86YDtcbiAgaWYgKG9wdGlvbnMubG9jYWxob3N0KSByZWdleCArPSAnbG9jYWxob3N0fCc7XG4gIGlmIChvcHRpb25zLmlwdjQpIHJlZ2V4ICs9IGAke2lwdjR9fGA7XG4gIGlmIChvcHRpb25zLmlwdjYpIHJlZ2V4ICs9IGAke2lwdjZ9fGA7XG4gIHJlZ2V4ICs9IGAke2hvc3R9JHtkb21haW59JHt0bGR9KSR7cG9ydH0ke3BhdGh9YDtcblxuICAvLyBBZGQgb3B0aW9uIHRvIHJldHVybiB0aGUgcmVnZXggc3RyaW5nIGluc3RlYWQgb2YgYSBSZWdFeHBcbiAgaWYgKG9wdGlvbnMucmV0dXJuU3RyaW5nKSByZXR1cm4gcmVnZXg7XG5cbiAgcmV0dXJuIG9wdGlvbnMuZXhhY3RcbiAgICA/IG5ldyBTYWZlUmVnRXhwKGAoPzpeJHtyZWdleH0kKWAsICdpJylcbiAgICA6IG5ldyBTYWZlUmVnRXhwKHJlZ2V4LCAnaWcnKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsVUFBVSxDQUFDO0FBQ25DLE1BQU1DLElBQUksR0FB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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_email_options = {\n allow_display_name: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: []\n};\n/* eslint-disable max-len */\n\n/* eslint-disable no-control-regex */\n\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)</i;\nvar emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\nvar gmailUserPart = /^[a-z\\d]+$/;\nvar quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\nvar emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\nvar quotedEmailUserUtf8 = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*$/i;\nvar defaultMaxEmailLength = 254;\n/* eslint-enable max-len */\n\n/* eslint-enable no-control-regex */\n\n/**\n * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2\n * @param {String} display_name\n */\n\nfunction validateDisplayName(display_name) {\n var display_name_without_quotes = display_name.replace(/^\"(.+)\"$/, '$1'); // display name with only spaces is not valid\n\n if (!display_name_without_quotes.trim()) {\n return false;\n } // check whether display name contains illegal character\n\n\n var contains_illegal = /[\\.\";<>]/.test(display_name_without_quotes);\n\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n } // the quotes in display name must start with character symbol \\\n\n\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n\n if (display_email) {\n var display_name = display_email[1]; // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n\n str = str.replace(display_name, '').replace(/(^<|>$)/g, ''); // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname <address@gmail.com>\n // the display name is `myname` instead of `myname `, so need to trim the last space\n\n if (display_name.endsWith(' ')) {\n display_name = display_name.substr(0, display_name.length - 1);\n }\n\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n\n if (options.host_blacklist.includes(lower_domain)) {\n return false;\n }\n\n var user = parts.join('@');\n\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase(); // Removing sub-address from username before gmail validation\n\n var username = user.split('+')[0]; // Dots are not included in gmail length restriction\n\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n\n var _user_parts = username.split('.');\n\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n\n var noBracketdomain = domain.substr(1, domain.length - 2);\n\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n}\nfunction _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n \"default\": e\n };\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null\n },\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n[\"default\"] = e, t && t.set(e, n), n;\n}\nmodule.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\n","import { m as mergeProps, g as guid, i as isArraysEqual, T as Theme, a as mapHash, B as BaseComponent, V as ViewContextType, C as ContentContainer, b as buildViewClassNames, c as greatestDurationDenominator, d as createDuration, e as BASE_OPTION_DEFAULTS, f as arrayToHash, h as filterHash, j as buildEventSourceRefiners, p as parseEventSource, k as formatWithOrdinals, u as unpromisify, l as buildRangeApiWithTimeZone, n as identity, r as requestJson, s as subtractDurations, o as intersectRanges, q as startOfDay, t as addDays, v as hashValuesToArray, w as buildEventApis, D as DelayedRunner, x as createFormatter, y as diffWholeDays, z as memoize, A as memoizeObjArg, E as isPropsEqual, F as Emitter, G as getInitialDate, H as rangeContainsMarker, I as createEmptyEventStore, J as reduceCurrentDate, K as reduceEventStore, L as rezoneEventStoreDates, M as mergeRawOptions, N as BASE_OPTION_REFINERS, O as CALENDAR_LISTENER_REFINERS, P as CALENDAR_OPTION_REFINERS, Q as COMPLEX_OPTION_COMPARATORS, R as VIEW_OPTION_REFINERS, S as DateEnv, U as DateProfileGenerator, W as createEventUi, X as parseBusinessHours, Y as setRef, Z as Interaction, _ as getElSeg, $ as elementClosest, a0 as EventImpl, a1 as listenBySelector, a2 as listenToHoverBySelector, a3 as PureComponent, a4 as buildViewContext, a5 as getUniqueDomId, a6 as parseInteractionSettings, a7 as interactionSettingsStore, a8 as getNow, a9 as CalendarImpl, aa as flushSync, ab as CalendarRoot, ac as RenderId, ad as ensureElHasStyles, ae as applyStyleProp, af as sliceEventStore } from './internal-common.js';\nexport { ag as JsonRequestError } from './internal-common.js';\nimport { createElement, createRef, Fragment, render } from 'preact';\nimport 'preact/compat';\n\nconst globalLocales = [];\n\nconst MINIMAL_RAW_EN_LOCALE = {\n code: 'en',\n week: {\n dow: 0,\n doy: 4, // 4 days need to be within the year to be considered the first week\n },\n direction: 'ltr',\n buttonText: {\n prev: 'prev',\n next: 'next',\n prevYear: 'prev year',\n nextYear: 'next year',\n year: 'year',\n today: 'today',\n month: 'month',\n week: 'week',\n day: 'day',\n list: 'list',\n },\n weekText: 'W',\n weekTextLong: 'Week',\n closeHint: 'Close',\n timeHint: 'Time',\n eventHint: 'Event',\n allDayText: 'all-day',\n moreLinkText: 'more',\n noEventsText: 'No events to display',\n};\nconst RAW_EN_LOCALE = Object.assign(Object.assign({}, MINIMAL_RAW_EN_LOCALE), { \n // Includes things we don't want other locales to inherit,\n // things that derive from other translatable strings.\n buttonHints: {\n prev: 'Previous $0',\n next: 'Next $0',\n today(buttonText, unit) {\n return (unit === 'day')\n ? 'Today'\n : `This ${buttonText}`;\n },\n }, viewHint: '$0 view', navLinkHint: 'Go to $0', moreLinkHint(eventCnt) {\n return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`;\n } });\nfunction organizeRawLocales(explicitRawLocales) {\n let defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';\n let allRawLocales = globalLocales.concat(explicitRawLocales);\n let rawLocaleMap = {\n en: RAW_EN_LOCALE,\n };\n for (let rawLocale of allRawLocales) {\n rawLocaleMap[rawLocale.code] = rawLocale;\n }\n return {\n map: rawLocaleMap,\n defaultCode,\n };\n}\nfunction buildLocale(inputSingular, available) {\n if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) {\n return parseLocale(inputSingular.code, [inputSingular.code], inputSingular);\n }\n return queryLocale(inputSingular, available);\n}\nfunction queryLocale(codeArg, available) {\n let codes = [].concat(codeArg || []); // will convert to array\n let raw = queryRawLocale(codes, available) || RAW_EN_LOCALE;\n return parseLocale(codeArg, codes, raw);\n}\nfunction queryRawLocale(codes, available) {\n for (let i = 0; i < codes.length; i += 1) {\n let parts = codes[i].toLocaleLowerCase().split('-');\n for (let j = parts.length; j > 0; j -= 1) {\n let simpleId = parts.slice(0, j).join('-');\n if (available[simpleId]) {\n return available[simpleId];\n }\n }\n }\n return null;\n}\nfunction parseLocale(codeArg, codes, raw) {\n let merged = mergeProps([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);\n delete merged.code; // don't want this part of the options\n let { week } = merged;\n delete merged.week;\n return {\n codeArg,\n codes,\n week,\n simpleNumberFormat: new Intl.NumberFormat(codeArg),\n options: merged,\n };\n}\n\n// TODO: easier way to add new hooks? need to update a million things\nfunction createPlugin(input) {\n return {\n id: guid(),\n name: input.name,\n premiumReleaseDate: input.premiumReleaseDate ? new Date(input.premiumReleaseDate) : undefined,\n deps: input.deps || [],\n reducers: input.reducers || [],\n isLoadingFuncs: input.isLoadingFuncs || [],\n contextInit: [].concat(input.contextInit || []),\n eventRefiners: input.eventRefiners || {},\n eventDefMemberAdders: input.eventDefMemberAdders || [],\n eventSourceRefiners: input.eventSourceRefiners || {},\n isDraggableTransformers: input.isDraggableTransformers || [],\n eventDragMutationMassagers: input.eventDragMutationMassagers || [],\n eventDefMutationAppliers: input.eventDefMutationAppliers || [],\n dateSelectionTransformers: input.dateSelectionTransformers || [],\n datePointTransforms: input.datePointTransforms || [],\n dateSpanTransforms: input.dateSpanTransforms || [],\n views: input.views || {},\n viewPropsTransformers: input.viewPropsTransformers || [],\n isPropsValid: input.isPropsValid || null,\n externalDefTransforms: input.externalDefTransforms || [],\n viewContainerAppends: input.viewContainerAppends || [],\n eventDropTransformers: input.eventDropTransformers || [],\n componentInteractions: input.componentInteractions || [],\n calendarInteractions: input.calendarInteractions || [],\n themeClasses: input.themeClasses || {},\n eventSourceDefs: input.eventSourceDefs || [],\n cmdFormatter: input.cmdFormatter,\n recurringTypes: input.recurringTypes || [],\n namedTimeZonedImpl: input.namedTimeZonedImpl,\n initialView: input.initialView || '',\n elementDraggingImpl: input.elementDraggingImpl,\n optionChangeHandlers: input.optionChangeHandlers || {},\n scrollGridImpl: input.scrollGridImpl || null,\n listenerRefiners: input.listenerRefiners || {},\n optionRefiners: input.optionRefiners || {},\n propSetHandlers: input.propSetHandlers || {},\n };\n}\nfunction buildPluginHooks(pluginDefs, globalDefs) {\n let currentPluginIds = {};\n let hooks = {\n premiumReleaseDate: undefined,\n reducers: [],\n isLoadingFuncs: [],\n contextInit: [],\n eventRefiners: {},\n eventDefMemberAdders: [],\n eventSourceRefiners: {},\n isDraggableTransformers: [],\n eventDragMutationMassagers: [],\n eventDefMutationAppliers: [],\n dateSelectionTransformers: [],\n datePointTransforms: [],\n dateSpanTransforms: [],\n views: {},\n viewPropsTransformers: [],\n isPropsValid: null,\n externalDefTransforms: [],\n viewContainerAppends: [],\n eventDropTransformers: [],\n componentInteractions: [],\n calendarInteractions: [],\n themeClasses: {},\n eventSourceDefs: [],\n cmdFormatter: null,\n recurringTypes: [],\n namedTimeZonedImpl: null,\n initialView: '',\n elementDraggingImpl: null,\n optionChangeHandlers: {},\n scrollGridImpl: null,\n listenerRefiners: {},\n optionRefiners: {},\n propSetHandlers: {},\n };\n function addDefs(defs) {\n for (let def of defs) {\n const pluginName = def.name;\n const currentId = currentPluginIds[pluginName];\n if (currentId === undefined) {\n currentPluginIds[pluginName] = def.id;\n addDefs(def.deps);\n hooks = combineHooks(hooks, def);\n }\n else if (currentId !== def.id) {\n // different ID than the one already added\n console.warn(`Duplicate plugin '${pluginName}'`);\n }\n }\n }\n if (pluginDefs) {\n addDefs(pluginDefs);\n }\n addDefs(globalDefs);\n return hooks;\n}\nfunction buildBuildPluginHooks() {\n let currentOverrideDefs = [];\n let currentGlobalDefs = [];\n let currentHooks;\n return (overrideDefs, globalDefs) => {\n if (!currentHooks || !isArraysEqual(overrideDefs, currentOverrideDefs) || !isArraysEqual(globalDefs, currentGlobalDefs)) {\n currentHooks = buildPluginHooks(overrideDefs, globalDefs);\n }\n currentOverrideDefs = overrideDefs;\n currentGlobalDefs = globalDefs;\n return currentHooks;\n };\n}\nfunction combineHooks(hooks0, hooks1) {\n return {\n premiumReleaseDate: compareOptionalDates(hooks0.premiumReleaseDate, hooks1.premiumReleaseDate),\n reducers: hooks0.reducers.concat(hooks1.reducers),\n isLoadingFuncs: hooks0.isLoadingFuncs.concat(hooks1.isLoadingFuncs),\n contextInit: hooks0.contextInit.concat(hooks1.contextInit),\n eventRefiners: Object.assign(Object.assign({}, hooks0.eventRefiners), hooks1.eventRefiners),\n eventDefMemberAdders: hooks0.eventDefMemberAdders.concat(hooks1.eventDefMemberAdders),\n eventSourceRefiners: Object.assign(Object.assign({}, hooks0.eventSourceRefiners), hooks1.eventSourceRefiners),\n isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers),\n eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers),\n eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers),\n dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers),\n datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms),\n dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms),\n views: Object.assign(Object.assign({}, hooks0.views), hooks1.views),\n viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),\n isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,\n externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),\n viewContainerAppends: hooks0.viewContainerAppends.concat(hooks1.viewContainerAppends),\n eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),\n calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),\n componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions),\n themeClasses: Object.assign(Object.assign({}, hooks0.themeClasses), hooks1.themeClasses),\n eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs),\n cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter,\n recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes),\n namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl,\n initialView: hooks0.initialView || hooks1.initialView,\n elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl,\n optionChangeHandlers: Object.assign(Object.assign({}, hooks0.optionChangeHandlers), hooks1.optionChangeHandlers),\n scrollGridImpl: hooks1.scrollGridImpl || hooks0.scrollGridImpl,\n listenerRefiners: Object.assign(Object.assign({}, hooks0.listenerRefiners), hooks1.listenerRefiners),\n optionRefiners: Object.assign(Object.assign({}, hooks0.optionRefiners), hooks1.optionRefiners),\n propSetHandlers: Object.assign(Object.assign({}, hooks0.propSetHandlers), hooks1.propSetHandlers),\n };\n}\nfunction compareOptionalDates(date0, date1) {\n if (date0 === undefined) {\n return date1;\n }\n if (date1 === undefined) {\n return date0;\n }\n return new Date(Math.max(date0.valueOf(), date1.valueOf()));\n}\n\nclass StandardTheme extends Theme {\n}\nStandardTheme.prototype.classes = {\n root: 'fc-theme-standard',\n tableCellShaded: 'fc-cell-shaded',\n buttonGroup: 'fc-button-group',\n button: 'fc-button fc-button-primary',\n buttonActive: 'fc-button-active',\n};\nStandardTheme.prototype.baseIconClass = 'fc-icon';\nStandardTheme.prototype.iconClasses = {\n close: 'fc-icon-x',\n prev: 'fc-icon-chevron-left',\n next: 'fc-icon-chevron-right',\n prevYear: 'fc-icon-chevrons-left',\n nextYear: 'fc-icon-chevrons-right',\n};\nStandardTheme.prototype.rtlIconClasses = {\n prev: 'fc-icon-chevron-right',\n next: 'fc-icon-chevron-left',\n prevYear: 'fc-icon-chevrons-right',\n nextYear: 'fc-icon-chevrons-left',\n};\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons'; // TODO: make TS-friendly\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\n\nfunction compileViewDefs(defaultConfigs, overrideConfigs) {\n let hash = {};\n let viewType;\n for (viewType in defaultConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n for (viewType in overrideConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n return hash;\n}\nfunction ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n if (hash[viewType]) {\n return hash[viewType];\n }\n let viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n if (viewDef) {\n hash[viewType] = viewDef;\n }\n return viewDef;\n}\nfunction buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n let defaultConfig = defaultConfigs[viewType];\n let overrideConfig = overrideConfigs[viewType];\n let queryProp = (name) => ((defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] :\n ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null));\n let theComponent = queryProp('component');\n let superType = queryProp('superType');\n let superDef = null;\n if (superType) {\n if (superType === viewType) {\n throw new Error('Can\\'t have a custom view type that references itself');\n }\n superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs);\n }\n if (!theComponent && superDef) {\n theComponent = superDef.component;\n }\n if (!theComponent) {\n return null; // don't throw a warning, might be settings for a single-unit view\n }\n return {\n type: viewType,\n component: theComponent,\n defaults: Object.assign(Object.assign({}, (superDef ? superDef.defaults : {})), (defaultConfig ? defaultConfig.rawOptions : {})),\n overrides: Object.assign(Object.assign({}, (superDef ? superDef.overrides : {})), (overrideConfig ? overrideConfig.rawOptions : {})),\n };\n}\n\nfunction parseViewConfigs(inputs) {\n return mapHash(inputs, parseViewConfig);\n}\nfunction parseViewConfig(input) {\n let rawOptions = typeof input === 'function' ?\n { component: input } :\n input;\n let { component } = rawOptions;\n if (rawOptions.content) {\n // TODO: remove content/classNames/didMount/etc from options?\n component = createViewHookComponent(rawOptions);\n }\n else if (component && !(component.prototype instanceof BaseComponent)) {\n // WHY?: people were using `component` property for `content`\n // TODO: converge on one setting name\n component = createViewHookComponent(Object.assign(Object.assign({}, rawOptions), { content: component }));\n }\n return {\n superType: rawOptions.type,\n component: component,\n rawOptions, // includes type and component too :(\n };\n}\nfunction createViewHookComponent(options) {\n return (viewProps) => (createElement(ViewContextType.Consumer, null, (context) => (createElement(ContentContainer, { elTag: \"div\", elClasses: buildViewClassNames(context.viewSpec), renderProps: Object.assign(Object.assign({}, viewProps), { nextDayThreshold: context.options.nextDayThreshold }), generatorName: undefined, customGenerator: options.content, classNameGenerator: options.classNames, didMount: options.didMount, willUnmount: options.willUnmount }))));\n}\n\nfunction buildViewSpecs(defaultInputs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n let defaultConfigs = parseViewConfigs(defaultInputs);\n let overrideConfigs = parseViewConfigs(optionOverrides.views);\n let viewDefs = compileViewDefs(defaultConfigs, overrideConfigs);\n return mapHash(viewDefs, (viewDef) => buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults));\n}\nfunction buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n let durationInput = viewDef.overrides.duration ||\n viewDef.defaults.duration ||\n dynamicOptionOverrides.duration ||\n optionOverrides.duration;\n let duration = null;\n let durationUnit = '';\n let singleUnit = '';\n let singleUnitOverrides = {};\n if (durationInput) {\n duration = createDurationCached(durationInput);\n if (duration) { // valid?\n let denom = greatestDurationDenominator(duration);\n durationUnit = denom.unit;\n if (denom.value === 1) {\n singleUnit = durationUnit;\n singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].rawOptions : {};\n }\n }\n }\n let queryButtonText = (optionsSubset) => {\n let buttonTextMap = optionsSubset.buttonText || {};\n let buttonTextKey = viewDef.defaults.buttonTextKey;\n if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) {\n return buttonTextMap[buttonTextKey];\n }\n if (buttonTextMap[viewDef.type] != null) {\n return buttonTextMap[viewDef.type];\n }\n if (buttonTextMap[singleUnit] != null) {\n return buttonTextMap[singleUnit];\n }\n return null;\n };\n let queryButtonTitle = (optionsSubset) => {\n let buttonHints = optionsSubset.buttonHints || {};\n let buttonKey = viewDef.defaults.buttonTextKey; // use same key as text\n if (buttonKey != null && buttonHints[buttonKey] != null) {\n return buttonHints[buttonKey];\n }\n if (buttonHints[viewDef.type] != null) {\n return buttonHints[viewDef.type];\n }\n if (buttonHints[singleUnit] != null) {\n return buttonHints[singleUnit];\n }\n return null;\n };\n return {\n type: viewDef.type,\n component: viewDef.component,\n duration,\n durationUnit,\n singleUnit,\n optionDefaults: viewDef.defaults,\n optionOverrides: Object.assign(Object.assign({}, singleUnitOverrides), viewDef.overrides),\n buttonTextOverride: queryButtonText(dynamicOptionOverrides) ||\n queryButtonText(optionOverrides) || // constructor-specified buttonText lookup hash takes precedence\n viewDef.overrides.buttonText,\n buttonTextDefault: queryButtonText(localeDefaults) ||\n viewDef.defaults.buttonText ||\n queryButtonText(BASE_OPTION_DEFAULTS) ||\n viewDef.type,\n // not DRY\n buttonTitleOverride: queryButtonTitle(dynamicOptionOverrides) ||\n queryButtonTitle(optionOverrides) ||\n viewDef.overrides.buttonHint,\n buttonTitleDefault: queryButtonTitle(localeDefaults) ||\n viewDef.defaults.buttonHint ||\n queryButtonTitle(BASE_OPTION_DEFAULTS),\n // will eventually fall back to buttonText\n };\n}\n// hack to get memoization working\nlet durationInputMap = {};\nfunction createDurationCached(durationInput) {\n let json = JSON.stringify(durationInput);\n let res = durationInputMap[json];\n if (res === undefined) {\n res = createDuration(durationInput);\n durationInputMap[json] = res;\n }\n return res;\n}\n\nfunction reduceViewType(viewType, action) {\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n viewType = action.viewType;\n }\n return viewType;\n}\n\nfunction reduceDynamicOptionOverrides(dynamicOptionOverrides, action) {\n switch (action.type) {\n case 'SET_OPTION':\n return Object.assign(Object.assign({}, dynamicOptionOverrides), { [action.optionName]: action.rawOptionValue });\n default:\n return dynamicOptionOverrides;\n }\n}\n\nfunction reduceDateProfile(currentDateProfile, action, currentDate, dateProfileGenerator) {\n let dp;\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n return dateProfileGenerator.build(action.dateMarker || currentDate);\n case 'CHANGE_DATE':\n return dateProfileGenerator.build(action.dateMarker);\n case 'PREV':\n dp = dateProfileGenerator.buildPrev(currentDateProfile, currentDate);\n if (dp.isValid) {\n return dp;\n }\n break;\n case 'NEXT':\n dp = dateProfileGenerator.buildNext(currentDateProfile, currentDate);\n if (dp.isValid) {\n return dp;\n }\n break;\n }\n return currentDateProfile;\n}\n\nfunction initEventSources(calendarOptions, dateProfile, context) {\n let activeRange = dateProfile ? dateProfile.activeRange : null;\n return addSources({}, parseInitialSources(calendarOptions, context), activeRange, context);\n}\nfunction reduceEventSources(eventSources, action, dateProfile, context) {\n let activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n switch (action.type) {\n case 'ADD_EVENT_SOURCES': // already parsed\n return addSources(eventSources, action.sources, activeRange, context);\n case 'REMOVE_EVENT_SOURCE':\n return removeSource(eventSources, action.sourceId);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return fetchDirtySources(eventSources, activeRange, context);\n }\n return eventSources;\n case 'FETCH_EVENT_SOURCES':\n return fetchSourcesByIds(eventSources, action.sourceIds ? // why no type?\n arrayToHash(action.sourceIds) :\n excludeStaticSources(eventSources, context), activeRange, action.isRefetch || false, context);\n case 'RECEIVE_EVENTS':\n case 'RECEIVE_EVENT_ERROR':\n return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return {};\n default:\n return eventSources;\n }\n}\nfunction reduceEventSourcesNewTimeZone(eventSources, dateProfile, context) {\n let activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, true, context);\n}\nfunction computeEventSourcesLoading(eventSources) {\n for (let sourceId in eventSources) {\n if (eventSources[sourceId].isFetching) {\n return true;\n }\n }\n return false;\n}\nfunction addSources(eventSourceHash, sources, fetchRange, context) {\n let hash = {};\n for (let source of sources) {\n hash[source.sourceId] = source;\n }\n if (fetchRange) {\n hash = fetchDirtySources(hash, fetchRange, context);\n }\n return Object.assign(Object.assign({}, eventSourceHash), hash);\n}\nfunction removeSource(eventSourceHash, sourceId) {\n return filterHash(eventSourceHash, (eventSource) => eventSource.sourceId !== sourceId);\n}\nfunction fetchDirtySources(sourceHash, fetchRange, context) {\n return fetchSourcesByIds(sourceHash, filterHash(sourceHash, (eventSource) => isSourceDirty(eventSource, fetchRange, context)), fetchRange, false, context);\n}\nfunction isSourceDirty(eventSource, fetchRange, context) {\n if (!doesSourceNeedRange(eventSource, context)) {\n return !eventSource.latestFetchId;\n }\n return !context.options.lazyFetching ||\n !eventSource.fetchRange ||\n eventSource.isFetching || // always cancel outdated in-progress fetches\n fetchRange.start < eventSource.fetchRange.start ||\n fetchRange.end > eventSource.fetchRange.end;\n}\nfunction fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, isRefetch, context) {\n let nextSources = {};\n for (let sourceId in prevSources) {\n let source = prevSources[sourceId];\n if (sourceIdHash[sourceId]) {\n nextSources[sourceId] = fetchSource(source, fetchRange, isRefetch, context);\n }\n else {\n nextSources[sourceId] = source;\n }\n }\n return nextSources;\n}\nfunction fetchSource(eventSource, fetchRange, isRefetch, context) {\n let { options, calendarApi } = context;\n let sourceDef = context.pluginHooks.eventSourceDefs[eventSource.sourceDefId];\n let fetchId = guid();\n sourceDef.fetch({\n eventSource,\n range: fetchRange,\n isRefetch,\n context,\n }, (res) => {\n let { rawEvents } = res;\n if (options.eventSourceSuccess) {\n rawEvents = options.eventSourceSuccess.call(calendarApi, rawEvents, res.response) || rawEvents;\n }\n if (eventSource.success) {\n rawEvents = eventSource.success.call(calendarApi, rawEvents, res.response) || rawEvents;\n }\n context.dispatch({\n type: 'RECEIVE_EVENTS',\n sourceId: eventSource.sourceId,\n fetchId,\n fetchRange,\n rawEvents,\n });\n }, (error) => {\n let errorHandled = false;\n if (options.eventSourceFailure) {\n options.eventSourceFailure.call(calendarApi, error);\n errorHandled = true;\n }\n if (eventSource.failure) {\n eventSource.failure(error);\n errorHandled = true;\n }\n if (!errorHandled) {\n console.warn(error.message, error);\n }\n context.dispatch({\n type: 'RECEIVE_EVENT_ERROR',\n sourceId: eventSource.sourceId,\n fetchId,\n fetchRange,\n error,\n });\n });\n return Object.assign(Object.assign({}, eventSource), { isFetching: true, latestFetchId: fetchId });\n}\nfunction receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {\n let eventSource = sourceHash[sourceId];\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId) {\n return Object.assign(Object.assign({}, sourceHash), { [sourceId]: Object.assign(Object.assign({}, eventSource), { isFetching: false, fetchRange }) });\n }\n return sourceHash;\n}\nfunction excludeStaticSources(eventSources, context) {\n return filterHash(eventSources, (eventSource) => doesSourceNeedRange(eventSource, context));\n}\nfunction parseInitialSources(rawOptions, context) {\n let refiners = buildEventSourceRefiners(context);\n let rawSources = [].concat(rawOptions.eventSources || []);\n let sources = []; // parsed\n if (rawOptions.initialEvents) {\n rawSources.unshift(rawOptions.initialEvents);\n }\n if (rawOptions.events) {\n rawSources.unshift(rawOptions.events);\n }\n for (let rawSource of rawSources) {\n let source = parseEventSource(rawSource, context, refiners);\n if (source) {\n sources.push(source);\n }\n }\n return sources;\n}\nfunction doesSourceNeedRange(eventSource, context) {\n let defs = context.pluginHooks.eventSourceDefs;\n return !defs[eventSource.sourceDefId].ignoreRange;\n}\n\nfunction reduceDateSelection(currentSelection, action) {\n switch (action.type) {\n case 'UNSELECT_DATES':\n return null;\n case 'SELECT_DATES':\n return action.selection;\n default:\n return currentSelection;\n }\n}\n\nfunction reduceSelectedEvent(currentInstanceId, action) {\n switch (action.type) {\n case 'UNSELECT_EVENT':\n return '';\n case 'SELECT_EVENT':\n return action.eventInstanceId;\n default:\n return currentInstanceId;\n }\n}\n\nfunction reduceEventDrag(currentDrag, action) {\n let newDrag;\n switch (action.type) {\n case 'UNSET_EVENT_DRAG':\n return null;\n case 'SET_EVENT_DRAG':\n newDrag = action.state;\n return {\n affectedEvents: newDrag.affectedEvents,\n mutatedEvents: newDrag.mutatedEvents,\n isEvent: newDrag.isEvent,\n };\n default:\n return currentDrag;\n }\n}\n\nfunction reduceEventResize(currentResize, action) {\n let newResize;\n switch (action.type) {\n case 'UNSET_EVENT_RESIZE':\n return null;\n case 'SET_EVENT_RESIZE':\n newResize = action.state;\n return {\n affectedEvents: newResize.affectedEvents,\n mutatedEvents: newResize.mutatedEvents,\n isEvent: newResize.isEvent,\n };\n default:\n return currentResize;\n }\n}\n\nfunction parseToolbars(calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n let header = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;\n let footer = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;\n return { header, footer };\n}\nfunction parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n let sectionWidgets = {};\n let viewsWithButtons = [];\n let hasTitle = false;\n for (let sectionName in sectionStrHash) {\n let sectionStr = sectionStrHash[sectionName];\n let sectionRes = parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi);\n sectionWidgets[sectionName] = sectionRes.widgets;\n viewsWithButtons.push(...sectionRes.viewsWithButtons);\n hasTitle = hasTitle || sectionRes.hasTitle;\n }\n return { sectionWidgets, viewsWithButtons, hasTitle };\n}\n/*\nBAD: querying icons and text here. should be done at render time\n*/\nfunction parseSection(sectionStr, calendarOptions, // defaults+overrides, then refined\ncalendarOptionOverrides, // overrides only!, unrefined :(\ntheme, viewSpecs, calendarApi) {\n let isRtl = calendarOptions.direction === 'rtl';\n let calendarCustomButtons = calendarOptions.customButtons || {};\n let calendarButtonTextOverrides = calendarOptionOverrides.buttonText || {};\n let calendarButtonText = calendarOptions.buttonText || {};\n let calendarButtonHintOverrides = calendarOptionOverrides.buttonHints || {};\n let calendarButtonHints = calendarOptions.buttonHints || {};\n let sectionSubstrs = sectionStr ? sectionStr.split(' ') : [];\n let viewsWithButtons = [];\n let hasTitle = false;\n let widgets = sectionSubstrs.map((buttonGroupStr) => (buttonGroupStr.split(',').map((buttonName) => {\n if (buttonName === 'title') {\n hasTitle = true;\n return { buttonName };\n }\n let customButtonProps;\n let viewSpec;\n let buttonClick;\n let buttonIcon; // only one of these will be set\n let buttonText; // \"\n let buttonHint;\n // ^ for the title=\"\" attribute, for accessibility\n if ((customButtonProps = calendarCustomButtons[buttonName])) {\n buttonClick = (ev) => {\n if (customButtonProps.click) {\n customButtonProps.click.call(ev.target, ev, ev.target); // TODO: use Calendar this context?\n }\n };\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = customButtonProps.text);\n buttonHint = customButtonProps.hint || customButtonProps.text;\n }\n else if ((viewSpec = viewSpecs[buttonName])) {\n viewsWithButtons.push(buttonName);\n buttonClick = () => {\n calendarApi.changeView(buttonName);\n };\n (buttonText = viewSpec.buttonTextOverride) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = viewSpec.buttonTextDefault);\n let textFallback = viewSpec.buttonTextOverride ||\n viewSpec.buttonTextDefault;\n buttonHint = formatWithOrdinals(viewSpec.buttonTitleOverride ||\n viewSpec.buttonTitleDefault ||\n calendarOptions.viewHint, [textFallback, buttonName], // view-name = buttonName\n textFallback);\n }\n else if (calendarApi[buttonName]) { // a calendarApi method\n buttonClick = () => {\n calendarApi[buttonName]();\n };\n (buttonText = calendarButtonTextOverrides[buttonName]) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = calendarButtonText[buttonName]); // everything else is considered default\n if (buttonName === 'prevYear' || buttonName === 'nextYear') {\n let prevOrNext = buttonName === 'prevYear' ? 'prev' : 'next';\n buttonHint = formatWithOrdinals(calendarButtonHintOverrides[prevOrNext] ||\n calendarButtonHints[prevOrNext], [\n calendarButtonText.year || 'year',\n 'year',\n ], calendarButtonText[buttonName]);\n }\n else {\n buttonHint = (navUnit) => formatWithOrdinals(calendarButtonHintOverrides[buttonName] ||\n calendarButtonHints[buttonName], [\n calendarButtonText[navUnit] || navUnit,\n navUnit,\n ], calendarButtonText[buttonName]);\n }\n }\n return { buttonName, buttonClick, buttonIcon, buttonText, buttonHint };\n })));\n return { widgets, viewsWithButtons, hasTitle };\n}\n\n// always represents the current view. otherwise, it'd need to change value every time date changes\nclass ViewImpl {\n constructor(type, getCurrentData, dateEnv) {\n this.type = type;\n this.getCurrentData = getCurrentData;\n this.dateEnv = dateEnv;\n }\n get calendar() {\n return this.getCurrentData().calendarApi;\n }\n get title() {\n return this.getCurrentData().viewTitle;\n }\n get activeStart() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start);\n }\n get activeEnd() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end);\n }\n get currentStart() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start);\n }\n get currentEnd() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end);\n }\n getOption(name) {\n return this.getCurrentData().options[name]; // are the view-specific options\n }\n}\n\nlet eventSourceDef$2 = {\n ignoreRange: true,\n parseMeta(refined) {\n if (Array.isArray(refined.events)) {\n return refined.events;\n }\n return null;\n },\n fetch(arg, successCallback) {\n successCallback({\n rawEvents: arg.eventSource.meta,\n });\n },\n};\nconst arrayEventSourcePlugin = createPlugin({\n name: 'array-event-source',\n eventSourceDefs: [eventSourceDef$2],\n});\n\nlet eventSourceDef$1 = {\n parseMeta(refined) {\n if (typeof refined.events === 'function') {\n return refined.events;\n }\n return null;\n },\n fetch(arg, successCallback, errorCallback) {\n const { dateEnv } = arg.context;\n const func = arg.eventSource.meta;\n unpromisify(func.bind(null, buildRangeApiWithTimeZone(arg.range, dateEnv)), (rawEvents) => successCallback({ rawEvents }), errorCallback);\n },\n};\nconst funcEventSourcePlugin = createPlugin({\n name: 'func-event-source',\n eventSourceDefs: [eventSourceDef$1],\n});\n\nconst JSON_FEED_EVENT_SOURCE_REFINERS = {\n method: String,\n extraParams: identity,\n startParam: String,\n endParam: String,\n timeZoneParam: String,\n};\n\nlet eventSourceDef = {\n parseMeta(refined) {\n if (refined.url && (refined.format === 'json' || !refined.format)) {\n return {\n url: refined.url,\n format: 'json',\n method: (refined.method || 'GET').toUpperCase(),\n extraParams: refined.extraParams,\n startParam: refined.startParam,\n endParam: refined.endParam,\n timeZoneParam: refined.timeZoneParam,\n };\n }\n return null;\n },\n fetch(arg, successCallback, errorCallback) {\n const { meta } = arg.eventSource;\n const requestParams = buildRequestParams(meta, arg.range, arg.context);\n requestJson(meta.method, meta.url, requestParams).then(([rawEvents, response]) => {\n successCallback({ rawEvents, response });\n }, errorCallback);\n },\n};\nconst jsonFeedEventSourcePlugin = createPlugin({\n name: 'json-event-source',\n eventSourceRefiners: JSON_FEED_EVENT_SOURCE_REFINERS,\n eventSourceDefs: [eventSourceDef],\n});\nfunction buildRequestParams(meta, range, context) {\n let { dateEnv, options } = context;\n let startParam;\n let endParam;\n let timeZoneParam;\n let customRequestParams;\n let params = {};\n startParam = meta.startParam;\n if (startParam == null) {\n startParam = options.startParam;\n }\n endParam = meta.endParam;\n if (endParam == null) {\n endParam = options.endParam;\n }\n timeZoneParam = meta.timeZoneParam;\n if (timeZoneParam == null) {\n timeZoneParam = options.timeZoneParam;\n }\n // retrieve any outbound GET/POST data from the options\n if (typeof meta.extraParams === 'function') {\n // supplied as a function that returns a key/value object\n customRequestParams = meta.extraParams();\n }\n else {\n // probably supplied as a straight key/value object\n customRequestParams = meta.extraParams || {};\n }\n Object.assign(params, customRequestParams);\n params[startParam] = dateEnv.formatIso(range.start);\n params[endParam] = dateEnv.formatIso(range.end);\n if (dateEnv.timeZone !== 'local') {\n params[timeZoneParam] = dateEnv.timeZone;\n }\n return params;\n}\n\nconst SIMPLE_RECURRING_REFINERS = {\n daysOfWeek: identity,\n startTime: createDuration,\n endTime: createDuration,\n duration: createDuration,\n startRecur: identity,\n endRecur: identity,\n};\n\nlet recurring = {\n parse(refined, dateEnv) {\n if (refined.daysOfWeek || refined.startTime || refined.endTime || refined.startRecur || refined.endRecur) {\n let recurringData = {\n daysOfWeek: refined.daysOfWeek || null,\n startTime: refined.startTime || null,\n endTime: refined.endTime || null,\n startRecur: refined.startRecur ? dateEnv.createMarker(refined.startRecur) : null,\n endRecur: refined.endRecur ? dateEnv.createMarker(refined.endRecur) : null,\n };\n let duration;\n if (refined.duration) {\n duration = refined.duration;\n }\n if (!duration && refined.startTime && refined.endTime) {\n duration = subtractDurations(refined.endTime, refined.startTime);\n }\n return {\n allDayGuess: Boolean(!refined.startTime && !refined.endTime),\n duration,\n typeData: recurringData, // doesn't need endTime anymore but oh well\n };\n }\n return null;\n },\n expand(typeData, framingRange, dateEnv) {\n let clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur });\n if (clippedFramingRange) {\n return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv);\n }\n return [];\n },\n};\nconst simpleRecurringEventsPlugin = createPlugin({\n name: 'simple-recurring-event',\n recurringTypes: [recurring],\n eventRefiners: SIMPLE_RECURRING_REFINERS,\n});\nfunction expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {\n let dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null;\n let dayMarker = startOfDay(framingRange.start);\n let endMarker = framingRange.end;\n let instanceStarts = [];\n while (dayMarker < endMarker) {\n let instanceStart;\n // if everyday, or this particular day-of-week\n if (!dowHash || dowHash[dayMarker.getUTCDay()]) {\n if (startTime) {\n instanceStart = dateEnv.add(dayMarker, startTime);\n }\n else {\n instanceStart = dayMarker;\n }\n instanceStarts.push(instanceStart);\n }\n dayMarker = addDays(dayMarker, 1);\n }\n return instanceStarts;\n}\n\nconst changeHandlerPlugin = createPlugin({\n name: 'change-handler',\n optionChangeHandlers: {\n events(events, context) {\n handleEventSources([events], context);\n },\n eventSources: handleEventSources,\n },\n});\n/*\nBUG: if `event` was supplied, all previously-given `eventSources` will be wiped out\n*/\nfunction handleEventSources(inputs, context) {\n let unfoundSources = hashValuesToArray(context.getCurrentData().eventSources);\n if (unfoundSources.length === 1 &&\n inputs.length === 1 &&\n Array.isArray(unfoundSources[0]._raw) &&\n Array.isArray(inputs[0])) {\n context.dispatch({\n type: 'RESET_RAW_EVENTS',\n sourceId: unfoundSources[0].sourceId,\n rawEvents: inputs[0],\n });\n return;\n }\n let newInputs = [];\n for (let input of inputs) {\n let inputFound = false;\n for (let i = 0; i < unfoundSources.length; i += 1) {\n if (unfoundSources[i]._raw === input) {\n unfoundSources.splice(i, 1); // delete\n inputFound = true;\n break;\n }\n }\n if (!inputFound) {\n newInputs.push(input);\n }\n }\n for (let unfoundSource of unfoundSources) {\n context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: unfoundSource.sourceId,\n });\n }\n for (let newInput of newInputs) {\n context.calendarApi.addEventSource(newInput);\n }\n}\n\nfunction handleDateProfile(dateProfile, context) {\n context.emitter.trigger('datesSet', Object.assign(Object.assign({}, buildRangeApiWithTimeZone(dateProfile.activeRange, context.dateEnv)), { view: context.viewApi }));\n}\n\nfunction handleEventStore(eventStore, context) {\n let { emitter } = context;\n if (emitter.hasHandlers('eventsSet')) {\n emitter.trigger('eventsSet', buildEventApis(eventStore, context));\n }\n}\n\n/*\nthis array is exposed on the root namespace so that UMD plugins can add to it.\nsee the rollup-bundles script.\n*/\nconst globalPlugins = [\n arrayEventSourcePlugin,\n funcEventSourcePlugin,\n jsonFeedEventSourcePlugin,\n simpleRecurringEventsPlugin,\n changeHandlerPlugin,\n createPlugin({\n name: 'misc',\n isLoadingFuncs: [\n (state) => computeEventSourcesLoading(state.eventSources),\n ],\n propSetHandlers: {\n dateProfile: handleDateProfile,\n eventStore: handleEventStore,\n },\n }),\n];\n\nclass TaskRunner {\n constructor(runTaskOption, drainedOption) {\n this.runTaskOption = runTaskOption;\n this.drainedOption = drainedOption;\n this.queue = [];\n this.delayedRunner = new DelayedRunner(this.drain.bind(this));\n }\n request(task, delay) {\n this.queue.push(task);\n this.delayedRunner.request(delay);\n }\n pause(scope) {\n this.delayedRunner.pause(scope);\n }\n resume(scope, force) {\n this.delayedRunner.resume(scope, force);\n }\n drain() {\n let { queue } = this;\n while (queue.length) {\n let completedTasks = [];\n let task;\n while ((task = queue.shift())) {\n this.runTask(task);\n completedTasks.push(task);\n }\n this.drained(completedTasks);\n } // keep going, in case new tasks were added in the drained handler\n }\n runTask(task) {\n if (this.runTaskOption) {\n this.runTaskOption(task);\n }\n }\n drained(completedTasks) {\n if (this.drainedOption) {\n this.drainedOption(completedTasks);\n }\n }\n}\n\n// Computes what the title at the top of the calendarApi should be for this view\nfunction buildTitle(dateProfile, viewOptions, dateEnv) {\n let range;\n // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\n range = dateProfile.currentRange;\n }\n else { // for day units or smaller, use the actual day range\n range = dateProfile.activeRange;\n }\n return dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || buildTitleFormat(dateProfile)), {\n isEndExclusive: dateProfile.isRangeAllDay,\n defaultSeparator: viewOptions.titleRangeSeparator,\n });\n}\n// Generates the format string that should be used to generate the title for the current date range.\n// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\nfunction buildTitleFormat(dateProfile) {\n let { currentRangeUnit } = dateProfile;\n if (currentRangeUnit === 'year') {\n return { year: 'numeric' };\n }\n if (currentRangeUnit === 'month') {\n return { year: 'numeric', month: 'long' }; // like \"September 2014\"\n }\n let days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end);\n if (days !== null && days > 1) {\n // multi-day range. shorter, like \"Sep 9 - 10 2014\"\n return { year: 'numeric', month: 'short', day: 'numeric' };\n }\n // one day. longer, like \"September 9 2014\"\n return { year: 'numeric', month: 'long', day: 'numeric' };\n}\n\n// in future refactor, do the redux-style function(state=initial) for initial-state\n// also, whatever is happening in constructor, have it happen in action queue too\nclass CalendarDataManager {\n constructor(props) {\n this.computeCurrentViewData = memoize(this._computeCurrentViewData);\n this.organizeRawLocales = memoize(organizeRawLocales);\n this.buildLocale = memoize(buildLocale);\n this.buildPluginHooks = buildBuildPluginHooks();\n this.buildDateEnv = memoize(buildDateEnv$1);\n this.buildTheme = memoize(buildTheme);\n this.parseToolbars = memoize(parseToolbars);\n this.buildViewSpecs = memoize(buildViewSpecs);\n this.buildDateProfileGenerator = memoizeObjArg(buildDateProfileGenerator);\n this.buildViewApi = memoize(buildViewApi);\n this.buildViewUiProps = memoizeObjArg(buildViewUiProps);\n this.buildEventUiBySource = memoize(buildEventUiBySource, isPropsEqual);\n this.buildEventUiBases = memoize(buildEventUiBases);\n this.parseContextBusinessHours = memoizeObjArg(parseContextBusinessHours);\n this.buildTitle = memoize(buildTitle);\n this.emitter = new Emitter();\n this.actionRunner = new TaskRunner(this._handleAction.bind(this), this.updateData.bind(this));\n this.currentCalendarOptionsInput = {};\n this.currentCalendarOptionsRefined = {};\n this.currentViewOptionsInput = {};\n this.currentViewOptionsRefined = {};\n this.currentCalendarOptionsRefiners = {};\n this.optionsForRefining = [];\n this.optionsForHandling = [];\n this.getCurrentData = () => this.data;\n this.dispatch = (action) => {\n this.actionRunner.request(action); // protects against recursive calls to _handleAction\n };\n this.props = props;\n this.actionRunner.pause();\n let dynamicOptionOverrides = {};\n let optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n let currentViewType = optionsData.calendarOptions.initialView || optionsData.pluginHooks.initialView;\n let currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides);\n // wire things up\n // TODO: not DRY\n props.calendarApi.currentDataManager = this;\n this.emitter.setThisContext(props.calendarApi);\n this.emitter.setOptions(currentViewData.options);\n let currentDate = getInitialDate(optionsData.calendarOptions, optionsData.dateEnv);\n let dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n if (!rangeContainsMarker(dateProfile.activeRange, currentDate)) {\n currentDate = dateProfile.currentRange.start;\n }\n let calendarContext = {\n dateEnv: optionsData.dateEnv,\n options: optionsData.calendarOptions,\n pluginHooks: optionsData.pluginHooks,\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter: this.emitter,\n getCurrentData: this.getCurrentData,\n };\n // needs to be after setThisContext\n for (let callback of optionsData.pluginHooks.contextInit) {\n callback(calendarContext);\n }\n // NOT DRY\n let eventSources = initEventSources(optionsData.calendarOptions, dateProfile, calendarContext);\n let initialState = {\n dynamicOptionOverrides,\n currentViewType,\n currentDate,\n dateProfile,\n businessHours: this.parseContextBusinessHours(calendarContext),\n eventSources,\n eventUiBases: {},\n eventStore: createEmptyEventStore(),\n renderableEventStore: createEmptyEventStore(),\n dateSelection: null,\n eventSelection: '',\n eventDrag: null,\n eventResize: null,\n selectionConfig: this.buildViewUiProps(calendarContext).selectionConfig,\n };\n let contextAndState = Object.assign(Object.assign({}, calendarContext), initialState);\n for (let reducer of optionsData.pluginHooks.reducers) {\n Object.assign(initialState, reducer(null, null, contextAndState));\n }\n if (computeIsLoading(initialState, calendarContext)) {\n this.emitter.trigger('loading', true); // NOT DRY\n }\n this.state = initialState;\n this.updateData();\n this.actionRunner.resume();\n }\n resetOptions(optionOverrides, changedOptionNames) {\n let { props } = this;\n if (changedOptionNames === undefined) {\n props.optionOverrides = optionOverrides;\n }\n else {\n props.optionOverrides = Object.assign(Object.assign({}, (props.optionOverrides || {})), optionOverrides);\n this.optionsForRefining.push(...changedOptionNames);\n }\n if (changedOptionNames === undefined || changedOptionNames.length) {\n this.actionRunner.request({\n type: 'NOTHING',\n });\n }\n }\n _handleAction(action) {\n let { props, state, emitter } = this;\n let dynamicOptionOverrides = reduceDynamicOptionOverrides(state.dynamicOptionOverrides, action);\n let optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n let currentViewType = reduceViewType(state.currentViewType, action);\n let currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides);\n // wire things up\n // TODO: not DRY\n props.calendarApi.currentDataManager = this;\n emitter.setThisContext(props.calendarApi);\n emitter.setOptions(currentViewData.options);\n let calendarContext = {\n dateEnv: optionsData.dateEnv,\n options: optionsData.calendarOptions,\n pluginHooks: optionsData.pluginHooks,\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter,\n getCurrentData: this.getCurrentData,\n };\n let { currentDate, dateProfile } = state;\n if (this.data && this.data.dateProfileGenerator !== currentViewData.dateProfileGenerator) { // hack\n dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n }\n currentDate = reduceCurrentDate(currentDate, action);\n dateProfile = reduceDateProfile(dateProfile, action, currentDate, currentViewData.dateProfileGenerator);\n if (action.type === 'PREV' || // TODO: move this logic into DateProfileGenerator\n action.type === 'NEXT' || // \"\n !rangeContainsMarker(dateProfile.currentRange, currentDate)) {\n currentDate = dateProfile.currentRange.start;\n }\n let eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendarContext);\n let eventStore = reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendarContext);\n let isEventsLoading = computeEventSourcesLoading(eventSources); // BAD. also called in this func in computeIsLoading\n let renderableEventStore = (isEventsLoading && !currentViewData.options.progressiveEventRendering) ?\n (state.renderableEventStore || eventStore) : // try from previous state\n eventStore;\n let { eventUiSingleBase, selectionConfig } = this.buildViewUiProps(calendarContext); // will memoize obj\n let eventUiBySource = this.buildEventUiBySource(eventSources);\n let eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource);\n let newState = {\n dynamicOptionOverrides,\n currentViewType,\n currentDate,\n dateProfile,\n eventSources,\n eventStore,\n renderableEventStore,\n selectionConfig,\n eventUiBases,\n businessHours: this.parseContextBusinessHours(calendarContext),\n dateSelection: reduceDateSelection(state.dateSelection, action),\n eventSelection: reduceSelectedEvent(state.eventSelection, action),\n eventDrag: reduceEventDrag(state.eventDrag, action),\n eventResize: reduceEventResize(state.eventResize, action),\n };\n let contextAndState = Object.assign(Object.assign({}, calendarContext), newState);\n for (let reducer of optionsData.pluginHooks.reducers) {\n Object.assign(newState, reducer(state, action, contextAndState)); // give the OLD state, for old value\n }\n let wasLoading = computeIsLoading(state, calendarContext);\n let isLoading = computeIsLoading(newState, calendarContext);\n // TODO: use propSetHandlers in plugin system\n if (!wasLoading && isLoading) {\n emitter.trigger('loading', true);\n }\n else if (wasLoading && !isLoading) {\n emitter.trigger('loading', false);\n }\n this.state = newState;\n if (props.onAction) {\n props.onAction(action);\n }\n }\n updateData() {\n let { props, state } = this;\n let oldData = this.data;\n let optionsData = this.computeOptionsData(props.optionOverrides, state.dynamicOptionOverrides, props.calendarApi);\n let currentViewData = this.computeCurrentViewData(state.currentViewType, optionsData, props.optionOverrides, state.dynamicOptionOverrides);\n let data = this.data = Object.assign(Object.assign(Object.assign({ viewTitle: this.buildTitle(state.dateProfile, currentViewData.options, optionsData.dateEnv), calendarApi: props.calendarApi, dispatch: this.dispatch, emitter: this.emitter, getCurrentData: this.getCurrentData }, optionsData), currentViewData), state);\n let changeHandlers = optionsData.pluginHooks.optionChangeHandlers;\n let oldCalendarOptions = oldData && oldData.calendarOptions;\n let newCalendarOptions = optionsData.calendarOptions;\n if (oldCalendarOptions && oldCalendarOptions !== newCalendarOptions) {\n if (oldCalendarOptions.timeZone !== newCalendarOptions.timeZone) {\n // hack\n state.eventSources = data.eventSources = reduceEventSourcesNewTimeZone(data.eventSources, state.dateProfile, data);\n state.eventStore = data.eventStore = rezoneEventStoreDates(data.eventStore, oldData.dateEnv, data.dateEnv);\n state.renderableEventStore = data.renderableEventStore = rezoneEventStoreDates(data.renderableEventStore, oldData.dateEnv, data.dateEnv);\n }\n for (let optionName in changeHandlers) {\n if (this.optionsForHandling.indexOf(optionName) !== -1 ||\n oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {\n changeHandlers[optionName](newCalendarOptions[optionName], data);\n }\n }\n }\n this.optionsForHandling = [];\n if (props.onData) {\n props.onData(data);\n }\n }\n computeOptionsData(optionOverrides, dynamicOptionOverrides, calendarApi) {\n // TODO: blacklist options that are handled by optionChangeHandlers\n if (!this.optionsForRefining.length &&\n optionOverrides === this.stableOptionOverrides &&\n dynamicOptionOverrides === this.stableDynamicOptionOverrides) {\n return this.stableCalendarOptionsData;\n }\n let { refinedOptions, pluginHooks, localeDefaults, availableLocaleData, extra, } = this.processRawCalendarOptions(optionOverrides, dynamicOptionOverrides);\n warnUnknownOptions(extra);\n let dateEnv = this.buildDateEnv(refinedOptions.timeZone, refinedOptions.locale, refinedOptions.weekNumberCalculation, refinedOptions.firstDay, refinedOptions.weekText, pluginHooks, availableLocaleData, refinedOptions.defaultRangeSeparator);\n let viewSpecs = this.buildViewSpecs(pluginHooks.views, this.stableOptionOverrides, this.stableDynamicOptionOverrides, localeDefaults);\n let theme = this.buildTheme(refinedOptions, pluginHooks);\n let toolbarConfig = this.parseToolbars(refinedOptions, this.stableOptionOverrides, theme, viewSpecs, calendarApi);\n return this.stableCalendarOptionsData = {\n calendarOptions: refinedOptions,\n pluginHooks,\n dateEnv,\n viewSpecs,\n theme,\n toolbarConfig,\n localeDefaults,\n availableRawLocales: availableLocaleData.map,\n };\n }\n // always called from behind a memoizer\n processRawCalendarOptions(optionOverrides, dynamicOptionOverrides) {\n let { locales, locale } = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n optionOverrides,\n dynamicOptionOverrides,\n ]);\n let availableLocaleData = this.organizeRawLocales(locales);\n let availableRawLocales = availableLocaleData.map;\n let localeDefaults = this.buildLocale(locale || availableLocaleData.defaultCode, availableRawLocales).options;\n let pluginHooks = this.buildPluginHooks(optionOverrides.plugins || [], globalPlugins);\n let refiners = this.currentCalendarOptionsRefiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n let extra = {};\n let raw = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n localeDefaults,\n optionOverrides,\n dynamicOptionOverrides,\n ]);\n let refined = {};\n let currentRaw = this.currentCalendarOptionsInput;\n let currentRefined = this.currentCalendarOptionsRefined;\n let anyChanges = false;\n for (let optionName in raw) {\n if (this.optionsForRefining.indexOf(optionName) === -1 && (raw[optionName] === currentRaw[optionName] || (COMPLEX_OPTION_COMPARATORS[optionName] &&\n (optionName in currentRaw) &&\n COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName])))) {\n refined[optionName] = currentRefined[optionName];\n }\n else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName]);\n anyChanges = true;\n }\n else {\n extra[optionName] = currentRaw[optionName];\n }\n }\n if (anyChanges) {\n this.currentCalendarOptionsInput = raw;\n this.currentCalendarOptionsRefined = refined;\n this.stableOptionOverrides = optionOverrides;\n this.stableDynamicOptionOverrides = dynamicOptionOverrides;\n }\n this.optionsForHandling.push(...this.optionsForRefining);\n this.optionsForRefining = [];\n return {\n rawOptions: this.currentCalendarOptionsInput,\n refinedOptions: this.currentCalendarOptionsRefined,\n pluginHooks,\n availableLocaleData,\n localeDefaults,\n extra,\n };\n }\n _computeCurrentViewData(viewType, optionsData, optionOverrides, dynamicOptionOverrides) {\n let viewSpec = optionsData.viewSpecs[viewType];\n if (!viewSpec) {\n throw new Error(`viewType \"${viewType}\" is not available. Please make sure you've loaded all neccessary plugins`);\n }\n let { refinedOptions, extra } = this.processRawViewOptions(viewSpec, optionsData.pluginHooks, optionsData.localeDefaults, optionOverrides, dynamicOptionOverrides);\n warnUnknownOptions(extra);\n let dateProfileGenerator = this.buildDateProfileGenerator({\n dateProfileGeneratorClass: viewSpec.optionDefaults.dateProfileGeneratorClass,\n duration: viewSpec.duration,\n durationUnit: viewSpec.durationUnit,\n usesMinMaxTime: viewSpec.optionDefaults.usesMinMaxTime,\n dateEnv: optionsData.dateEnv,\n calendarApi: this.props.calendarApi,\n slotMinTime: refinedOptions.slotMinTime,\n slotMaxTime: refinedOptions.slotMaxTime,\n showNonCurrentDates: refinedOptions.showNonCurrentDates,\n dayCount: refinedOptions.dayCount,\n dateAlignment: refinedOptions.dateAlignment,\n dateIncrement: refinedOptions.dateIncrement,\n hiddenDays: refinedOptions.hiddenDays,\n weekends: refinedOptions.weekends,\n nowInput: refinedOptions.now,\n validRangeInput: refinedOptions.validRange,\n visibleRangeInput: refinedOptions.visibleRange,\n fixedWeekCount: refinedOptions.fixedWeekCount,\n });\n let viewApi = this.buildViewApi(viewType, this.getCurrentData, optionsData.dateEnv);\n return { viewSpec, options: refinedOptions, dateProfileGenerator, viewApi };\n }\n processRawViewOptions(viewSpec, pluginHooks, localeDefaults, optionOverrides, dynamicOptionOverrides) {\n let raw = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n viewSpec.optionDefaults,\n localeDefaults,\n optionOverrides,\n viewSpec.optionOverrides,\n dynamicOptionOverrides,\n ]);\n let refiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), VIEW_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n let refined = {};\n let currentRaw = this.currentViewOptionsInput;\n let currentRefined = this.currentViewOptionsRefined;\n let anyChanges = false;\n let extra = {};\n for (let optionName in raw) {\n if (raw[optionName] === currentRaw[optionName] ||\n (COMPLEX_OPTION_COMPARATORS[optionName] &&\n COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], currentRaw[optionName]))) {\n refined[optionName] = currentRefined[optionName];\n }\n else {\n if (raw[optionName] === this.currentCalendarOptionsInput[optionName] ||\n (COMPLEX_OPTION_COMPARATORS[optionName] &&\n COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], this.currentCalendarOptionsInput[optionName]))) {\n if (optionName in this.currentCalendarOptionsRefined) { // might be an \"extra\" prop\n refined[optionName] = this.currentCalendarOptionsRefined[optionName];\n }\n }\n else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName]);\n }\n else {\n extra[optionName] = raw[optionName];\n }\n anyChanges = true;\n }\n }\n if (anyChanges) {\n this.currentViewOptionsInput = raw;\n this.currentViewOptionsRefined = refined;\n }\n return {\n rawOptions: this.currentViewOptionsInput,\n refinedOptions: this.currentViewOptionsRefined,\n extra,\n };\n }\n}\nfunction buildDateEnv$1(timeZone, explicitLocale, weekNumberCalculation, firstDay, weekText, pluginHooks, availableLocaleData, defaultSeparator) {\n let locale = buildLocale(explicitLocale || availableLocaleData.defaultCode, availableLocaleData.map);\n return new DateEnv({\n calendarSystem: 'gregory',\n timeZone,\n namedTimeZoneImpl: pluginHooks.namedTimeZonedImpl,\n locale,\n weekNumberCalculation,\n firstDay,\n weekText,\n cmdFormatter: pluginHooks.cmdFormatter,\n defaultSeparator,\n });\n}\nfunction buildTheme(options, pluginHooks) {\n let ThemeClass = pluginHooks.themeClasses[options.themeSystem] || StandardTheme;\n return new ThemeClass(options);\n}\nfunction buildDateProfileGenerator(props) {\n let DateProfileGeneratorClass = props.dateProfileGeneratorClass || DateProfileGenerator;\n return new DateProfileGeneratorClass(props);\n}\nfunction buildViewApi(type, getCurrentData, dateEnv) {\n return new ViewImpl(type, getCurrentData, dateEnv);\n}\nfunction buildEventUiBySource(eventSources) {\n return mapHash(eventSources, (eventSource) => eventSource.ui);\n}\nfunction buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {\n let eventUiBases = { '': eventUiSingleBase };\n for (let defId in eventDefs) {\n let def = eventDefs[defId];\n if (def.sourceId && eventUiBySource[def.sourceId]) {\n eventUiBases[defId] = eventUiBySource[def.sourceId];\n }\n }\n return eventUiBases;\n}\nfunction buildViewUiProps(calendarContext) {\n let { options } = calendarContext;\n return {\n eventUiSingleBase: createEventUi({\n display: options.eventDisplay,\n editable: options.editable,\n startEditable: options.eventStartEditable,\n durationEditable: options.eventDurationEditable,\n constraint: options.eventConstraint,\n overlap: typeof options.eventOverlap === 'boolean' ? options.eventOverlap : undefined,\n allow: options.eventAllow,\n backgroundColor: options.eventBackgroundColor,\n borderColor: options.eventBorderColor,\n textColor: options.eventTextColor,\n color: options.eventColor,\n // classNames: options.eventClassNames // render hook will handle this\n }, calendarContext),\n selectionConfig: createEventUi({\n constraint: options.selectConstraint,\n overlap: typeof options.selectOverlap === 'boolean' ? options.selectOverlap : undefined,\n allow: options.selectAllow,\n }, calendarContext),\n };\n}\nfunction computeIsLoading(state, context) {\n for (let isLoadingFunc of context.pluginHooks.isLoadingFuncs) {\n if (isLoadingFunc(state)) {\n return true;\n }\n }\n return false;\n}\nfunction parseContextBusinessHours(calendarContext) {\n return parseBusinessHours(calendarContext.options.businessHours, calendarContext);\n}\nfunction warnUnknownOptions(options, viewName) {\n for (let optionName in options) {\n console.warn(`Unknown option '${optionName}'` +\n (viewName ? ` for view '${viewName}'` : ''));\n }\n}\n\nclass ToolbarSection extends BaseComponent {\n render() {\n let children = this.props.widgetGroups.map((widgetGroup) => this.renderWidgetGroup(widgetGroup));\n return createElement('div', { className: 'fc-toolbar-chunk' }, ...children);\n }\n renderWidgetGroup(widgetGroup) {\n let { props } = this;\n let { theme } = this.context;\n let children = [];\n let isOnlyButtons = true;\n for (let widget of widgetGroup) {\n let { buttonName, buttonClick, buttonText, buttonIcon, buttonHint } = widget;\n if (buttonName === 'title') {\n isOnlyButtons = false;\n children.push(createElement(\"h2\", { className: \"fc-toolbar-title\", id: props.titleId }, props.title));\n }\n else {\n let isPressed = buttonName === props.activeButton;\n let isDisabled = (!props.isTodayEnabled && buttonName === 'today') ||\n (!props.isPrevEnabled && buttonName === 'prev') ||\n (!props.isNextEnabled && buttonName === 'next');\n let buttonClasses = [`fc-${buttonName}-button`, theme.getClass('button')];\n if (isPressed) {\n buttonClasses.push(theme.getClass('buttonActive'));\n }\n children.push(createElement(\"button\", { type: \"button\", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, \"aria-pressed\": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? createElement(\"span\", { className: buttonIcon, role: \"img\" }) : '')));\n }\n }\n if (children.length > 1) {\n let groupClassName = (isOnlyButtons && theme.getClass('buttonGroup')) || '';\n return createElement('div', { className: groupClassName }, ...children);\n }\n return children[0];\n }\n}\n\nclass Toolbar extends BaseComponent {\n render() {\n let { model, extraClassName } = this.props;\n let forceLtr = false;\n let startContent;\n let endContent;\n let sectionWidgets = model.sectionWidgets;\n let centerContent = sectionWidgets.center;\n if (sectionWidgets.left) {\n forceLtr = true;\n startContent = sectionWidgets.left;\n }\n else {\n startContent = sectionWidgets.start;\n }\n if (sectionWidgets.right) {\n forceLtr = true;\n endContent = sectionWidgets.right;\n }\n else {\n endContent = sectionWidgets.end;\n }\n let classNames = [\n extraClassName || '',\n 'fc-toolbar',\n forceLtr ? 'fc-toolbar-ltr' : '',\n ];\n return (createElement(\"div\", { className: classNames.join(' ') },\n this.renderSection('start', startContent || []),\n this.renderSection('center', centerContent || []),\n this.renderSection('end', endContent || [])));\n }\n renderSection(key, widgetGroups) {\n let { props } = this;\n return (createElement(ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, navUnit: props.navUnit, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled, titleId: props.titleId }));\n }\n}\n\nclass ViewHarness extends BaseComponent {\n constructor() {\n super(...arguments);\n this.state = {\n availableWidth: null,\n };\n this.handleEl = (el) => {\n this.el = el;\n setRef(this.props.elRef, el);\n this.updateAvailableWidth();\n };\n this.handleResize = () => {\n this.updateAvailableWidth();\n };\n }\n render() {\n let { props, state } = this;\n let { aspectRatio } = props;\n let classNames = [\n 'fc-view-harness',\n (aspectRatio || props.liquid || props.height)\n ? 'fc-view-harness-active' // harness controls the height\n : 'fc-view-harness-passive', // let the view do the height\n ];\n let height = '';\n let paddingBottom = '';\n if (aspectRatio) {\n if (state.availableWidth !== null) {\n height = state.availableWidth / aspectRatio;\n }\n else {\n // while waiting to know availableWidth, we can't set height to *zero*\n // because will cause lots of unnecessary scrollbars within scrollgrid.\n // BETTER: don't start rendering ANYTHING yet until we know container width\n // NOTE: why not always use paddingBottom? Causes height oscillation (issue 5606)\n paddingBottom = `${(1 / aspectRatio) * 100}%`;\n }\n }\n else {\n height = props.height || '';\n }\n return (createElement(\"div\", { \"aria-labelledby\": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height, paddingBottom } }, props.children));\n }\n componentDidMount() {\n this.context.addResizeHandler(this.handleResize);\n }\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleResize);\n }\n updateAvailableWidth() {\n if (this.el && // needed. but why?\n this.props.aspectRatio // aspectRatio is the only height setting that needs availableWidth\n ) {\n this.setState({ availableWidth: this.el.offsetWidth });\n }\n }\n}\n\n/*\nDetects when the user clicks on an event within a DateComponent\n*/\nclass EventClicking extends Interaction {\n constructor(settings) {\n super(settings);\n this.handleSegClick = (ev, segEl) => {\n let { component } = this;\n let { context } = component;\n let seg = getElSeg(segEl);\n if (seg && // might be the <div> surrounding the more link\n component.isValidSegDownEl(ev.target)) {\n // our way to simulate a link click for elements that can't be <a> tags\n // grab before trigger fired in case trigger trashes DOM thru rerendering\n let hasUrlContainer = elementClosest(ev.target, '.fc-event-forced-url');\n let url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';\n context.emitter.trigger('eventClick', {\n el: segEl,\n event: new EventImpl(component.context, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: context.viewApi,\n });\n if (url && !ev.defaultPrevented) {\n window.location.href = url;\n }\n }\n };\n this.destroy = listenBySelector(settings.el, 'click', '.fc-event', // on both fg and bg events\n this.handleSegClick);\n }\n}\n\n/*\nTriggers events and adds/removes core classNames when the user's pointer\nenters/leaves event-elements of a component.\n*/\nclass EventHovering extends Interaction {\n constructor(settings) {\n super(settings);\n // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it\n this.handleEventElRemove = (el) => {\n if (el === this.currentSegEl) {\n this.handleSegLeave(null, this.currentSegEl);\n }\n };\n this.handleSegEnter = (ev, segEl) => {\n if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper\n this.currentSegEl = segEl;\n this.triggerEvent('eventMouseEnter', ev, segEl);\n }\n };\n this.handleSegLeave = (ev, segEl) => {\n if (this.currentSegEl) {\n this.currentSegEl = null;\n this.triggerEvent('eventMouseLeave', ev, segEl);\n }\n };\n this.removeHoverListeners = listenToHoverBySelector(settings.el, '.fc-event', // on both fg and bg events\n this.handleSegEnter, this.handleSegLeave);\n }\n destroy() {\n this.removeHoverListeners();\n }\n triggerEvent(publicEvName, ev, segEl) {\n let { component } = this;\n let { context } = component;\n let seg = getElSeg(segEl);\n if (!ev || component.isValidSegDownEl(ev.target)) {\n context.emitter.trigger(publicEvName, {\n el: segEl,\n event: new EventImpl(context, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: context.viewApi,\n });\n }\n }\n}\n\nclass CalendarContent extends PureComponent {\n constructor() {\n super(...arguments);\n this.buildViewContext = memoize(buildViewContext);\n this.buildViewPropTransformers = memoize(buildViewPropTransformers);\n this.buildToolbarProps = memoize(buildToolbarProps);\n this.headerRef = createRef();\n this.footerRef = createRef();\n this.interactionsStore = {};\n // eslint-disable-next-line\n this.state = {\n viewLabelId: getUniqueDomId(),\n };\n // Component Registration\n // -----------------------------------------------------------------------------------------------------------------\n this.registerInteractiveComponent = (component, settingsInput) => {\n let settings = parseInteractionSettings(component, settingsInput);\n let DEFAULT_INTERACTIONS = [\n EventClicking,\n EventHovering,\n ];\n let interactionClasses = DEFAULT_INTERACTIONS.concat(this.props.pluginHooks.componentInteractions);\n let interactions = interactionClasses.map((TheInteractionClass) => new TheInteractionClass(settings));\n this.interactionsStore[component.uid] = interactions;\n interactionSettingsStore[component.uid] = settings;\n };\n this.unregisterInteractiveComponent = (component) => {\n let listeners = this.interactionsStore[component.uid];\n if (listeners) {\n for (let listener of listeners) {\n listener.destroy();\n }\n delete this.interactionsStore[component.uid];\n }\n delete interactionSettingsStore[component.uid];\n };\n // Resizing\n // -----------------------------------------------------------------------------------------------------------------\n this.resizeRunner = new DelayedRunner(() => {\n this.props.emitter.trigger('_resize', true); // should window resizes be considered \"forced\" ?\n this.props.emitter.trigger('windowResize', { view: this.props.viewApi });\n });\n this.handleWindowResize = (ev) => {\n let { options } = this.props;\n if (options.handleWindowResize &&\n ev.target === window // avoid jqui events\n ) {\n this.resizeRunner.request(options.windowResizeDelay);\n }\n };\n }\n /*\n renders INSIDE of an outer div\n */\n render() {\n let { props } = this;\n let { toolbarConfig, options } = props;\n let toolbarProps = this.buildToolbarProps(props.viewSpec, props.dateProfile, props.dateProfileGenerator, props.currentDate, getNow(props.options.now, props.dateEnv), // TODO: use NowTimer????\n props.viewTitle);\n let viewVGrow = false;\n let viewHeight = '';\n let viewAspectRatio;\n if (props.isHeightAuto || props.forPrint) {\n viewHeight = '';\n }\n else if (options.height != null) {\n viewVGrow = true;\n }\n else if (options.contentHeight != null) {\n viewHeight = options.contentHeight;\n }\n else {\n viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall\n }\n let viewContext = this.buildViewContext(props.viewSpec, props.viewApi, props.options, props.dateProfileGenerator, props.dateEnv, props.theme, props.pluginHooks, props.dispatch, props.getCurrentData, props.emitter, props.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent);\n let viewLabelId = (toolbarConfig.header && toolbarConfig.header.hasTitle)\n ? this.state.viewLabelId\n : '';\n return (createElement(ViewContextType.Provider, { value: viewContext },\n toolbarConfig.header && (createElement(Toolbar, Object.assign({ ref: this.headerRef, extraClassName: \"fc-header-toolbar\", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),\n createElement(ViewHarness, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },\n this.renderView(props),\n this.buildAppendContent()),\n toolbarConfig.footer && (createElement(Toolbar, Object.assign({ ref: this.footerRef, extraClassName: \"fc-footer-toolbar\", model: toolbarConfig.footer, titleId: \"\" }, toolbarProps)))));\n }\n componentDidMount() {\n let { props } = this;\n this.calendarInteractions = props.pluginHooks.calendarInteractions\n .map((CalendarInteractionClass) => new CalendarInteractionClass(props));\n window.addEventListener('resize', this.handleWindowResize);\n let { propSetHandlers } = props.pluginHooks;\n for (let propName in propSetHandlers) {\n propSetHandlers[propName](props[propName], props);\n }\n }\n componentDidUpdate(prevProps) {\n let { props } = this;\n let { propSetHandlers } = props.pluginHooks;\n for (let propName in propSetHandlers) {\n if (props[propName] !== prevProps[propName]) {\n propSetHandlers[propName](props[propName], props);\n }\n }\n }\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleWindowResize);\n this.resizeRunner.clear();\n for (let interaction of this.calendarInteractions) {\n interaction.destroy();\n }\n this.props.emitter.trigger('_unmount');\n }\n buildAppendContent() {\n let { props } = this;\n let children = props.pluginHooks.viewContainerAppends.map((buildAppendContent) => buildAppendContent(props));\n return createElement(Fragment, {}, ...children);\n }\n renderView(props) {\n let { pluginHooks } = props;\n let { viewSpec } = props;\n let viewProps = {\n dateProfile: props.dateProfile,\n businessHours: props.businessHours,\n eventStore: props.renderableEventStore,\n eventUiBases: props.eventUiBases,\n dateSelection: props.dateSelection,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize,\n isHeightAuto: props.isHeightAuto,\n forPrint: props.forPrint,\n };\n let transformers = this.buildViewPropTransformers(pluginHooks.viewPropsTransformers);\n for (let transformer of transformers) {\n Object.assign(viewProps, transformer.transform(viewProps, props));\n }\n let ViewComponent = viewSpec.component;\n return (createElement(ViewComponent, Object.assign({}, viewProps)));\n }\n}\nfunction buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentDate, now, title) {\n // don't force any date-profiles to valid date profiles (the `false`) so that we can tell if it's invalid\n let todayInfo = dateProfileGenerator.build(now, undefined, false); // TODO: need `undefined` or else INFINITE LOOP for some reason\n let prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate, false);\n let nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate, false);\n return {\n title,\n activeButton: viewSpec.type,\n navUnit: viewSpec.singleUnit,\n isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),\n isPrevEnabled: prevInfo.isValid,\n isNextEnabled: nextInfo.isValid,\n };\n}\n// Plugin\n// -----------------------------------------------------------------------------------------------------------------\nfunction buildViewPropTransformers(theClasses) {\n return theClasses.map((TheClass) => new TheClass());\n}\n\nclass Calendar extends CalendarImpl {\n constructor(el, optionOverrides = {}) {\n super();\n this.isRendering = false;\n this.isRendered = false;\n this.currentClassNames = [];\n this.customContentRenderId = 0;\n this.handleAction = (action) => {\n // actions we know we want to render immediately\n switch (action.type) {\n case 'SET_EVENT_DRAG':\n case 'SET_EVENT_RESIZE':\n this.renderRunner.tryDrain();\n }\n };\n this.handleData = (data) => {\n this.currentData = data;\n this.renderRunner.request(data.calendarOptions.rerenderDelay);\n };\n this.handleRenderRequest = () => {\n if (this.isRendering) {\n this.isRendered = true;\n let { currentData } = this;\n flushSync(() => {\n render(createElement(CalendarRoot, { options: currentData.calendarOptions, theme: currentData.theme, emitter: currentData.emitter }, (classNames, height, isHeightAuto, forPrint) => {\n this.setClassNames(classNames);\n this.setHeight(height);\n return (createElement(RenderId.Provider, { value: this.customContentRenderId },\n createElement(CalendarContent, Object.assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, currentData))));\n }), this.el);\n });\n }\n else if (this.isRendered) {\n this.isRendered = false;\n render(null, this.el);\n this.setClassNames([]);\n this.setHeight('');\n }\n };\n ensureElHasStyles(el);\n this.el = el;\n this.renderRunner = new DelayedRunner(this.handleRenderRequest);\n new CalendarDataManager({\n optionOverrides,\n calendarApi: this,\n onAction: this.handleAction,\n onData: this.handleData,\n });\n }\n render() {\n let wasRendering = this.isRendering;\n if (!wasRendering) {\n this.isRendering = true;\n }\n else {\n this.customContentRenderId += 1;\n }\n this.renderRunner.request();\n if (wasRendering) {\n this.updateSize();\n }\n }\n destroy() {\n if (this.isRendering) {\n this.isRendering = false;\n this.renderRunner.request();\n }\n }\n updateSize() {\n flushSync(() => {\n super.updateSize();\n });\n }\n batchRendering(func) {\n this.renderRunner.pause('batchRendering');\n func();\n this.renderRunner.resume('batchRendering');\n }\n pauseRendering() {\n this.renderRunner.pause('pauseRendering');\n }\n resumeRendering() {\n this.renderRunner.resume('pauseRendering', true);\n }\n resetOptions(optionOverrides, changedOptionNames) {\n this.currentDataManager.resetOptions(optionOverrides, changedOptionNames);\n }\n setClassNames(classNames) {\n if (!isArraysEqual(classNames, this.currentClassNames)) {\n let { classList } = this.el;\n for (let className of this.currentClassNames) {\n classList.remove(className);\n }\n for (let className of classNames) {\n classList.add(className);\n }\n this.currentClassNames = classNames;\n }\n }\n setHeight(height) {\n applyStyleProp(this.el, 'height', height);\n }\n}\n\nfunction formatDate(dateInput, options = {}) {\n let dateEnv = buildDateEnv(options);\n let formatter = createFormatter(options);\n let dateMeta = dateEnv.createMarkerMeta(dateInput);\n if (!dateMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.format(dateMeta.marker, formatter, {\n forcedTzo: dateMeta.forcedTzo,\n });\n}\nfunction formatRange(startInput, endInput, options) {\n let dateEnv = buildDateEnv(typeof options === 'object' && options ? options : {}); // pass in if non-null object\n let formatter = createFormatter(options);\n let startMeta = dateEnv.createMarkerMeta(startInput);\n let endMeta = dateEnv.createMarkerMeta(endInput);\n if (!startMeta || !endMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, {\n forcedStartTzo: startMeta.forcedTzo,\n forcedEndTzo: endMeta.forcedTzo,\n isEndExclusive: options.isEndExclusive,\n defaultSeparator: BASE_OPTION_DEFAULTS.defaultRangeSeparator,\n });\n}\n// TODO: more DRY and optimized\nfunction buildDateEnv(settings) {\n let locale = buildLocale(settings.locale || 'en', organizeRawLocales([]).map); // TODO: don't hardcode 'en' everywhere\n return new DateEnv(Object.assign(Object.assign({ timeZone: BASE_OPTION_DEFAULTS.timeZone, calendarSystem: 'gregory' }, settings), { locale }));\n}\n\n// HELPERS\n/*\nif nextDayThreshold is specified, slicing is done in an all-day fashion.\nyou can get nextDayThreshold from context.nextDayThreshold\n*/\nfunction sliceEvents(props, allDay) {\n return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;\n}\n\nconst version = '6.1.10';\n\nexport { Calendar, createPlugin, formatDate, formatRange, globalLocales, globalPlugins, sliceEvents, version };\n","import * as preact from 'preact';\nimport { Component, createElement, isValidElement, Fragment } from 'preact';\nimport { createPortal } from 'preact/compat';\n\nconst styleTexts = [];\nconst styleEls = new Map();\nfunction injectStyles(styleText) {\n styleTexts.push(styleText);\n styleEls.forEach((styleEl) => {\n appendStylesTo(styleEl, styleText);\n });\n}\nfunction ensureElHasStyles(el) {\n if (el.isConnected) {\n registerStylesRoot(el.getRootNode());\n }\n}\nfunction registerStylesRoot(rootNode) {\n let styleEl = styleEls.get(rootNode);\n if (!styleEl || !styleEl.isConnected) {\n styleEl = rootNode.querySelector('style[data-fullcalendar]');\n if (!styleEl) {\n styleEl = document.createElement('style');\n styleEl.setAttribute('data-fullcalendar', '');\n const nonce = getNonceValue();\n if (nonce) {\n styleEl.nonce = nonce;\n }\n const parentEl = rootNode === document ? document.head : rootNode;\n const insertBefore = rootNode === document\n ? parentEl.querySelector('script,link[rel=stylesheet],link[as=style],style')\n : parentEl.firstChild;\n parentEl.insertBefore(styleEl, insertBefore);\n }\n styleEls.set(rootNode, styleEl);\n hydrateStylesRoot(styleEl);\n }\n}\nfunction hydrateStylesRoot(styleEl) {\n for (const styleText of styleTexts) {\n appendStylesTo(styleEl, styleText);\n }\n}\nfunction appendStylesTo(styleEl, styleText) {\n const { sheet } = styleEl;\n const ruleCnt = sheet.cssRules.length;\n styleText.split('}').forEach((styleStr, i) => {\n styleStr = styleStr.trim();\n if (styleStr) {\n sheet.insertRule(styleStr + '}', ruleCnt + i);\n }\n });\n}\n// nonce\n// -------------------------------------------------------------------------------------------------\nlet queriedNonceValue;\nfunction getNonceValue() {\n if (queriedNonceValue === undefined) {\n queriedNonceValue = queryNonceValue();\n }\n return queriedNonceValue;\n}\n/*\nTODO: discourage meta tag and instead put nonce attribute on placeholder <style> tag\n*/\nfunction queryNonceValue() {\n const metaWithNonce = document.querySelector('meta[name=\"csp-nonce\"]');\n if (metaWithNonce && metaWithNonce.hasAttribute('content')) {\n return metaWithNonce.getAttribute('content');\n }\n const elWithNonce = document.querySelector('script[nonce]');\n if (elWithNonce) {\n return elWithNonce.nonce || '';\n }\n return '';\n}\n// main\n// -------------------------------------------------------------------------------------------------\nif (typeof document !== 'undefined') {\n registerStylesRoot(document);\n}\n\nvar css_248z = \":root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url(\\\"data:application/x-font-ttf;charset=utf-8;base64,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\\\") format(\\\"truetype\\\")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:1em}.fc-icon-chevron-left:before{content:\\\"\\\\e900\\\"}.fc-icon-chevron-right:before{content:\\\"\\\\e901\\\"}.fc-icon-chevrons-left:before{content:\\\"\\\\e902\\\"}.fc-icon-chevrons-right:before{content:\\\"\\\\e903\\\"}.fc-icon-minus-square:before{content:\\\"\\\\e904\\\"}.fc-icon-plus-square:before{content:\\\"\\\\e905\\\"}.fc-icon-x:before{content:\\\"\\\\e906\\\"}.fc .fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:var(--fc-page-bg-color);position:sticky;z-index:3}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:\\\"\\\";left:-20px;position:absolute;right:-20px;top:-20px}.fc-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:\\\"\\\";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected:after,.fc-event:focus:after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:\\\"\\\";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}\";\ninjectStyles(css_248z);\n\nclass DelayedRunner {\n constructor(drainedOption) {\n this.drainedOption = drainedOption;\n this.isRunning = false;\n this.isDirty = false;\n this.pauseDepths = {};\n this.timeoutId = 0;\n }\n request(delay) {\n this.isDirty = true;\n if (!this.isPaused()) {\n this.clearTimeout();\n if (delay == null) {\n this.tryDrain();\n }\n else {\n this.timeoutId = setTimeout(// NOT OPTIMAL! TODO: look at debounce\n this.tryDrain.bind(this), delay);\n }\n }\n }\n pause(scope = '') {\n let { pauseDepths } = this;\n pauseDepths[scope] = (pauseDepths[scope] || 0) + 1;\n this.clearTimeout();\n }\n resume(scope = '', force) {\n let { pauseDepths } = this;\n if (scope in pauseDepths) {\n if (force) {\n delete pauseDepths[scope];\n }\n else {\n pauseDepths[scope] -= 1;\n let depth = pauseDepths[scope];\n if (depth <= 0) {\n delete pauseDepths[scope];\n }\n }\n this.tryDrain();\n }\n }\n isPaused() {\n return Object.keys(this.pauseDepths).length;\n }\n tryDrain() {\n if (!this.isRunning && !this.isPaused()) {\n this.isRunning = true;\n while (this.isDirty) {\n this.isDirty = false;\n this.drained(); // might set isDirty to true again\n }\n this.isRunning = false;\n }\n }\n clear() {\n this.clearTimeout();\n this.isDirty = false;\n this.pauseDepths = {};\n }\n clearTimeout() {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = 0;\n }\n }\n drained() {\n if (this.drainedOption) {\n this.drainedOption();\n }\n }\n}\n\nfunction removeElement(el) {\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n}\n// Querying\n// ----------------------------------------------------------------------------------------------------------------\nfunction elementClosest(el, selector) {\n if (el.closest) {\n return el.closest(selector);\n // really bad fallback for IE\n // from https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n }\n if (!document.documentElement.contains(el)) {\n return null;\n }\n do {\n if (elementMatches(el, selector)) {\n return el;\n }\n el = (el.parentElement || el.parentNode);\n } while (el !== null && el.nodeType === 1);\n return null;\n}\nfunction elementMatches(el, selector) {\n let method = el.matches || el.matchesSelector || el.msMatchesSelector;\n return method.call(el, selector);\n}\n// accepts multiple subject els\n// returns a real array. good for methods like forEach\n// TODO: accept the document\nfunction findElements(container, selector) {\n let containers = container instanceof HTMLElement ? [container] : container;\n let allMatches = [];\n for (let i = 0; i < containers.length; i += 1) {\n let matches = containers[i].querySelectorAll(selector);\n for (let j = 0; j < matches.length; j += 1) {\n allMatches.push(matches[j]);\n }\n }\n return allMatches;\n}\n// accepts multiple subject els\n// only queries direct child elements // TODO: rename to findDirectChildren!\nfunction findDirectChildren(parent, selector) {\n let parents = parent instanceof HTMLElement ? [parent] : parent;\n let allMatches = [];\n for (let i = 0; i < parents.length; i += 1) {\n let childNodes = parents[i].children; // only ever elements\n for (let j = 0; j < childNodes.length; j += 1) {\n let childNode = childNodes[j];\n if (!selector || elementMatches(childNode, selector)) {\n allMatches.push(childNode);\n }\n }\n }\n return allMatches;\n}\n// Style\n// ----------------------------------------------------------------------------------------------------------------\nconst PIXEL_PROP_RE = /(top|left|right|bottom|width|height)$/i;\nfunction applyStyle(el, props) {\n for (let propName in props) {\n applyStyleProp(el, propName, props[propName]);\n }\n}\nfunction applyStyleProp(el, name, val) {\n if (val == null) {\n el.style[name] = '';\n }\n else if (typeof val === 'number' && PIXEL_PROP_RE.test(name)) {\n el.style[name] = `${val}px`;\n }\n else {\n el.style[name] = val;\n }\n}\n// Event Handling\n// ----------------------------------------------------------------------------------------------------------------\n// if intercepting bubbled events at the document/window/body level,\n// and want to see originating element (the 'target'), use this util instead\n// of `ev.target` because it goes within web-component boundaries.\nfunction getEventTargetViaRoot(ev) {\n var _a, _b;\n return (_b = (_a = ev.composedPath) === null || _a === void 0 ? void 0 : _a.call(ev)[0]) !== null && _b !== void 0 ? _b : ev.target;\n}\n// Unique ID for DOM attribute\nlet guid$1 = 0;\nfunction getUniqueDomId() {\n guid$1 += 1;\n return 'fc-dom-' + guid$1;\n}\n\n// Stops a mouse/touch event from doing it's native browser action\nfunction preventDefault(ev) {\n ev.preventDefault();\n}\n// Event Delegation\n// ----------------------------------------------------------------------------------------------------------------\nfunction buildDelegationHandler(selector, handler) {\n return (ev) => {\n let matchedChild = elementClosest(ev.target, selector);\n if (matchedChild) {\n handler.call(matchedChild, ev, matchedChild);\n }\n };\n}\nfunction listenBySelector(container, eventType, selector, handler) {\n let attachedHandler = buildDelegationHandler(selector, handler);\n container.addEventListener(eventType, attachedHandler);\n return () => {\n container.removeEventListener(eventType, attachedHandler);\n };\n}\nfunction listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) {\n let currentMatchedChild;\n return listenBySelector(container, 'mouseover', selector, (mouseOverEv, matchedChild) => {\n if (matchedChild !== currentMatchedChild) {\n currentMatchedChild = matchedChild;\n onMouseEnter(mouseOverEv, matchedChild);\n let realOnMouseLeave = (mouseLeaveEv) => {\n currentMatchedChild = null;\n onMouseLeave(mouseLeaveEv, matchedChild);\n matchedChild.removeEventListener('mouseleave', realOnMouseLeave);\n };\n // listen to the next mouseleave, and then unattach\n matchedChild.addEventListener('mouseleave', realOnMouseLeave);\n }\n });\n}\n// Animation\n// ----------------------------------------------------------------------------------------------------------------\nconst transitionEventNames = [\n 'webkitTransitionEnd',\n 'otransitionend',\n 'oTransitionEnd',\n 'msTransitionEnd',\n 'transitionend',\n];\n// triggered only when the next single subsequent transition finishes\nfunction whenTransitionDone(el, callback) {\n let realCallback = (ev) => {\n callback(ev);\n transitionEventNames.forEach((eventName) => {\n el.removeEventListener(eventName, realCallback);\n });\n };\n transitionEventNames.forEach((eventName) => {\n el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes\n });\n}\n// ARIA workarounds\n// ----------------------------------------------------------------------------------------------------------------\nfunction createAriaClickAttrs(handler) {\n return Object.assign({ onClick: handler }, createAriaKeyboardAttrs(handler));\n}\nfunction createAriaKeyboardAttrs(handler) {\n return {\n tabIndex: 0,\n onKeyDown(ev) {\n if (ev.key === 'Enter' || ev.key === ' ') {\n handler(ev);\n ev.preventDefault(); // if space, don't scroll down page\n }\n },\n };\n}\n\nlet guidNumber = 0;\nfunction guid() {\n guidNumber += 1;\n return String(guidNumber);\n}\n/* FullCalendar-specific DOM Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n// Make the mouse cursor express that an event is not allowed in the current area\nfunction disableCursor() {\n document.body.classList.add('fc-not-allowed');\n}\n// Returns the mouse cursor to its original look\nfunction enableCursor() {\n document.body.classList.remove('fc-not-allowed');\n}\n/* Selection\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventSelection(el) {\n el.style.userSelect = 'none';\n el.style.webkitUserSelect = 'none';\n el.addEventListener('selectstart', preventDefault);\n}\nfunction allowSelection(el) {\n el.style.userSelect = '';\n el.style.webkitUserSelect = '';\n el.removeEventListener('selectstart', preventDefault);\n}\n/* Context Menu\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventContextMenu(el) {\n el.addEventListener('contextmenu', preventDefault);\n}\nfunction allowContextMenu(el) {\n el.removeEventListener('contextmenu', preventDefault);\n}\nfunction parseFieldSpecs(input) {\n let specs = [];\n let tokens = [];\n let i;\n let token;\n if (typeof input === 'string') {\n tokens = input.split(/\\s*,\\s*/);\n }\n else if (typeof input === 'function') {\n tokens = [input];\n }\n else if (Array.isArray(input)) {\n tokens = input;\n }\n for (i = 0; i < tokens.length; i += 1) {\n token = tokens[i];\n if (typeof token === 'string') {\n specs.push(token.charAt(0) === '-' ?\n { field: token.substring(1), order: -1 } :\n { field: token, order: 1 });\n }\n else if (typeof token === 'function') {\n specs.push({ func: token });\n }\n }\n return specs;\n}\nfunction compareByFieldSpecs(obj0, obj1, fieldSpecs) {\n let i;\n let cmp;\n for (i = 0; i < fieldSpecs.length; i += 1) {\n cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]);\n if (cmp) {\n return cmp;\n }\n }\n return 0;\n}\nfunction compareByFieldSpec(obj0, obj1, fieldSpec) {\n if (fieldSpec.func) {\n return fieldSpec.func(obj0, obj1);\n }\n return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field])\n * (fieldSpec.order || 1);\n}\nfunction flexibleCompare(a, b) {\n if (!a && !b) {\n return 0;\n }\n if (b == null) {\n return -1;\n }\n if (a == null) {\n return 1;\n }\n if (typeof a === 'string' || typeof b === 'string') {\n return String(a).localeCompare(String(b));\n }\n return a - b;\n}\n/* String Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction padStart(val, len) {\n let s = String(val);\n return '000'.substr(0, len - s.length) + s;\n}\nfunction formatWithOrdinals(formatter, args, fallbackText) {\n if (typeof formatter === 'function') {\n return formatter(...args);\n }\n if (typeof formatter === 'string') { // non-blank string\n return args.reduce((str, arg, index) => (str.replace('$' + index, arg || '')), formatter);\n }\n return fallbackText;\n}\n/* Number Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction compareNumbers(a, b) {\n return a - b;\n}\nfunction isInt(n) {\n return n % 1 === 0;\n}\n/* FC-specific DOM dimension stuff\n----------------------------------------------------------------------------------------------------------------------*/\nfunction computeSmallestCellWidth(cellEl) {\n let allWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-frame');\n let contentWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-cushion');\n if (!allWidthEl) {\n throw new Error('needs fc-scrollgrid-shrink-frame className'); // TODO: use const\n }\n if (!contentWidthEl) {\n throw new Error('needs fc-scrollgrid-shrink-cushion className');\n }\n return cellEl.getBoundingClientRect().width - allWidthEl.getBoundingClientRect().width + // the cell padding+border\n contentWidthEl.getBoundingClientRect().width;\n}\n\nconst INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds'];\nconst PARSE_RE = /^(-?)(?:(\\d+)\\.)?(\\d+):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?/;\n// Parsing and Creation\nfunction createDuration(input, unit) {\n if (typeof input === 'string') {\n return parseString(input);\n }\n if (typeof input === 'object' && input) { // non-null object\n return parseObject(input);\n }\n if (typeof input === 'number') {\n return parseObject({ [unit || 'milliseconds']: input });\n }\n return null;\n}\nfunction parseString(s) {\n let m = PARSE_RE.exec(s);\n if (m) {\n let sign = m[1] ? -1 : 1;\n return {\n years: 0,\n months: 0,\n days: sign * (m[2] ? parseInt(m[2], 10) : 0),\n milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours\n (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes\n (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds\n (m[6] ? parseInt(m[6], 10) : 0) // ms\n ),\n };\n }\n return null;\n}\nfunction parseObject(obj) {\n let duration = {\n years: obj.years || obj.year || 0,\n months: obj.months || obj.month || 0,\n days: obj.days || obj.day || 0,\n milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours\n (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes\n (obj.seconds || obj.second || 0) * 1000 + // seconds\n (obj.milliseconds || obj.millisecond || obj.ms || 0), // ms\n };\n let weeks = obj.weeks || obj.week;\n if (weeks) {\n duration.days += weeks * 7;\n duration.specifiedWeeks = true;\n }\n return duration;\n}\n// Equality\nfunction durationsEqual(d0, d1) {\n return d0.years === d1.years &&\n d0.months === d1.months &&\n d0.days === d1.days &&\n d0.milliseconds === d1.milliseconds;\n}\nfunction asCleanDays(dur) {\n if (!dur.years && !dur.months && !dur.milliseconds) {\n return dur.days;\n }\n return 0;\n}\n// Simple Math\nfunction addDurations(d0, d1) {\n return {\n years: d0.years + d1.years,\n months: d0.months + d1.months,\n days: d0.days + d1.days,\n milliseconds: d0.milliseconds + d1.milliseconds,\n };\n}\nfunction subtractDurations(d1, d0) {\n return {\n years: d1.years - d0.years,\n months: d1.months - d0.months,\n days: d1.days - d0.days,\n milliseconds: d1.milliseconds - d0.milliseconds,\n };\n}\nfunction multiplyDuration(d, n) {\n return {\n years: d.years * n,\n months: d.months * n,\n days: d.days * n,\n milliseconds: d.milliseconds * n,\n };\n}\n// Conversions\n// \"Rough\" because they are based on average-case Gregorian months/years\nfunction asRoughYears(dur) {\n return asRoughDays(dur) / 365;\n}\nfunction asRoughMonths(dur) {\n return asRoughDays(dur) / 30;\n}\nfunction asRoughDays(dur) {\n return asRoughMs(dur) / 864e5;\n}\nfunction asRoughMinutes(dur) {\n return asRoughMs(dur) / (1000 * 60);\n}\nfunction asRoughSeconds(dur) {\n return asRoughMs(dur) / 1000;\n}\nfunction asRoughMs(dur) {\n return dur.years * (365 * 864e5) +\n dur.months * (30 * 864e5) +\n dur.days * 864e5 +\n dur.milliseconds;\n}\n// Advanced Math\nfunction wholeDivideDurations(numerator, denominator) {\n let res = null;\n for (let i = 0; i < INTERNAL_UNITS.length; i += 1) {\n let unit = INTERNAL_UNITS[i];\n if (denominator[unit]) {\n let localRes = numerator[unit] / denominator[unit];\n if (!isInt(localRes) || (res !== null && res !== localRes)) {\n return null;\n }\n res = localRes;\n }\n else if (numerator[unit]) {\n // needs to divide by something but can't!\n return null;\n }\n }\n return res;\n}\nfunction greatestDurationDenominator(dur) {\n let ms = dur.milliseconds;\n if (ms) {\n if (ms % 1000 !== 0) {\n return { unit: 'millisecond', value: ms };\n }\n if (ms % (1000 * 60) !== 0) {\n return { unit: 'second', value: ms / 1000 };\n }\n if (ms % (1000 * 60 * 60) !== 0) {\n return { unit: 'minute', value: ms / (1000 * 60) };\n }\n if (ms) {\n return { unit: 'hour', value: ms / (1000 * 60 * 60) };\n }\n }\n if (dur.days) {\n if (dur.specifiedWeeks && dur.days % 7 === 0) {\n return { unit: 'week', value: dur.days / 7 };\n }\n return { unit: 'day', value: dur.days };\n }\n if (dur.months) {\n return { unit: 'month', value: dur.months };\n }\n if (dur.years) {\n return { unit: 'year', value: dur.years };\n }\n return { unit: 'millisecond', value: 0 };\n}\n\n// TODO: new util arrayify?\nfunction removeExact(array, exactVal) {\n let removeCnt = 0;\n let i = 0;\n while (i < array.length) {\n if (array[i] === exactVal) {\n array.splice(i, 1);\n removeCnt += 1;\n }\n else {\n i += 1;\n }\n }\n return removeCnt;\n}\nfunction isArraysEqual(a0, a1, equalityFunc) {\n if (a0 === a1) {\n return true;\n }\n let len = a0.length;\n let i;\n if (len !== a1.length) { // not array? or not same length?\n return false;\n }\n for (i = 0; i < len; i += 1) {\n if (!(equalityFunc ? equalityFunc(a0[i], a1[i]) : a0[i] === a1[i])) {\n return false;\n }\n }\n return true;\n}\n\nconst DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\n// Adding\nfunction addWeeks(m, n) {\n let a = dateToUtcArray(m);\n a[2] += n * 7;\n return arrayToUtcDate(a);\n}\nfunction addDays(m, n) {\n let a = dateToUtcArray(m);\n a[2] += n;\n return arrayToUtcDate(a);\n}\nfunction addMs(m, n) {\n let a = dateToUtcArray(m);\n a[6] += n;\n return arrayToUtcDate(a);\n}\n// Diffing (all return floats)\n// TODO: why not use ranges?\nfunction diffWeeks(m0, m1) {\n return diffDays(m0, m1) / 7;\n}\nfunction diffDays(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24);\n}\nfunction diffHours(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60);\n}\nfunction diffMinutes(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60);\n}\nfunction diffSeconds(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / 1000;\n}\nfunction diffDayAndTime(m0, m1) {\n let m0day = startOfDay(m0);\n let m1day = startOfDay(m1);\n return {\n years: 0,\n months: 0,\n days: Math.round(diffDays(m0day, m1day)),\n milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()),\n };\n}\n// Diffing Whole Units\nfunction diffWholeWeeks(m0, m1) {\n let d = diffWholeDays(m0, m1);\n if (d !== null && d % 7 === 0) {\n return d / 7;\n }\n return null;\n}\nfunction diffWholeDays(m0, m1) {\n if (timeAsMs(m0) === timeAsMs(m1)) {\n return Math.round(diffDays(m0, m1));\n }\n return null;\n}\n// Start-Of\nfunction startOfDay(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n ]);\n}\nfunction startOfHour(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n ]);\n}\nfunction startOfMinute(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes(),\n ]);\n}\nfunction startOfSecond(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes(),\n m.getUTCSeconds(),\n ]);\n}\n// Week Computation\nfunction weekOfYear(marker, dow, doy) {\n let y = marker.getUTCFullYear();\n let w = weekOfGivenYear(marker, y, dow, doy);\n if (w < 1) {\n return weekOfGivenYear(marker, y - 1, dow, doy);\n }\n let nextW = weekOfGivenYear(marker, y + 1, dow, doy);\n if (nextW >= 1) {\n return Math.min(w, nextW);\n }\n return w;\n}\nfunction weekOfGivenYear(marker, year, dow, doy) {\n let firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]);\n let dayStart = startOfDay(marker);\n let days = Math.round(diffDays(firstWeekStart, dayStart));\n return Math.floor(days / 7) + 1; // zero-indexed\n}\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n let fwd = 7 + dow - doy;\n // first-week day local weekday -- which local weekday is fwd\n let fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n}\n// Array Conversion\nfunction dateToLocalArray(date) {\n return [\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n ];\n}\nfunction arrayToLocalDate(a) {\n return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month\n a[3] || 0, a[4] || 0, a[5] || 0);\n}\nfunction dateToUtcArray(date) {\n return [\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds(),\n ];\n}\nfunction arrayToUtcDate(a) {\n // according to web standards (and Safari), a month index is required.\n // massage if only given a year.\n if (a.length === 1) {\n a = a.concat([0]);\n }\n return new Date(Date.UTC(...a));\n}\n// Other Utils\nfunction isValidDate(m) {\n return !isNaN(m.valueOf());\n}\nfunction timeAsMs(m) {\n return m.getUTCHours() * 1000 * 60 * 60 +\n m.getUTCMinutes() * 1000 * 60 +\n m.getUTCSeconds() * 1000 +\n m.getUTCMilliseconds();\n}\n\n// timeZoneOffset is in minutes\nfunction buildIsoString(marker, timeZoneOffset, stripZeroTime = false) {\n let s = marker.toISOString();\n s = s.replace('.000', '');\n if (stripZeroTime) {\n s = s.replace('T00:00:00Z', '');\n }\n if (s.length > 10) { // time part wasn't stripped, can add timezone info\n if (timeZoneOffset == null) {\n s = s.replace('Z', '');\n }\n else if (timeZoneOffset !== 0) {\n s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true));\n }\n // otherwise, its UTC-0 and we want to keep the Z\n }\n return s;\n}\n// formats the date, but with no time part\n// TODO: somehow merge with buildIsoString and stripZeroTime\n// TODO: rename. omit \"string\"\nfunction formatDayString(marker) {\n return marker.toISOString().replace(/T.*$/, '');\n}\nfunction formatIsoMonthStr(marker) {\n return marker.toISOString().match(/^\\d{4}-\\d{2}/)[0];\n}\n// TODO: use Date::toISOString and use everything after the T?\nfunction formatIsoTimeString(marker) {\n return padStart(marker.getUTCHours(), 2) + ':' +\n padStart(marker.getUTCMinutes(), 2) + ':' +\n padStart(marker.getUTCSeconds(), 2);\n}\nfunction formatTimeZoneOffset(minutes, doIso = false) {\n let sign = minutes < 0 ? '-' : '+';\n let abs = Math.abs(minutes);\n let hours = Math.floor(abs / 60);\n let mins = Math.round(abs % 60);\n if (doIso) {\n return `${sign + padStart(hours, 2)}:${padStart(mins, 2)}`;\n }\n return `GMT${sign}${hours}${mins ? `:${padStart(mins, 2)}` : ''}`;\n}\n\nfunction memoize(workerFunc, resEquality, teardownFunc) {\n let currentArgs;\n let currentRes;\n return function (...newArgs) {\n if (!currentArgs) {\n currentRes = workerFunc.apply(this, newArgs);\n }\n else if (!isArraysEqual(currentArgs, newArgs)) {\n if (teardownFunc) {\n teardownFunc(currentRes);\n }\n let res = workerFunc.apply(this, newArgs);\n if (!resEquality || !resEquality(res, currentRes)) {\n currentRes = res;\n }\n }\n currentArgs = newArgs;\n return currentRes;\n };\n}\nfunction memoizeObjArg(workerFunc, resEquality, teardownFunc) {\n let currentArg;\n let currentRes;\n return (newArg) => {\n if (!currentArg) {\n currentRes = workerFunc.call(this, newArg);\n }\n else if (!isPropsEqual(currentArg, newArg)) {\n if (teardownFunc) {\n teardownFunc(currentRes);\n }\n let res = workerFunc.call(this, newArg);\n if (!resEquality || !resEquality(res, currentRes)) {\n currentRes = res;\n }\n }\n currentArg = newArg;\n return currentRes;\n };\n}\nfunction memoizeArraylike(// used at all?\nworkerFunc, resEquality, teardownFunc) {\n let currentArgSets = [];\n let currentResults = [];\n return (newArgSets) => {\n let currentLen = currentArgSets.length;\n let newLen = newArgSets.length;\n let i = 0;\n for (; i < currentLen; i += 1) {\n if (!newArgSets[i]) { // one of the old sets no longer exists\n if (teardownFunc) {\n teardownFunc(currentResults[i]);\n }\n }\n else if (!isArraysEqual(currentArgSets[i], newArgSets[i])) {\n if (teardownFunc) {\n teardownFunc(currentResults[i]);\n }\n let res = workerFunc.apply(this, newArgSets[i]);\n if (!resEquality || !resEquality(res, currentResults[i])) {\n currentResults[i] = res;\n }\n }\n }\n for (; i < newLen; i += 1) {\n currentResults[i] = workerFunc.apply(this, newArgSets[i]);\n }\n currentArgSets = newArgSets;\n currentResults.splice(newLen); // remove excess\n return currentResults;\n };\n}\nfunction memoizeHashlike(workerFunc, resEquality, teardownFunc) {\n let currentArgHash = {};\n let currentResHash = {};\n return (newArgHash) => {\n let newResHash = {};\n for (let key in newArgHash) {\n if (!currentResHash[key]) {\n newResHash[key] = workerFunc.apply(this, newArgHash[key]);\n }\n else if (!isArraysEqual(currentArgHash[key], newArgHash[key])) {\n if (teardownFunc) {\n teardownFunc(currentResHash[key]);\n }\n let res = workerFunc.apply(this, newArgHash[key]);\n newResHash[key] = (resEquality && resEquality(res, currentResHash[key]))\n ? currentResHash[key]\n : res;\n }\n else {\n newResHash[key] = currentResHash[key];\n }\n }\n currentArgHash = newArgHash;\n currentResHash = newResHash;\n return newResHash;\n };\n}\n\nconst EXTENDED_SETTINGS_AND_SEVERITIES = {\n week: 3,\n separator: 0,\n omitZeroMinute: 0,\n meridiem: 0,\n omitCommas: 0,\n};\nconst STANDARD_DATE_PROP_SEVERITIES = {\n timeZoneName: 7,\n era: 6,\n year: 5,\n month: 4,\n day: 2,\n weekday: 2,\n hour: 1,\n minute: 1,\n second: 1,\n};\nconst MERIDIEM_RE = /\\s*([ap])\\.?m\\.?/i; // eats up leading spaces too\nconst COMMA_RE = /,/g; // we need re for globalness\nconst MULTI_SPACE_RE = /\\s+/g;\nconst LTR_RE = /\\u200e/g; // control character\nconst UTC_RE = /UTC|GMT/;\nclass NativeFormatter {\n constructor(formatSettings) {\n let standardDateProps = {};\n let extendedSettings = {};\n let severity = 0;\n for (let name in formatSettings) {\n if (name in EXTENDED_SETTINGS_AND_SEVERITIES) {\n extendedSettings[name] = formatSettings[name];\n severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name], severity);\n }\n else {\n standardDateProps[name] = formatSettings[name];\n if (name in STANDARD_DATE_PROP_SEVERITIES) { // TODO: what about hour12? no severity\n severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name], severity);\n }\n }\n }\n this.standardDateProps = standardDateProps;\n this.extendedSettings = extendedSettings;\n this.severity = severity;\n this.buildFormattingFunc = memoize(buildFormattingFunc);\n }\n format(date, context) {\n return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date);\n }\n formatRange(start, end, context, betterDefaultSeparator) {\n let { standardDateProps, extendedSettings } = this;\n let diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem);\n if (!diffSeverity) {\n return this.format(start, context);\n }\n let biggestUnitForPartial = diffSeverity;\n if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time\n (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') &&\n (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') &&\n (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) {\n biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time\n }\n let full0 = this.format(start, context);\n let full1 = this.format(end, context);\n if (full0 === full1) {\n return full0;\n }\n let partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial);\n let partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context);\n let partial0 = partialFormattingFunc(start);\n let partial1 = partialFormattingFunc(end);\n let insertion = findCommonInsertion(full0, partial0, full1, partial1);\n let separator = extendedSettings.separator || betterDefaultSeparator || context.defaultSeparator || '';\n if (insertion) {\n return insertion.before + partial0 + separator + partial1 + insertion.after;\n }\n return full0 + separator + full1;\n }\n getLargestUnit() {\n switch (this.severity) {\n case 7:\n case 6:\n case 5:\n return 'year';\n case 4:\n return 'month';\n case 3:\n return 'week';\n case 2:\n return 'day';\n default:\n return 'time'; // really?\n }\n }\n}\nfunction buildFormattingFunc(standardDateProps, extendedSettings, context) {\n let standardDatePropCnt = Object.keys(standardDateProps).length;\n if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') {\n return (date) => (formatTimeZoneOffset(date.timeZoneOffset));\n }\n if (standardDatePropCnt === 0 && extendedSettings.week) {\n return (date) => (formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.weekTextLong, context.locale, extendedSettings.week));\n }\n return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);\n}\nfunction buildNativeFormattingFunc(standardDateProps, extendedSettings, context) {\n standardDateProps = Object.assign({}, standardDateProps); // copy\n extendedSettings = Object.assign({}, extendedSettings); // copy\n sanitizeSettings(standardDateProps, extendedSettings);\n standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers\n let normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps);\n let zeroFormat; // needed?\n if (extendedSettings.omitZeroMinute) {\n let zeroProps = Object.assign({}, standardDateProps);\n delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings\n zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps);\n }\n return (date) => {\n let { marker } = date;\n let format;\n if (zeroFormat && !marker.getUTCMinutes()) {\n format = zeroFormat;\n }\n else {\n format = normalFormat;\n }\n let s = format.format(marker);\n return postProcess(s, date, standardDateProps, extendedSettings, context);\n };\n}\nfunction sanitizeSettings(standardDateProps, extendedSettings) {\n // deal with a browser inconsistency where formatting the timezone\n // requires that the hour/minute be present.\n if (standardDateProps.timeZoneName) {\n if (!standardDateProps.hour) {\n standardDateProps.hour = '2-digit';\n }\n if (!standardDateProps.minute) {\n standardDateProps.minute = '2-digit';\n }\n }\n // only support short timezone names\n if (standardDateProps.timeZoneName === 'long') {\n standardDateProps.timeZoneName = 'short';\n }\n // if requesting to display seconds, MUST display minutes\n if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) {\n delete extendedSettings.omitZeroMinute;\n }\n}\nfunction postProcess(s, date, standardDateProps, extendedSettings, context) {\n s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes\n if (standardDateProps.timeZoneName === 'short') {\n s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ?\n 'UTC' : // important to normalize for IE, which does \"GMT\"\n formatTimeZoneOffset(date.timeZoneOffset));\n }\n if (extendedSettings.omitCommas) {\n s = s.replace(COMMA_RE, '').trim();\n }\n if (extendedSettings.omitZeroMinute) {\n s = s.replace(':00', ''); // zeroFormat doesn't always achieve this\n }\n // ^ do anything that might create adjacent spaces before this point,\n // because MERIDIEM_RE likes to eat up loading spaces\n if (extendedSettings.meridiem === false) {\n s = s.replace(MERIDIEM_RE, '').trim();\n }\n else if (extendedSettings.meridiem === 'narrow') { // a/p\n s = s.replace(MERIDIEM_RE, (m0, m1) => m1.toLocaleLowerCase());\n }\n else if (extendedSettings.meridiem === 'short') { // am/pm\n s = s.replace(MERIDIEM_RE, (m0, m1) => `${m1.toLocaleLowerCase()}m`);\n }\n else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase\n s = s.replace(MERIDIEM_RE, (m0) => m0.toLocaleLowerCase());\n }\n s = s.replace(MULTI_SPACE_RE, ' ');\n s = s.trim();\n return s;\n}\nfunction injectTzoStr(s, tzoStr) {\n let replaced = false;\n s = s.replace(UTC_RE, () => {\n replaced = true;\n return tzoStr;\n });\n // IE11 doesn't include UTC/GMT in the original string, so append to end\n if (!replaced) {\n s += ` ${tzoStr}`;\n }\n return s;\n}\nfunction formatWeekNumber(num, weekText, weekTextLong, locale, display) {\n let parts = [];\n if (display === 'long') {\n parts.push(weekTextLong);\n }\n else if (display === 'short' || display === 'narrow') {\n parts.push(weekText);\n }\n if (display === 'long' || display === 'short') {\n parts.push(' ');\n }\n parts.push(locale.simpleNumberFormat.format(num));\n if (locale.options.direction === 'rtl') { // TODO: use control characters instead?\n parts.reverse();\n }\n return parts.join('');\n}\n// Range Formatting Utils\n// 0 = exactly the same\n// 1 = different by time\n// and bigger\nfunction computeMarkerDiffSeverity(d0, d1, ca) {\n if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) {\n return 5;\n }\n if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) {\n return 4;\n }\n if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) {\n return 2;\n }\n if (timeAsMs(d0) !== timeAsMs(d1)) {\n return 1;\n }\n return 0;\n}\nfunction computePartialFormattingOptions(options, biggestUnit) {\n let partialOptions = {};\n for (let name in options) {\n if (!(name in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone)\n STANDARD_DATE_PROP_SEVERITIES[name] <= biggestUnit) {\n partialOptions[name] = options[name];\n }\n }\n return partialOptions;\n}\nfunction findCommonInsertion(full0, partial0, full1, partial1) {\n let i0 = 0;\n while (i0 < full0.length) {\n let found0 = full0.indexOf(partial0, i0);\n if (found0 === -1) {\n break;\n }\n let before0 = full0.substr(0, found0);\n i0 = found0 + partial0.length;\n let after0 = full0.substr(i0);\n let i1 = 0;\n while (i1 < full1.length) {\n let found1 = full1.indexOf(partial1, i1);\n if (found1 === -1) {\n break;\n }\n let before1 = full1.substr(0, found1);\n i1 = found1 + partial1.length;\n let after1 = full1.substr(i1);\n if (before0 === before1 && after0 === after1) {\n return {\n before: before0,\n after: after0,\n };\n }\n }\n }\n return null;\n}\n\nfunction expandZonedMarker(dateInfo, calendarSystem) {\n let a = calendarSystem.markerToArray(dateInfo.marker);\n return {\n marker: dateInfo.marker,\n timeZoneOffset: dateInfo.timeZoneOffset,\n array: a,\n year: a[0],\n month: a[1],\n day: a[2],\n hour: a[3],\n minute: a[4],\n second: a[5],\n millisecond: a[6],\n };\n}\n\nfunction createVerboseFormattingArg(start, end, context, betterDefaultSeparator) {\n let startInfo = expandZonedMarker(start, context.calendarSystem);\n let endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null;\n return {\n date: startInfo,\n start: startInfo,\n end: endInfo,\n timeZone: context.timeZone,\n localeCodes: context.locale.codes,\n defaultSeparator: betterDefaultSeparator || context.defaultSeparator,\n };\n}\n\n/*\nTODO: fix the terminology of \"formatter\" vs \"formatting func\"\n*/\n/*\nAt the time of instantiation, this object does not know which cmd-formatting system it will use.\nIt receives this at the time of formatting, as a setting.\n*/\nclass CmdFormatter {\n constructor(cmdStr) {\n this.cmdStr = cmdStr;\n }\n format(date, context, betterDefaultSeparator) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n }\n formatRange(start, end, context, betterDefaultSeparator) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n }\n}\n\nclass FuncFormatter {\n constructor(func) {\n this.func = func;\n }\n format(date, context, betterDefaultSeparator) {\n return this.func(createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n }\n formatRange(start, end, context, betterDefaultSeparator) {\n return this.func(createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n }\n}\n\nfunction createFormatter(input) {\n if (typeof input === 'object' && input) { // non-null object\n return new NativeFormatter(input);\n }\n if (typeof input === 'string') {\n return new CmdFormatter(input);\n }\n if (typeof input === 'function') {\n return new FuncFormatter(input);\n }\n return null;\n}\n\n// base options\n// ------------\nconst BASE_OPTION_REFINERS = {\n navLinkDayClick: identity,\n navLinkWeekClick: identity,\n duration: createDuration,\n bootstrapFontAwesome: identity,\n buttonIcons: identity,\n customButtons: identity,\n defaultAllDayEventDuration: createDuration,\n defaultTimedEventDuration: createDuration,\n nextDayThreshold: createDuration,\n scrollTime: createDuration,\n scrollTimeReset: Boolean,\n slotMinTime: createDuration,\n slotMaxTime: createDuration,\n dayPopoverFormat: createFormatter,\n slotDuration: createDuration,\n snapDuration: createDuration,\n headerToolbar: identity,\n footerToolbar: identity,\n defaultRangeSeparator: String,\n titleRangeSeparator: String,\n forceEventDuration: Boolean,\n dayHeaders: Boolean,\n dayHeaderFormat: createFormatter,\n dayHeaderClassNames: identity,\n dayHeaderContent: identity,\n dayHeaderDidMount: identity,\n dayHeaderWillUnmount: identity,\n dayCellClassNames: identity,\n dayCellContent: identity,\n dayCellDidMount: identity,\n dayCellWillUnmount: identity,\n initialView: String,\n aspectRatio: Number,\n weekends: Boolean,\n weekNumberCalculation: identity,\n weekNumbers: Boolean,\n weekNumberClassNames: identity,\n weekNumberContent: identity,\n weekNumberDidMount: identity,\n weekNumberWillUnmount: identity,\n editable: Boolean,\n viewClassNames: identity,\n viewDidMount: identity,\n viewWillUnmount: identity,\n nowIndicator: Boolean,\n nowIndicatorClassNames: identity,\n nowIndicatorContent: identity,\n nowIndicatorDidMount: identity,\n nowIndicatorWillUnmount: identity,\n showNonCurrentDates: Boolean,\n lazyFetching: Boolean,\n startParam: String,\n endParam: String,\n timeZoneParam: String,\n timeZone: String,\n locales: identity,\n locale: identity,\n themeSystem: String,\n dragRevertDuration: Number,\n dragScroll: Boolean,\n allDayMaintainDuration: Boolean,\n unselectAuto: Boolean,\n dropAccept: identity,\n eventOrder: parseFieldSpecs,\n eventOrderStrict: Boolean,\n handleWindowResize: Boolean,\n windowResizeDelay: Number,\n longPressDelay: Number,\n eventDragMinDistance: Number,\n expandRows: Boolean,\n height: identity,\n contentHeight: identity,\n direction: String,\n weekNumberFormat: createFormatter,\n eventResizableFromStart: Boolean,\n displayEventTime: Boolean,\n displayEventEnd: Boolean,\n weekText: String,\n weekTextLong: String,\n progressiveEventRendering: Boolean,\n businessHours: identity,\n initialDate: identity,\n now: identity,\n eventDataTransform: identity,\n stickyHeaderDates: identity,\n stickyFooterScrollbar: identity,\n viewHeight: identity,\n defaultAllDay: Boolean,\n eventSourceFailure: identity,\n eventSourceSuccess: identity,\n eventDisplay: String,\n eventStartEditable: Boolean,\n eventDurationEditable: Boolean,\n eventOverlap: identity,\n eventConstraint: identity,\n eventAllow: identity,\n eventBackgroundColor: String,\n eventBorderColor: String,\n eventTextColor: String,\n eventColor: String,\n eventClassNames: identity,\n eventContent: identity,\n eventDidMount: identity,\n eventWillUnmount: identity,\n selectConstraint: identity,\n selectOverlap: identity,\n selectAllow: identity,\n droppable: Boolean,\n unselectCancel: String,\n slotLabelFormat: identity,\n slotLaneClassNames: identity,\n slotLaneContent: identity,\n slotLaneDidMount: identity,\n slotLaneWillUnmount: identity,\n slotLabelClassNames: identity,\n slotLabelContent: identity,\n slotLabelDidMount: identity,\n slotLabelWillUnmount: identity,\n dayMaxEvents: identity,\n dayMaxEventRows: identity,\n dayMinWidth: Number,\n slotLabelInterval: createDuration,\n allDayText: String,\n allDayClassNames: identity,\n allDayContent: identity,\n allDayDidMount: identity,\n allDayWillUnmount: identity,\n slotMinWidth: Number,\n navLinks: Boolean,\n eventTimeFormat: createFormatter,\n rerenderDelay: Number,\n moreLinkText: identity,\n moreLinkHint: identity,\n selectMinDistance: Number,\n selectable: Boolean,\n selectLongPressDelay: Number,\n eventLongPressDelay: Number,\n selectMirror: Boolean,\n eventMaxStack: Number,\n eventMinHeight: Number,\n eventMinWidth: Number,\n eventShortHeight: Number,\n slotEventOverlap: Boolean,\n plugins: identity,\n firstDay: Number,\n dayCount: Number,\n dateAlignment: String,\n dateIncrement: createDuration,\n hiddenDays: identity,\n fixedWeekCount: Boolean,\n validRange: identity,\n visibleRange: identity,\n titleFormat: identity,\n eventInteractive: Boolean,\n // only used by list-view, but languages define the value, so we need it in base options\n noEventsText: String,\n viewHint: identity,\n navLinkHint: identity,\n closeHint: String,\n timeHint: String,\n eventHint: String,\n moreLinkClick: identity,\n moreLinkClassNames: identity,\n moreLinkContent: identity,\n moreLinkDidMount: identity,\n moreLinkWillUnmount: identity,\n monthStartFormat: createFormatter,\n // for connectors\n // (can't be part of plugin system b/c must be provided at runtime)\n handleCustomRendering: identity,\n customRenderingMetaMap: identity,\n customRenderingReplaces: Boolean,\n};\n// do NOT give a type here. need `typeof BASE_OPTION_DEFAULTS` to give real results.\n// raw values.\nconst BASE_OPTION_DEFAULTS = {\n eventDisplay: 'auto',\n defaultRangeSeparator: ' - ',\n titleRangeSeparator: ' \\u2013 ',\n defaultTimedEventDuration: '01:00:00',\n defaultAllDayEventDuration: { day: 1 },\n forceEventDuration: false,\n nextDayThreshold: '00:00:00',\n dayHeaders: true,\n initialView: '',\n aspectRatio: 1.35,\n headerToolbar: {\n start: 'title',\n center: '',\n end: 'today prev,next',\n },\n weekends: true,\n weekNumbers: false,\n weekNumberCalculation: 'local',\n editable: false,\n nowIndicator: false,\n scrollTime: '06:00:00',\n scrollTimeReset: true,\n slotMinTime: '00:00:00',\n slotMaxTime: '24:00:00',\n showNonCurrentDates: true,\n lazyFetching: true,\n startParam: 'start',\n endParam: 'end',\n timeZoneParam: 'timeZone',\n timeZone: 'local',\n locales: [],\n locale: '',\n themeSystem: 'standard',\n dragRevertDuration: 500,\n dragScroll: true,\n allDayMaintainDuration: false,\n unselectAuto: true,\n dropAccept: '*',\n eventOrder: 'start,-duration,allDay,title',\n dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' },\n handleWindowResize: true,\n windowResizeDelay: 100,\n longPressDelay: 1000,\n eventDragMinDistance: 5,\n expandRows: false,\n navLinks: false,\n selectable: false,\n eventMinHeight: 15,\n eventMinWidth: 30,\n eventShortHeight: 30,\n monthStartFormat: { month: 'long', day: 'numeric' },\n};\n// calendar listeners\n// ------------------\nconst CALENDAR_LISTENER_REFINERS = {\n datesSet: identity,\n eventsSet: identity,\n eventAdd: identity,\n eventChange: identity,\n eventRemove: identity,\n windowResize: identity,\n eventClick: identity,\n eventMouseEnter: identity,\n eventMouseLeave: identity,\n select: identity,\n unselect: identity,\n loading: identity,\n // internal\n _unmount: identity,\n _beforeprint: identity,\n _afterprint: identity,\n _noEventDrop: identity,\n _noEventResize: identity,\n _resize: identity,\n _scrollRequest: identity,\n};\n// calendar-specific options\n// -------------------------\nconst CALENDAR_OPTION_REFINERS = {\n buttonText: identity,\n buttonHints: identity,\n views: identity,\n plugins: identity,\n initialEvents: identity,\n events: identity,\n eventSources: identity,\n};\nconst COMPLEX_OPTION_COMPARATORS = {\n headerToolbar: isMaybeObjectsEqual,\n footerToolbar: isMaybeObjectsEqual,\n buttonText: isMaybeObjectsEqual,\n buttonHints: isMaybeObjectsEqual,\n buttonIcons: isMaybeObjectsEqual,\n dateIncrement: isMaybeObjectsEqual,\n plugins: isMaybeArraysEqual,\n events: isMaybeArraysEqual,\n eventSources: isMaybeArraysEqual,\n ['resources']: isMaybeArraysEqual,\n};\nfunction isMaybeObjectsEqual(a, b) {\n if (typeof a === 'object' && typeof b === 'object' && a && b) { // both non-null objects\n return isPropsEqual(a, b);\n }\n return a === b;\n}\nfunction isMaybeArraysEqual(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n return isArraysEqual(a, b);\n }\n return a === b;\n}\n// view-specific options\n// ---------------------\nconst VIEW_OPTION_REFINERS = {\n type: String,\n component: identity,\n buttonText: String,\n buttonTextKey: String,\n dateProfileGeneratorClass: identity,\n usesMinMaxTime: Boolean,\n classNames: identity,\n content: identity,\n didMount: identity,\n willUnmount: identity,\n};\n// util funcs\n// ----------------------------------------------------------------------------------------------------\nfunction mergeRawOptions(optionSets) {\n return mergeProps(optionSets, COMPLEX_OPTION_COMPARATORS);\n}\nfunction refineProps(input, refiners) {\n let refined = {};\n let extra = {};\n for (let propName in refiners) {\n if (propName in input) {\n refined[propName] = refiners[propName](input[propName]);\n }\n }\n for (let propName in input) {\n if (!(propName in refiners)) {\n extra[propName] = input[propName];\n }\n }\n return { refined, extra };\n}\nfunction identity(raw) {\n return raw;\n}\n\nconst { hasOwnProperty } = Object.prototype;\n// Merges an array of objects into a single object.\n// The second argument allows for an array of property names who's object values will be merged together.\nfunction mergeProps(propObjs, complexPropsMap) {\n let dest = {};\n if (complexPropsMap) {\n for (let name in complexPropsMap) {\n if (complexPropsMap[name] === isMaybeObjectsEqual) { // implies that it's object-mergeable\n let complexObjs = [];\n // collect the trailing object values, stopping when a non-object is discovered\n for (let i = propObjs.length - 1; i >= 0; i -= 1) {\n let val = propObjs[i][name];\n if (typeof val === 'object' && val) { // non-null object\n complexObjs.unshift(val);\n }\n else if (val !== undefined) {\n dest[name] = val; // if there were no objects, this value will be used\n break;\n }\n }\n // if the trailing values were objects, use the merged value\n if (complexObjs.length) {\n dest[name] = mergeProps(complexObjs);\n }\n }\n }\n }\n // copy values into the destination, going from last to first\n for (let i = propObjs.length - 1; i >= 0; i -= 1) {\n let props = propObjs[i];\n for (let name in props) {\n if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign\n dest[name] = props[name];\n }\n }\n }\n return dest;\n}\nfunction filterHash(hash, func) {\n let filtered = {};\n for (let key in hash) {\n if (func(hash[key], key)) {\n filtered[key] = hash[key];\n }\n }\n return filtered;\n}\nfunction mapHash(hash, func) {\n let newHash = {};\n for (let key in hash) {\n newHash[key] = func(hash[key], key);\n }\n return newHash;\n}\nfunction arrayToHash(a) {\n let hash = {};\n for (let item of a) {\n hash[item] = true;\n }\n return hash;\n}\n// TODO: reassess browser support\n// https://caniuse.com/?search=object.values\nfunction hashValuesToArray(obj) {\n let a = [];\n for (let key in obj) {\n a.push(obj[key]);\n }\n return a;\n}\nfunction isPropsEqual(obj0, obj1) {\n if (obj0 === obj1) {\n return true;\n }\n for (let key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n return false;\n }\n }\n }\n for (let key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n return false;\n }\n }\n }\n return true;\n}\nconst HANDLER_RE = /^on[A-Z]/;\nfunction isNonHandlerPropsEqual(obj0, obj1) {\n const keys = getUnequalProps(obj0, obj1);\n for (let key of keys) {\n if (!HANDLER_RE.test(key)) {\n return false;\n }\n }\n return true;\n}\nfunction getUnequalProps(obj0, obj1) {\n let keys = [];\n for (let key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n keys.push(key);\n }\n }\n }\n for (let key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n keys.push(key);\n }\n }\n }\n return keys;\n}\nfunction compareObjs(oldProps, newProps, equalityFuncs = {}) {\n if (oldProps === newProps) {\n return true;\n }\n for (let key in newProps) {\n if (key in oldProps && isObjValsEqual(oldProps[key], newProps[key], equalityFuncs[key])) ;\n else {\n return false;\n }\n }\n // check for props that were omitted in the new\n for (let key in oldProps) {\n if (!(key in newProps)) {\n return false;\n }\n }\n return true;\n}\n/*\nassumed \"true\" equality for handler names like \"onReceiveSomething\"\n*/\nfunction isObjValsEqual(val0, val1, comparator) {\n if (val0 === val1 || comparator === true) {\n return true;\n }\n if (comparator) {\n return comparator(val0, val1);\n }\n return false;\n}\nfunction collectFromHash(hash, startIndex = 0, endIndex, step = 1) {\n let res = [];\n if (endIndex == null) {\n endIndex = Object.keys(hash).length;\n }\n for (let i = startIndex; i < endIndex; i += step) {\n let val = hash[i];\n if (val !== undefined) { // will disregard undefined for sparse arrays\n res.push(val);\n }\n }\n return res;\n}\n\nlet calendarSystemClassMap = {};\nfunction registerCalendarSystem(name, theClass) {\n calendarSystemClassMap[name] = theClass;\n}\nfunction createCalendarSystem(name) {\n return new calendarSystemClassMap[name]();\n}\nclass GregorianCalendarSystem {\n getMarkerYear(d) {\n return d.getUTCFullYear();\n }\n getMarkerMonth(d) {\n return d.getUTCMonth();\n }\n getMarkerDay(d) {\n return d.getUTCDate();\n }\n arrayToMarker(arr) {\n return arrayToUtcDate(arr);\n }\n markerToArray(marker) {\n return dateToUtcArray(marker);\n }\n}\nregisterCalendarSystem('gregory', GregorianCalendarSystem);\n\nconst ISO_RE = /^\\s*(\\d{4})(-?(\\d{2})(-?(\\d{2})([T ](\\d{2}):?(\\d{2})(:?(\\d{2})(\\.(\\d+))?)?(Z|(([-+])(\\d{2})(:?(\\d{2}))?))?)?)?)?$/;\nfunction parse(str) {\n let m = ISO_RE.exec(str);\n if (m) {\n let marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number(`0.${m[12]}`) * 1000 : 0));\n if (isValidDate(marker)) {\n let timeZoneOffset = null;\n if (m[13]) {\n timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 +\n Number(m[18] || 0));\n }\n return {\n marker,\n isTimeUnspecified: !m[6],\n timeZoneOffset,\n };\n }\n }\n return null;\n}\n\nclass DateEnv {\n constructor(settings) {\n let timeZone = this.timeZone = settings.timeZone;\n let isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC';\n if (settings.namedTimeZoneImpl && isNamedTimeZone) {\n this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone);\n }\n this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl);\n this.calendarSystem = createCalendarSystem(settings.calendarSystem);\n this.locale = settings.locale;\n this.weekDow = settings.locale.week.dow;\n this.weekDoy = settings.locale.week.doy;\n if (settings.weekNumberCalculation === 'ISO') {\n this.weekDow = 1;\n this.weekDoy = 4;\n }\n if (typeof settings.firstDay === 'number') {\n this.weekDow = settings.firstDay;\n }\n if (typeof settings.weekNumberCalculation === 'function') {\n this.weekNumberFunc = settings.weekNumberCalculation;\n }\n this.weekText = settings.weekText != null ? settings.weekText : settings.locale.options.weekText;\n this.weekTextLong = (settings.weekTextLong != null ? settings.weekTextLong : settings.locale.options.weekTextLong) || this.weekText;\n this.cmdFormatter = settings.cmdFormatter;\n this.defaultSeparator = settings.defaultSeparator;\n }\n // Creating / Parsing\n createMarker(input) {\n let meta = this.createMarkerMeta(input);\n if (meta === null) {\n return null;\n }\n return meta.marker;\n }\n createNowMarker() {\n if (this.canComputeOffset) {\n return this.timestampToMarker(new Date().valueOf());\n }\n // if we can't compute the current date val for a timezone,\n // better to give the current local date vals than UTC\n return arrayToUtcDate(dateToLocalArray(new Date()));\n }\n createMarkerMeta(input) {\n if (typeof input === 'string') {\n return this.parse(input);\n }\n let marker = null;\n if (typeof input === 'number') {\n marker = this.timestampToMarker(input);\n }\n else if (input instanceof Date) {\n input = input.valueOf();\n if (!isNaN(input)) {\n marker = this.timestampToMarker(input);\n }\n }\n else if (Array.isArray(input)) {\n marker = arrayToUtcDate(input);\n }\n if (marker === null || !isValidDate(marker)) {\n return null;\n }\n return { marker, isTimeUnspecified: false, forcedTzo: null };\n }\n parse(s) {\n let parts = parse(s);\n if (parts === null) {\n return null;\n }\n let { marker } = parts;\n let forcedTzo = null;\n if (parts.timeZoneOffset !== null) {\n if (this.canComputeOffset) {\n marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000);\n }\n else {\n forcedTzo = parts.timeZoneOffset;\n }\n }\n return { marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo };\n }\n // Accessors\n getYear(marker) {\n return this.calendarSystem.getMarkerYear(marker);\n }\n getMonth(marker) {\n return this.calendarSystem.getMarkerMonth(marker);\n }\n getDay(marker) {\n return this.calendarSystem.getMarkerDay(marker);\n }\n // Adding / Subtracting\n add(marker, dur) {\n let a = this.calendarSystem.markerToArray(marker);\n a[0] += dur.years;\n a[1] += dur.months;\n a[2] += dur.days;\n a[6] += dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n }\n subtract(marker, dur) {\n let a = this.calendarSystem.markerToArray(marker);\n a[0] -= dur.years;\n a[1] -= dur.months;\n a[2] -= dur.days;\n a[6] -= dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n }\n addYears(marker, n) {\n let a = this.calendarSystem.markerToArray(marker);\n a[0] += n;\n return this.calendarSystem.arrayToMarker(a);\n }\n addMonths(marker, n) {\n let a = this.calendarSystem.markerToArray(marker);\n a[1] += n;\n return this.calendarSystem.arrayToMarker(a);\n }\n // Diffing Whole Units\n diffWholeYears(m0, m1) {\n let { calendarSystem } = this;\n if (timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) &&\n calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) {\n return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0);\n }\n return null;\n }\n diffWholeMonths(m0, m1) {\n let { calendarSystem } = this;\n if (timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) {\n return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) +\n (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12;\n }\n return null;\n }\n // Range / Duration\n greatestWholeUnit(m0, m1) {\n let n = this.diffWholeYears(m0, m1);\n if (n !== null) {\n return { unit: 'year', value: n };\n }\n n = this.diffWholeMonths(m0, m1);\n if (n !== null) {\n return { unit: 'month', value: n };\n }\n n = diffWholeWeeks(m0, m1);\n if (n !== null) {\n return { unit: 'week', value: n };\n }\n n = diffWholeDays(m0, m1);\n if (n !== null) {\n return { unit: 'day', value: n };\n }\n n = diffHours(m0, m1);\n if (isInt(n)) {\n return { unit: 'hour', value: n };\n }\n n = diffMinutes(m0, m1);\n if (isInt(n)) {\n return { unit: 'minute', value: n };\n }\n n = diffSeconds(m0, m1);\n if (isInt(n)) {\n return { unit: 'second', value: n };\n }\n return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() };\n }\n countDurationsBetween(m0, m1, d) {\n // TODO: can use greatestWholeUnit\n let diff;\n if (d.years) {\n diff = this.diffWholeYears(m0, m1);\n if (diff !== null) {\n return diff / asRoughYears(d);\n }\n }\n if (d.months) {\n diff = this.diffWholeMonths(m0, m1);\n if (diff !== null) {\n return diff / asRoughMonths(d);\n }\n }\n if (d.days) {\n diff = diffWholeDays(m0, m1);\n if (diff !== null) {\n return diff / asRoughDays(d);\n }\n }\n return (m1.valueOf() - m0.valueOf()) / asRoughMs(d);\n }\n // Start-Of\n // these DON'T return zoned-dates. only UTC start-of dates\n startOf(m, unit) {\n if (unit === 'year') {\n return this.startOfYear(m);\n }\n if (unit === 'month') {\n return this.startOfMonth(m);\n }\n if (unit === 'week') {\n return this.startOfWeek(m);\n }\n if (unit === 'day') {\n return startOfDay(m);\n }\n if (unit === 'hour') {\n return startOfHour(m);\n }\n if (unit === 'minute') {\n return startOfMinute(m);\n }\n if (unit === 'second') {\n return startOfSecond(m);\n }\n return null;\n }\n startOfYear(m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n ]);\n }\n startOfMonth(m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m),\n ]);\n }\n startOfWeek(m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m),\n m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7),\n ]);\n }\n // Week Number\n computeWeekNumber(marker) {\n if (this.weekNumberFunc) {\n return this.weekNumberFunc(this.toDate(marker));\n }\n return weekOfYear(marker, this.weekDow, this.weekDoy);\n }\n // TODO: choke on timeZoneName: long\n format(marker, formatter, dateOptions = {}) {\n return formatter.format({\n marker,\n timeZoneOffset: dateOptions.forcedTzo != null ?\n dateOptions.forcedTzo :\n this.offsetForMarker(marker),\n }, this);\n }\n formatRange(start, end, formatter, dateOptions = {}) {\n if (dateOptions.isEndExclusive) {\n end = addMs(end, -1);\n }\n return formatter.formatRange({\n marker: start,\n timeZoneOffset: dateOptions.forcedStartTzo != null ?\n dateOptions.forcedStartTzo :\n this.offsetForMarker(start),\n }, {\n marker: end,\n timeZoneOffset: dateOptions.forcedEndTzo != null ?\n dateOptions.forcedEndTzo :\n this.offsetForMarker(end),\n }, this, dateOptions.defaultSeparator);\n }\n /*\n DUMB: the omitTime arg is dumb. if we omit the time, we want to omit the timezone offset. and if we do that,\n might as well use buildIsoString or some other util directly\n */\n formatIso(marker, extraOptions = {}) {\n let timeZoneOffset = null;\n if (!extraOptions.omitTimeZoneOffset) {\n if (extraOptions.forcedTzo != null) {\n timeZoneOffset = extraOptions.forcedTzo;\n }\n else {\n timeZoneOffset = this.offsetForMarker(marker);\n }\n }\n return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime);\n }\n // TimeZone\n timestampToMarker(ms) {\n if (this.timeZone === 'local') {\n return arrayToUtcDate(dateToLocalArray(new Date(ms)));\n }\n if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) {\n return new Date(ms);\n }\n return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms));\n }\n offsetForMarker(m) {\n if (this.timeZone === 'local') {\n return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert \"inverse\" offset to \"normal\" offset\n }\n if (this.timeZone === 'UTC') {\n return 0;\n }\n if (this.namedTimeZoneImpl) {\n return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m));\n }\n return null;\n }\n // Conversion\n toDate(m, forcedTzo) {\n if (this.timeZone === 'local') {\n return arrayToLocalDate(dateToUtcArray(m));\n }\n if (this.timeZone === 'UTC') {\n return new Date(m.valueOf()); // make sure it's a copy\n }\n if (!this.namedTimeZoneImpl) {\n return new Date(m.valueOf() - (forcedTzo || 0));\n }\n return new Date(m.valueOf() -\n this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60);\n }\n}\n\nclass Theme {\n constructor(calendarOptions) {\n if (this.iconOverrideOption) {\n this.setIconOverride(calendarOptions[this.iconOverrideOption]);\n }\n }\n setIconOverride(iconOverrideHash) {\n let iconClassesCopy;\n let buttonName;\n if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object\n iconClassesCopy = Object.assign({}, this.iconClasses);\n for (buttonName in iconOverrideHash) {\n iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\n }\n this.iconClasses = iconClassesCopy;\n }\n else if (iconOverrideHash === false) {\n this.iconClasses = {};\n }\n }\n applyIconOverridePrefix(className) {\n let prefix = this.iconOverridePrefix;\n if (prefix && className.indexOf(prefix) !== 0) { // if not already present\n className = prefix + className;\n }\n return className;\n }\n getClass(key) {\n return this.classes[key] || '';\n }\n getIconClass(buttonName, isRtl) {\n let className;\n if (isRtl && this.rtlIconClasses) {\n className = this.rtlIconClasses[buttonName] || this.iconClasses[buttonName];\n }\n else {\n className = this.iconClasses[buttonName];\n }\n if (className) {\n return `${this.baseIconClass} ${className}`;\n }\n return '';\n }\n getCustomButtonIconClass(customButtonProps) {\n let className;\n if (this.iconOverrideCustomButtonOption) {\n className = customButtonProps[this.iconOverrideCustomButtonOption];\n if (className) {\n return `${this.baseIconClass} ${this.applyIconOverridePrefix(className)}`;\n }\n }\n return '';\n }\n}\nTheme.prototype.classes = {};\nTheme.prototype.iconClasses = {};\nTheme.prototype.baseIconClass = '';\nTheme.prototype.iconOverridePrefix = '';\n\n/*\nNOTE: this can be a public API, especially createElement for hooks.\nSee examples/typescript-scheduler/src/index.ts\n*/\nfunction flushSync(runBeforeFlush) {\n runBeforeFlush();\n let oldDebounceRendering = preact.options.debounceRendering; // orig\n let callbackQ = [];\n function execCallbackSync(callback) {\n callbackQ.push(callback);\n }\n preact.options.debounceRendering = execCallbackSync;\n preact.render(preact.createElement(FakeComponent, {}), document.createElement('div'));\n while (callbackQ.length) {\n callbackQ.shift()();\n }\n preact.options.debounceRendering = oldDebounceRendering;\n}\nclass FakeComponent extends preact.Component {\n render() { return preact.createElement('div', {}); }\n componentDidMount() { this.setState({}); }\n}\n// TODO: use preact/compat instead?\nfunction createContext(defaultValue) {\n let ContextType = preact.createContext(defaultValue);\n let origProvider = ContextType.Provider;\n ContextType.Provider = function () {\n let isNew = !this.getChildContext;\n let children = origProvider.apply(this, arguments); // eslint-disable-line prefer-rest-params\n if (isNew) {\n let subs = [];\n this.shouldComponentUpdate = (_props) => {\n if (this.props.value !== _props.value) {\n subs.forEach((c) => {\n c.context = _props.value;\n c.forceUpdate();\n });\n }\n };\n this.sub = (c) => {\n subs.push(c);\n let old = c.componentWillUnmount;\n c.componentWillUnmount = () => {\n subs.splice(subs.indexOf(c), 1);\n old && old.call(c);\n };\n };\n }\n return children;\n };\n return ContextType;\n}\n\nclass ScrollResponder {\n constructor(execFunc, emitter, scrollTime, scrollTimeReset) {\n this.execFunc = execFunc;\n this.emitter = emitter;\n this.scrollTime = scrollTime;\n this.scrollTimeReset = scrollTimeReset;\n this.handleScrollRequest = (request) => {\n this.queuedRequest = Object.assign({}, this.queuedRequest || {}, request);\n this.drain();\n };\n emitter.on('_scrollRequest', this.handleScrollRequest);\n this.fireInitialScroll();\n }\n detach() {\n this.emitter.off('_scrollRequest', this.handleScrollRequest);\n }\n update(isDatesNew) {\n if (isDatesNew && this.scrollTimeReset) {\n this.fireInitialScroll(); // will drain\n }\n else {\n this.drain();\n }\n }\n fireInitialScroll() {\n this.handleScrollRequest({\n time: this.scrollTime,\n });\n }\n drain() {\n if (this.queuedRequest && this.execFunc(this.queuedRequest)) {\n this.queuedRequest = null;\n }\n }\n}\n\nconst ViewContextType = createContext({}); // for Components\nfunction buildViewContext(viewSpec, viewApi, viewOptions, dateProfileGenerator, dateEnv, theme, pluginHooks, dispatch, getCurrentData, emitter, calendarApi, registerInteractiveComponent, unregisterInteractiveComponent) {\n return {\n dateEnv,\n options: viewOptions,\n pluginHooks,\n emitter,\n dispatch,\n getCurrentData,\n calendarApi,\n viewSpec,\n viewApi,\n dateProfileGenerator,\n theme,\n isRtl: viewOptions.direction === 'rtl',\n addResizeHandler(handler) {\n emitter.on('_resize', handler);\n },\n removeResizeHandler(handler) {\n emitter.off('_resize', handler);\n },\n createScrollResponder(execFunc) {\n return new ScrollResponder(execFunc, emitter, createDuration(viewOptions.scrollTime), viewOptions.scrollTimeReset);\n },\n registerInteractiveComponent,\n unregisterInteractiveComponent,\n };\n}\n\n/* eslint max-classes-per-file: off */\nclass PureComponent extends Component {\n shouldComponentUpdate(nextProps, nextState) {\n if (this.debug) {\n // eslint-disable-next-line no-console\n console.log(getUnequalProps(nextProps, this.props), getUnequalProps(nextState, this.state));\n }\n return !compareObjs(this.props, nextProps, this.propEquality) ||\n !compareObjs(this.state, nextState, this.stateEquality);\n }\n // HACK for freakin' React StrictMode\n safeSetState(newState) {\n if (!compareObjs(this.state, Object.assign(Object.assign({}, this.state), newState), this.stateEquality)) {\n this.setState(newState);\n }\n }\n}\nPureComponent.addPropsEquality = addPropsEquality;\nPureComponent.addStateEquality = addStateEquality;\nPureComponent.contextType = ViewContextType;\nPureComponent.prototype.propEquality = {};\nPureComponent.prototype.stateEquality = {};\nclass BaseComponent extends PureComponent {\n}\nBaseComponent.contextType = ViewContextType;\nfunction addPropsEquality(propEquality) {\n let hash = Object.create(this.prototype.propEquality);\n Object.assign(hash, propEquality);\n this.prototype.propEquality = hash;\n}\nfunction addStateEquality(stateEquality) {\n let hash = Object.create(this.prototype.stateEquality);\n Object.assign(hash, stateEquality);\n this.prototype.stateEquality = hash;\n}\n// use other one\nfunction setRef(ref, current) {\n if (typeof ref === 'function') {\n ref(current);\n }\n else if (ref) {\n // see https://github.com/facebook/react/issues/13029\n ref.current = current;\n }\n}\n\nclass ContentInjector extends BaseComponent {\n constructor() {\n super(...arguments);\n this.id = guid();\n this.queuedDomNodes = [];\n this.currentDomNodes = [];\n this.handleEl = (el) => {\n const { options } = this.context;\n const { generatorName } = this.props;\n if (!options.customRenderingReplaces || !hasCustomRenderingHandler(generatorName, options)) {\n this.updateElRef(el);\n }\n };\n this.updateElRef = (el) => {\n if (this.props.elRef) {\n setRef(this.props.elRef, el);\n }\n };\n }\n render() {\n const { props, context } = this;\n const { options } = context;\n const { customGenerator, defaultGenerator, renderProps } = props;\n const attrs = buildElAttrs(props, [], this.handleEl);\n let useDefault = false;\n let innerContent;\n let queuedDomNodes = [];\n let currentGeneratorMeta;\n if (customGenerator != null) {\n const customGeneratorRes = typeof customGenerator === 'function' ?\n customGenerator(renderProps, createElement) :\n customGenerator;\n if (customGeneratorRes === true) {\n useDefault = true;\n }\n else {\n const isObject = customGeneratorRes && typeof customGeneratorRes === 'object'; // non-null\n if (isObject && ('html' in customGeneratorRes)) {\n attrs.dangerouslySetInnerHTML = { __html: customGeneratorRes.html };\n }\n else if (isObject && ('domNodes' in customGeneratorRes)) {\n queuedDomNodes = Array.prototype.slice.call(customGeneratorRes.domNodes);\n }\n else if (isObject\n ? isValidElement(customGeneratorRes) // vdom node\n : typeof customGeneratorRes !== 'function' // primitive value (like string or number)\n ) {\n // use in vdom\n innerContent = customGeneratorRes;\n }\n else {\n // an exotic object for handleCustomRendering\n currentGeneratorMeta = customGeneratorRes;\n }\n }\n }\n else {\n useDefault = !hasCustomRenderingHandler(props.generatorName, options);\n }\n if (useDefault && defaultGenerator) {\n innerContent = defaultGenerator(renderProps);\n }\n this.queuedDomNodes = queuedDomNodes;\n this.currentGeneratorMeta = currentGeneratorMeta;\n return createElement(props.elTag, attrs, innerContent);\n }\n componentDidMount() {\n this.applyQueueudDomNodes();\n this.triggerCustomRendering(true);\n }\n componentDidUpdate() {\n this.applyQueueudDomNodes();\n this.triggerCustomRendering(true);\n }\n componentWillUnmount() {\n this.triggerCustomRendering(false); // TODO: different API for removal?\n }\n triggerCustomRendering(isActive) {\n var _a;\n const { props, context } = this;\n const { handleCustomRendering, customRenderingMetaMap } = context.options;\n if (handleCustomRendering) {\n const generatorMeta = (_a = this.currentGeneratorMeta) !== null && _a !== void 0 ? _a : customRenderingMetaMap === null || customRenderingMetaMap === void 0 ? void 0 : customRenderingMetaMap[props.generatorName];\n if (generatorMeta) {\n handleCustomRendering(Object.assign(Object.assign({ id: this.id, isActive, containerEl: this.base, reportNewContainerEl: this.updateElRef, // front-end framework tells us about new container els\n generatorMeta }, props), { elClasses: (props.elClasses || []).filter(isTruthy) }));\n }\n }\n }\n applyQueueudDomNodes() {\n const { queuedDomNodes, currentDomNodes } = this;\n const el = this.base;\n if (!isArraysEqual(queuedDomNodes, currentDomNodes)) {\n currentDomNodes.forEach(removeElement);\n for (let newNode of queuedDomNodes) {\n el.appendChild(newNode);\n }\n this.currentDomNodes = queuedDomNodes;\n }\n }\n}\nContentInjector.addPropsEquality({\n elClasses: isArraysEqual,\n elStyle: isPropsEqual,\n elAttrs: isNonHandlerPropsEqual,\n renderProps: isPropsEqual,\n});\n// Util\n/*\nDoes UI-framework provide custom way of rendering that does not use Preact VDOM\nAND does the calendar's options define custom rendering?\nAKA. Should we NOT render the default content?\n*/\nfunction hasCustomRenderingHandler(generatorName, options) {\n var _a;\n return Boolean(options.handleCustomRendering &&\n generatorName &&\n ((_a = options.customRenderingMetaMap) === null || _a === void 0 ? void 0 : _a[generatorName]));\n}\nfunction buildElAttrs(props, extraClassNames, elRef) {\n const attrs = Object.assign(Object.assign({}, props.elAttrs), { ref: elRef });\n if (props.elClasses || extraClassNames) {\n attrs.className = (props.elClasses || [])\n .concat(extraClassNames || [])\n .concat(attrs.className || [])\n .filter(Boolean)\n .join(' ');\n }\n if (props.elStyle) {\n attrs.style = props.elStyle;\n }\n return attrs;\n}\nfunction isTruthy(val) {\n return Boolean(val);\n}\n\nconst RenderId = createContext(0);\n\nclass ContentContainer extends Component {\n constructor() {\n super(...arguments);\n this.InnerContent = InnerContentInjector.bind(undefined, this);\n this.handleEl = (el) => {\n this.el = el;\n if (this.props.elRef) {\n setRef(this.props.elRef, el);\n if (el && this.didMountMisfire) {\n this.componentDidMount();\n }\n }\n };\n }\n render() {\n const { props } = this;\n const generatedClassNames = generateClassNames(props.classNameGenerator, props.renderProps);\n if (props.children) {\n const elAttrs = buildElAttrs(props, generatedClassNames, this.handleEl);\n const children = props.children(this.InnerContent, props.renderProps, elAttrs);\n if (props.elTag) {\n return createElement(props.elTag, elAttrs, children);\n }\n else {\n return children;\n }\n }\n else {\n return createElement((ContentInjector), Object.assign(Object.assign({}, props), { elRef: this.handleEl, elTag: props.elTag || 'div', elClasses: (props.elClasses || []).concat(generatedClassNames), renderId: this.context }));\n }\n }\n componentDidMount() {\n var _a, _b;\n if (this.el) {\n (_b = (_a = this.props).didMount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.el }));\n }\n else {\n this.didMountMisfire = true;\n }\n }\n componentWillUnmount() {\n var _a, _b;\n (_b = (_a = this.props).willUnmount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.el }));\n }\n}\nContentContainer.contextType = RenderId;\nfunction InnerContentInjector(containerComponent, props) {\n const parentProps = containerComponent.props;\n return createElement((ContentInjector), Object.assign({ renderProps: parentProps.renderProps, generatorName: parentProps.generatorName, customGenerator: parentProps.customGenerator, defaultGenerator: parentProps.defaultGenerator, renderId: containerComponent.context }, props));\n}\n// Utils\nfunction generateClassNames(classNameGenerator, renderProps) {\n const classNames = typeof classNameGenerator === 'function' ?\n classNameGenerator(renderProps) :\n classNameGenerator || [];\n return typeof classNames === 'string' ? [classNames] : classNames;\n}\n\nclass ViewContainer extends BaseComponent {\n render() {\n let { props, context } = this;\n let { options } = context;\n let renderProps = { view: context.viewApi };\n return (createElement(ContentContainer, Object.assign({}, props, { elTag: props.elTag || 'div', elClasses: [\n ...buildViewClassNames(props.viewSpec),\n ...(props.elClasses || []),\n ], renderProps: renderProps, classNameGenerator: options.viewClassNames, generatorName: undefined, didMount: options.viewDidMount, willUnmount: options.viewWillUnmount }), () => props.children));\n }\n}\nfunction buildViewClassNames(viewSpec) {\n return [\n `fc-${viewSpec.type}-view`,\n 'fc-view',\n ];\n}\n\nfunction parseRange(input, dateEnv) {\n let start = null;\n let end = null;\n if (input.start) {\n start = dateEnv.createMarker(input.start);\n }\n if (input.end) {\n end = dateEnv.createMarker(input.end);\n }\n if (!start && !end) {\n return null;\n }\n if (start && end && end < start) {\n return null;\n }\n return { start, end };\n}\n// SIDE-EFFECT: will mutate ranges.\n// Will return a new array result.\nfunction invertRanges(ranges, constraintRange) {\n let invertedRanges = [];\n let { start } = constraintRange; // the end of the previous range. the start of the new range\n let i;\n let dateRange;\n // ranges need to be in order. required for our date-walking algorithm\n ranges.sort(compareRanges);\n for (i = 0; i < ranges.length; i += 1) {\n dateRange = ranges[i];\n // add the span of time before the event (if there is any)\n if (dateRange.start > start) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start, end: dateRange.start });\n }\n if (dateRange.end > start) {\n start = dateRange.end;\n }\n }\n // add the span of time after the last event (if there is any)\n if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start, end: constraintRange.end });\n }\n return invertedRanges;\n}\nfunction compareRanges(range0, range1) {\n return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first\n}\nfunction intersectRanges(range0, range1) {\n let { start, end } = range0;\n let newRange = null;\n if (range1.start !== null) {\n if (start === null) {\n start = range1.start;\n }\n else {\n start = new Date(Math.max(start.valueOf(), range1.start.valueOf()));\n }\n }\n if (range1.end != null) {\n if (end === null) {\n end = range1.end;\n }\n else {\n end = new Date(Math.min(end.valueOf(), range1.end.valueOf()));\n }\n }\n if (start === null || end === null || start < end) {\n newRange = { start, end };\n }\n return newRange;\n}\nfunction rangesEqual(range0, range1) {\n return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) &&\n (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf());\n}\nfunction rangesIntersect(range0, range1) {\n return (range0.end === null || range1.start === null || range0.end > range1.start) &&\n (range0.start === null || range1.end === null || range0.start < range1.end);\n}\nfunction rangeContainsRange(outerRange, innerRange) {\n return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) &&\n (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end));\n}\nfunction rangeContainsMarker(range, date) {\n return (range.start === null || date >= range.start) &&\n (range.end === null || date < range.end);\n}\n// If the given date is not within the given range, move it inside.\n// (If it's past the end, make it one millisecond before the end).\nfunction constrainMarkerToRange(date, range) {\n if (range.start != null && date < range.start) {\n return range.start;\n }\n if (range.end != null && date >= range.end) {\n return new Date(range.end.valueOf() - 1);\n }\n return date;\n}\n\n/* Date stuff that doesn't belong in datelib core\n----------------------------------------------------------------------------------------------------------------------*/\n// given a timed range, computes an all-day range that has the same exact duration,\n// but whose start time is aligned with the start of the day.\nfunction computeAlignedDayRange(timedRange) {\n let dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1;\n let start = startOfDay(timedRange.start);\n let end = addDays(start, dayCnt);\n return { start, end };\n}\n// given a timed range, computes an all-day range based on how for the end date bleeds into the next day\n// TODO: give nextDayThreshold a default arg\nfunction computeVisibleDayRange(timedRange, nextDayThreshold = createDuration(0)) {\n let startDay = null;\n let endDay = null;\n if (timedRange.end) {\n endDay = startOfDay(timedRange.end);\n let endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay`\n // If the end time is actually inclusively part of the next day and is equal to or\n // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\n // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\n if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) {\n endDay = addDays(endDay, 1);\n }\n }\n if (timedRange.start) {\n startDay = startOfDay(timedRange.start); // the beginning of the day the range starts\n // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\n if (endDay && endDay <= startDay) {\n endDay = addDays(startDay, 1);\n }\n }\n return { start: startDay, end: endDay };\n}\n// spans from one day into another?\nfunction isMultiDayRange(range) {\n let visibleRange = computeVisibleDayRange(range);\n return diffDays(visibleRange.start, visibleRange.end) > 1;\n}\nfunction diffDates(date0, date1, dateEnv, largeUnit) {\n if (largeUnit === 'year') {\n return createDuration(dateEnv.diffWholeYears(date0, date1), 'year');\n }\n if (largeUnit === 'month') {\n return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month');\n }\n return diffDayAndTime(date0, date1); // returns a duration\n}\n\nfunction reduceCurrentDate(currentDate, action) {\n switch (action.type) {\n case 'CHANGE_DATE':\n return action.dateMarker;\n default:\n return currentDate;\n }\n}\nfunction getInitialDate(options, dateEnv) {\n let initialDateInput = options.initialDate;\n // compute the initial ambig-timezone date\n if (initialDateInput != null) {\n return dateEnv.createMarker(initialDateInput);\n }\n return getNow(options.now, dateEnv); // getNow already returns unzoned\n}\nfunction getNow(nowInput, dateEnv) {\n if (typeof nowInput === 'function') {\n nowInput = nowInput();\n }\n if (nowInput == null) {\n return dateEnv.createNowMarker();\n }\n return dateEnv.createMarker(nowInput);\n}\n\nclass DateProfileGenerator {\n constructor(props) {\n this.props = props;\n this.nowDate = getNow(props.nowInput, props.dateEnv);\n this.initHiddenDays();\n }\n /* Date Range Computation\n ------------------------------------------------------------------------------------------------------------------*/\n // Builds a structure with info about what the dates/ranges will be for the \"prev\" view.\n buildPrev(currentDateProfile, currentDate, forceToValid) {\n let { dateEnv } = this.props;\n let prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement);\n return this.build(prevDate, -1, forceToValid);\n }\n // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\n buildNext(currentDateProfile, currentDate, forceToValid) {\n let { dateEnv } = this.props;\n let nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement);\n return this.build(nextDate, 1, forceToValid);\n }\n // Builds a structure holding dates/ranges for rendering around the given date.\n // Optional direction param indicates whether the date is being incremented/decremented\n // from its previous value. decremented = -1, incremented = 1 (default).\n build(currentDate, direction, forceToValid = true) {\n let { props } = this;\n let validRange;\n let currentInfo;\n let isRangeAllDay;\n let renderRange;\n let activeRange;\n let isValid;\n validRange = this.buildValidRange();\n validRange = this.trimHiddenDays(validRange);\n if (forceToValid) {\n currentDate = constrainMarkerToRange(currentDate, validRange);\n }\n currentInfo = this.buildCurrentRangeInfo(currentDate, direction);\n isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);\n renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay);\n renderRange = this.trimHiddenDays(renderRange);\n activeRange = renderRange;\n if (!props.showNonCurrentDates) {\n activeRange = intersectRanges(activeRange, currentInfo.range);\n }\n activeRange = this.adjustActiveRange(activeRange);\n activeRange = intersectRanges(activeRange, validRange); // might return null\n // it's invalid if the originally requested date is not contained,\n // or if the range is completely outside of the valid range.\n isValid = rangesIntersect(currentInfo.range, validRange);\n // HACK: constrain to render-range so `currentDate` is more useful to view rendering\n if (!rangeContainsMarker(renderRange, currentDate)) {\n currentDate = renderRange.start;\n }\n return {\n currentDate,\n // constraint for where prev/next operations can go and where events can be dragged/resized to.\n // an object with optional start and end properties.\n validRange,\n // range the view is formally responsible for.\n // for example, a month view might have 1st-31st, excluding padded dates\n currentRange: currentInfo.range,\n // name of largest unit being displayed, like \"month\" or \"week\"\n currentRangeUnit: currentInfo.unit,\n isRangeAllDay,\n // dates that display events and accept drag-n-drop\n // will be `null` if no dates accept events\n activeRange,\n // date range with a rendered skeleton\n // includes not-active days that need some sort of DOM\n renderRange,\n // Duration object that denotes the first visible time of any given day\n slotMinTime: props.slotMinTime,\n // Duration object that denotes the exclusive visible end time of any given day\n slotMaxTime: props.slotMaxTime,\n isValid,\n // how far the current date will move for a prev/next operation\n dateIncrement: this.buildDateIncrement(currentInfo.duration),\n // pass a fallback (might be null) ^\n };\n }\n // Builds an object with optional start/end properties.\n // Indicates the minimum/maximum dates to display.\n // not responsible for trimming hidden days.\n buildValidRange() {\n let input = this.props.validRangeInput;\n let simpleInput = typeof input === 'function'\n ? input.call(this.props.calendarApi, this.nowDate)\n : input;\n return this.refineRange(simpleInput) ||\n { start: null, end: null }; // completely open-ended\n }\n // Builds a structure with info about the \"current\" range, the range that is\n // highlighted as being the current month for example.\n // See build() for a description of `direction`.\n // Guaranteed to have `range` and `unit` properties. `duration` is optional.\n buildCurrentRangeInfo(date, direction) {\n let { props } = this;\n let duration = null;\n let unit = null;\n let range = null;\n let dayCount;\n if (props.duration) {\n duration = props.duration;\n unit = props.durationUnit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n else if ((dayCount = this.props.dayCount)) {\n unit = 'day';\n range = this.buildRangeFromDayCount(date, direction, dayCount);\n }\n else if ((range = this.buildCustomVisibleRange(date))) {\n unit = props.dateEnv.greatestWholeUnit(range.start, range.end).unit;\n }\n else {\n duration = this.getFallbackDuration();\n unit = greatestDurationDenominator(duration).unit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n return { duration, unit, range };\n }\n getFallbackDuration() {\n return createDuration({ day: 1 });\n }\n // Returns a new activeRange to have time values (un-ambiguate)\n // slotMinTime or slotMaxTime causes the range to expand.\n adjustActiveRange(range) {\n let { dateEnv, usesMinMaxTime, slotMinTime, slotMaxTime } = this.props;\n let { start, end } = range;\n if (usesMinMaxTime) {\n // expand active range if slotMinTime is negative (why not when positive?)\n if (asRoughDays(slotMinTime) < 0) {\n start = startOfDay(start); // necessary?\n start = dateEnv.add(start, slotMinTime);\n }\n // expand active range if slotMaxTime is beyond one day (why not when negative?)\n if (asRoughDays(slotMaxTime) > 1) {\n end = startOfDay(end); // necessary?\n end = addDays(end, -1);\n end = dateEnv.add(end, slotMaxTime);\n }\n }\n return { start, end };\n }\n // Builds the \"current\" range when it is specified as an explicit duration.\n // `unit` is the already-computed greatestDurationDenominator unit of duration.\n buildRangeFromDuration(date, direction, duration, unit) {\n let { dateEnv, dateAlignment } = this.props;\n let start;\n let end;\n let res;\n // compute what the alignment should be\n if (!dateAlignment) {\n let { dateIncrement } = this.props;\n if (dateIncrement) {\n // use the smaller of the two units\n if (asRoughMs(dateIncrement) < asRoughMs(duration)) {\n dateAlignment = greatestDurationDenominator(dateIncrement).unit;\n }\n else {\n dateAlignment = unit;\n }\n }\n else {\n dateAlignment = unit;\n }\n }\n // if the view displays a single day or smaller\n if (asRoughDays(duration) <= 1) {\n if (this.isHiddenDay(start)) {\n start = this.skipHiddenDays(start, direction);\n start = startOfDay(start);\n }\n }\n function computeRes() {\n start = dateEnv.startOf(date, dateAlignment);\n end = dateEnv.add(start, duration);\n res = { start, end };\n }\n computeRes();\n // if range is completely enveloped by hidden days, go past the hidden days\n if (!this.trimHiddenDays(res)) {\n date = this.skipHiddenDays(date, direction);\n computeRes();\n }\n return res;\n }\n // Builds the \"current\" range when a dayCount is specified.\n buildRangeFromDayCount(date, direction, dayCount) {\n let { dateEnv, dateAlignment } = this.props;\n let runningCount = 0;\n let start = date;\n let end;\n if (dateAlignment) {\n start = dateEnv.startOf(start, dateAlignment);\n }\n start = startOfDay(start);\n start = this.skipHiddenDays(start, direction);\n end = start;\n do {\n end = addDays(end, 1);\n if (!this.isHiddenDay(end)) {\n runningCount += 1;\n }\n } while (runningCount < dayCount);\n return { start, end };\n }\n // Builds a normalized range object for the \"visible\" range,\n // which is a way to define the currentRange and activeRange at the same time.\n buildCustomVisibleRange(date) {\n let { props } = this;\n let input = props.visibleRangeInput;\n let simpleInput = typeof input === 'function'\n ? input.call(props.calendarApi, props.dateEnv.toDate(date))\n : input;\n let range = this.refineRange(simpleInput);\n if (range && (range.start == null || range.end == null)) {\n return null;\n }\n return range;\n }\n // Computes the range that will represent the element/cells for *rendering*,\n // but which may have voided days/times.\n // not responsible for trimming hidden days.\n buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {\n return currentRange;\n }\n // Compute the duration value that should be added/substracted to the current date\n // when a prev/next operation happens.\n buildDateIncrement(fallback) {\n let { dateIncrement } = this.props;\n let customAlignment;\n if (dateIncrement) {\n return dateIncrement;\n }\n if ((customAlignment = this.props.dateAlignment)) {\n return createDuration(1, customAlignment);\n }\n if (fallback) {\n return fallback;\n }\n return createDuration({ days: 1 });\n }\n refineRange(rangeInput) {\n if (rangeInput) {\n let range = parseRange(rangeInput, this.props.dateEnv);\n if (range) {\n range = computeVisibleDayRange(range);\n }\n return range;\n }\n return null;\n }\n /* Hidden Days\n ------------------------------------------------------------------------------------------------------------------*/\n // Initializes internal variables related to calculating hidden days-of-week\n initHiddenDays() {\n let hiddenDays = this.props.hiddenDays || []; // array of day-of-week indices that are hidden\n let isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\n let dayCnt = 0;\n let i;\n if (this.props.weekends === false) {\n hiddenDays.push(0, 6); // 0=sunday, 6=saturday\n }\n for (i = 0; i < 7; i += 1) {\n if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) {\n dayCnt += 1;\n }\n }\n if (!dayCnt) {\n throw new Error('invalid hiddenDays'); // all days were hidden? bad.\n }\n this.isHiddenDayHash = isHiddenDayHash;\n }\n // Remove days from the beginning and end of the range that are computed as hidden.\n // If the whole range is trimmed off, returns null\n trimHiddenDays(range) {\n let { start, end } = range;\n if (start) {\n start = this.skipHiddenDays(start);\n }\n if (end) {\n end = this.skipHiddenDays(end, -1, true);\n }\n if (start == null || end == null || start < end) {\n return { start, end };\n }\n return null;\n }\n // Is the current day hidden?\n // `day` is a day-of-week index (0-6), or a Date (used for UTC)\n isHiddenDay(day) {\n if (day instanceof Date) {\n day = day.getUTCDay();\n }\n return this.isHiddenDayHash[day];\n }\n // Incrementing the current day until it is no longer a hidden day, returning a copy.\n // DOES NOT CONSIDER validRange!\n // If the initial value of `date` is not a hidden day, don't do anything.\n // Pass `isExclusive` as `true` if you are dealing with an end date.\n // `inc` defaults to `1` (increment one day forward each time)\n skipHiddenDays(date, inc = 1, isExclusive = false) {\n while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) {\n date = addDays(date, inc);\n }\n return date;\n }\n}\n\nfunction createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) {\n return {\n instanceId: guid(),\n defId,\n range,\n forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo,\n forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo,\n };\n}\n\nfunction parseRecurring(refined, defaultAllDay, dateEnv, recurringTypes) {\n for (let i = 0; i < recurringTypes.length; i += 1) {\n let parsed = recurringTypes[i].parse(refined, dateEnv);\n if (parsed) {\n let { allDay } = refined;\n if (allDay == null) {\n allDay = defaultAllDay;\n if (allDay == null) {\n allDay = parsed.allDayGuess;\n if (allDay == null) {\n allDay = false;\n }\n }\n }\n return {\n allDay,\n duration: parsed.duration,\n typeData: parsed.typeData,\n typeId: i,\n };\n }\n }\n return null;\n}\nfunction expandRecurring(eventStore, framingRange, context) {\n let { dateEnv, pluginHooks, options } = context;\n let { defs, instances } = eventStore;\n // remove existing recurring instances\n // TODO: bad. always expand events as a second step\n instances = filterHash(instances, (instance) => !defs[instance.defId].recurringDef);\n for (let defId in defs) {\n let def = defs[defId];\n if (def.recurringDef) {\n let { duration } = def.recurringDef;\n if (!duration) {\n duration = def.allDay ?\n options.defaultAllDayEventDuration :\n options.defaultTimedEventDuration;\n }\n let starts = expandRecurringRanges(def, duration, framingRange, dateEnv, pluginHooks.recurringTypes);\n for (let start of starts) {\n let instance = createEventInstance(defId, {\n start,\n end: dateEnv.add(start, duration),\n });\n instances[instance.instanceId] = instance;\n }\n }\n }\n return { defs, instances };\n}\n/*\nEvent MUST have a recurringDef\n*/\nfunction expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) {\n let typeDef = recurringTypes[eventDef.recurringDef.typeId];\n let markers = typeDef.expand(eventDef.recurringDef.typeData, {\n start: dateEnv.subtract(framingRange.start, duration),\n end: framingRange.end,\n }, dateEnv);\n // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to\n if (eventDef.allDay) {\n markers = markers.map(startOfDay);\n }\n return markers;\n}\n\nconst EVENT_NON_DATE_REFINERS = {\n id: String,\n groupId: String,\n title: String,\n url: String,\n interactive: Boolean,\n};\nconst EVENT_DATE_REFINERS = {\n start: identity,\n end: identity,\n date: identity,\n allDay: Boolean,\n};\nconst EVENT_REFINERS = Object.assign(Object.assign(Object.assign({}, EVENT_NON_DATE_REFINERS), EVENT_DATE_REFINERS), { extendedProps: identity });\nfunction parseEvent(raw, eventSource, context, allowOpenRange, refiners = buildEventRefiners(context), defIdMap, instanceIdMap) {\n let { refined, extra } = refineEventDef(raw, context, refiners);\n let defaultAllDay = computeIsDefaultAllDay(eventSource, context);\n let recurringRes = parseRecurring(refined, defaultAllDay, context.dateEnv, context.pluginHooks.recurringTypes);\n if (recurringRes) {\n let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', recurringRes.allDay, Boolean(recurringRes.duration), context, defIdMap);\n def.recurringDef = {\n typeId: recurringRes.typeId,\n typeData: recurringRes.typeData,\n duration: recurringRes.duration,\n };\n return { def, instance: null };\n }\n let singleRes = parseSingle(refined, defaultAllDay, context, allowOpenRange);\n if (singleRes) {\n let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', singleRes.allDay, singleRes.hasEnd, context, defIdMap);\n let instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo);\n if (instanceIdMap && def.publicId && instanceIdMap[def.publicId]) {\n instance.instanceId = instanceIdMap[def.publicId];\n }\n return { def, instance };\n }\n return null;\n}\nfunction refineEventDef(raw, context, refiners = buildEventRefiners(context)) {\n return refineProps(raw, refiners);\n}\nfunction buildEventRefiners(context) {\n return Object.assign(Object.assign(Object.assign({}, EVENT_UI_REFINERS), EVENT_REFINERS), context.pluginHooks.eventRefiners);\n}\n/*\nWill NOT populate extendedProps with the leftover properties.\nWill NOT populate date-related props.\n*/\nfunction parseEventDef(refined, extra, sourceId, allDay, hasEnd, context, defIdMap) {\n let def = {\n title: refined.title || '',\n groupId: refined.groupId || '',\n publicId: refined.id || '',\n url: refined.url || '',\n recurringDef: null,\n defId: ((defIdMap && refined.id) ? defIdMap[refined.id] : '') || guid(),\n sourceId,\n allDay,\n hasEnd,\n interactive: refined.interactive,\n ui: createEventUi(refined, context),\n extendedProps: Object.assign(Object.assign({}, (refined.extendedProps || {})), extra),\n };\n for (let memberAdder of context.pluginHooks.eventDefMemberAdders) {\n Object.assign(def, memberAdder(refined));\n }\n // help out EventImpl from having user modify props\n Object.freeze(def.ui.classNames);\n Object.freeze(def.extendedProps);\n return def;\n}\nfunction parseSingle(refined, defaultAllDay, context, allowOpenRange) {\n let { allDay } = refined;\n let startMeta;\n let startMarker = null;\n let hasEnd = false;\n let endMeta;\n let endMarker = null;\n let startInput = refined.start != null ? refined.start : refined.date;\n startMeta = context.dateEnv.createMarkerMeta(startInput);\n if (startMeta) {\n startMarker = startMeta.marker;\n }\n else if (!allowOpenRange) {\n return null;\n }\n if (refined.end != null) {\n endMeta = context.dateEnv.createMarkerMeta(refined.end);\n }\n if (allDay == null) {\n if (defaultAllDay != null) {\n allDay = defaultAllDay;\n }\n else {\n // fall back to the date props LAST\n allDay = (!startMeta || startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified);\n }\n }\n if (allDay && startMarker) {\n startMarker = startOfDay(startMarker);\n }\n if (endMeta) {\n endMarker = endMeta.marker;\n if (allDay) {\n endMarker = startOfDay(endMarker);\n }\n if (startMarker && endMarker <= startMarker) {\n endMarker = null;\n }\n }\n if (endMarker) {\n hasEnd = true;\n }\n else if (!allowOpenRange) {\n hasEnd = context.options.forceEventDuration || false;\n endMarker = context.dateEnv.add(startMarker, allDay ?\n context.options.defaultAllDayEventDuration :\n context.options.defaultTimedEventDuration);\n }\n return {\n allDay,\n hasEnd,\n range: { start: startMarker, end: endMarker },\n forcedStartTzo: startMeta ? startMeta.forcedTzo : null,\n forcedEndTzo: endMeta ? endMeta.forcedTzo : null,\n };\n}\nfunction computeIsDefaultAllDay(eventSource, context) {\n let res = null;\n if (eventSource) {\n res = eventSource.defaultAllDay;\n }\n if (res == null) {\n res = context.options.defaultAllDay;\n }\n return res;\n}\n\nfunction parseEvents(rawEvents, eventSource, context, allowOpenRange, defIdMap, instanceIdMap) {\n let eventStore = createEmptyEventStore();\n let eventRefiners = buildEventRefiners(context);\n for (let rawEvent of rawEvents) {\n let tuple = parseEvent(rawEvent, eventSource, context, allowOpenRange, eventRefiners, defIdMap, instanceIdMap);\n if (tuple) {\n eventTupleToStore(tuple, eventStore);\n }\n }\n return eventStore;\n}\nfunction eventTupleToStore(tuple, eventStore = createEmptyEventStore()) {\n eventStore.defs[tuple.def.defId] = tuple.def;\n if (tuple.instance) {\n eventStore.instances[tuple.instance.instanceId] = tuple.instance;\n }\n return eventStore;\n}\n// retrieves events that have the same groupId as the instance specified by `instanceId`\n// or they are the same as the instance.\n// why might instanceId not be in the store? an event from another calendar?\nfunction getRelevantEvents(eventStore, instanceId) {\n let instance = eventStore.instances[instanceId];\n if (instance) {\n let def = eventStore.defs[instance.defId];\n // get events/instances with same group\n let newStore = filterEventStoreDefs(eventStore, (lookDef) => isEventDefsGrouped(def, lookDef));\n // add the original\n // TODO: wish we could use eventTupleToStore or something like it\n newStore.defs[def.defId] = def;\n newStore.instances[instance.instanceId] = instance;\n return newStore;\n }\n return createEmptyEventStore();\n}\nfunction isEventDefsGrouped(def0, def1) {\n return Boolean(def0.groupId && def0.groupId === def1.groupId);\n}\nfunction createEmptyEventStore() {\n return { defs: {}, instances: {} };\n}\nfunction mergeEventStores(store0, store1) {\n return {\n defs: Object.assign(Object.assign({}, store0.defs), store1.defs),\n instances: Object.assign(Object.assign({}, store0.instances), store1.instances),\n };\n}\nfunction filterEventStoreDefs(eventStore, filterFunc) {\n let defs = filterHash(eventStore.defs, filterFunc);\n let instances = filterHash(eventStore.instances, (instance) => (defs[instance.defId] // still exists?\n ));\n return { defs, instances };\n}\nfunction excludeSubEventStore(master, sub) {\n let { defs, instances } = master;\n let filteredDefs = {};\n let filteredInstances = {};\n for (let defId in defs) {\n if (!sub.defs[defId]) { // not explicitly excluded\n filteredDefs[defId] = defs[defId];\n }\n }\n for (let instanceId in instances) {\n if (!sub.instances[instanceId] && // not explicitly excluded\n filteredDefs[instances[instanceId].defId] // def wasn't filtered away\n ) {\n filteredInstances[instanceId] = instances[instanceId];\n }\n }\n return {\n defs: filteredDefs,\n instances: filteredInstances,\n };\n}\n\nfunction normalizeConstraint(input, context) {\n if (Array.isArray(input)) {\n return parseEvents(input, null, context, true); // allowOpenRange=true\n }\n if (typeof input === 'object' && input) { // non-null object\n return parseEvents([input], null, context, true); // allowOpenRange=true\n }\n if (input != null) {\n return String(input);\n }\n return null;\n}\n\nfunction parseClassNames(raw) {\n if (Array.isArray(raw)) {\n return raw;\n }\n if (typeof raw === 'string') {\n return raw.split(/\\s+/);\n }\n return [];\n}\n\n// TODO: better called \"EventSettings\" or \"EventConfig\"\n// TODO: move this file into structs\n// TODO: separate constraint/overlap/allow, because selection uses only that, not other props\nconst EVENT_UI_REFINERS = {\n display: String,\n editable: Boolean,\n startEditable: Boolean,\n durationEditable: Boolean,\n constraint: identity,\n overlap: identity,\n allow: identity,\n className: parseClassNames,\n classNames: parseClassNames,\n color: String,\n backgroundColor: String,\n borderColor: String,\n textColor: String,\n};\nconst EMPTY_EVENT_UI = {\n display: null,\n startEditable: null,\n durationEditable: null,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: [],\n};\nfunction createEventUi(refined, context) {\n let constraint = normalizeConstraint(refined.constraint, context);\n return {\n display: refined.display || null,\n startEditable: refined.startEditable != null ? refined.startEditable : refined.editable,\n durationEditable: refined.durationEditable != null ? refined.durationEditable : refined.editable,\n constraints: constraint != null ? [constraint] : [],\n overlap: refined.overlap != null ? refined.overlap : null,\n allows: refined.allow != null ? [refined.allow] : [],\n backgroundColor: refined.backgroundColor || refined.color || '',\n borderColor: refined.borderColor || refined.color || '',\n textColor: refined.textColor || '',\n classNames: (refined.className || []).concat(refined.classNames || []), // join singular and plural\n };\n}\n// TODO: prevent against problems with <2 args!\nfunction combineEventUis(uis) {\n return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI);\n}\nfunction combineTwoEventUis(item0, item1) {\n return {\n display: item1.display != null ? item1.display : item0.display,\n startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable,\n durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable,\n constraints: item0.constraints.concat(item1.constraints),\n overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap,\n allows: item0.allows.concat(item1.allows),\n backgroundColor: item1.backgroundColor || item0.backgroundColor,\n borderColor: item1.borderColor || item0.borderColor,\n textColor: item1.textColor || item0.textColor,\n classNames: item0.classNames.concat(item1.classNames),\n };\n}\n\nconst EVENT_SOURCE_REFINERS = {\n id: String,\n defaultAllDay: Boolean,\n url: String,\n format: String,\n events: identity,\n eventDataTransform: identity,\n // for any network-related sources\n success: identity,\n failure: identity,\n};\nfunction parseEventSource(raw, context, refiners = buildEventSourceRefiners(context)) {\n let rawObj;\n if (typeof raw === 'string') {\n rawObj = { url: raw };\n }\n else if (typeof raw === 'function' || Array.isArray(raw)) {\n rawObj = { events: raw };\n }\n else if (typeof raw === 'object' && raw) { // not null\n rawObj = raw;\n }\n if (rawObj) {\n let { refined, extra } = refineProps(rawObj, refiners);\n let metaRes = buildEventSourceMeta(refined, context);\n if (metaRes) {\n return {\n _raw: raw,\n isFetching: false,\n latestFetchId: '',\n fetchRange: null,\n defaultAllDay: refined.defaultAllDay,\n eventDataTransform: refined.eventDataTransform,\n success: refined.success,\n failure: refined.failure,\n publicId: refined.id || '',\n sourceId: guid(),\n sourceDefId: metaRes.sourceDefId,\n meta: metaRes.meta,\n ui: createEventUi(refined, context),\n extendedProps: extra,\n };\n }\n }\n return null;\n}\nfunction buildEventSourceRefiners(context) {\n return Object.assign(Object.assign(Object.assign({}, EVENT_UI_REFINERS), EVENT_SOURCE_REFINERS), context.pluginHooks.eventSourceRefiners);\n}\nfunction buildEventSourceMeta(raw, context) {\n let defs = context.pluginHooks.eventSourceDefs;\n for (let i = defs.length - 1; i >= 0; i -= 1) { // later-added plugins take precedence\n let def = defs[i];\n let meta = def.parseMeta(raw);\n if (meta) {\n return { sourceDefId: i, meta };\n }\n }\n return null;\n}\n\nfunction reduceEventStore(eventStore, action, eventSources, dateProfile, context) {\n switch (action.type) {\n case 'RECEIVE_EVENTS': // raw\n return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, context);\n case 'RESET_RAW_EVENTS':\n return resetRawEvents(eventStore, eventSources[action.sourceId], action.rawEvents, dateProfile.activeRange, context);\n case 'ADD_EVENTS': // already parsed, but not expanded\n return addEvent(eventStore, action.eventStore, // new ones\n dateProfile ? dateProfile.activeRange : null, context);\n case 'RESET_EVENTS':\n return action.eventStore;\n case 'MERGE_EVENTS': // already parsed and expanded\n return mergeEventStores(eventStore, action.eventStore);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return expandRecurring(eventStore, dateProfile.activeRange, context);\n }\n return eventStore;\n case 'REMOVE_EVENTS':\n return excludeSubEventStore(eventStore, action.eventStore);\n case 'REMOVE_EVENT_SOURCE':\n return excludeEventsBySourceId(eventStore, action.sourceId);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return filterEventStoreDefs(eventStore, (eventDef) => (!eventDef.sourceId // only keep events with no source id\n ));\n case 'REMOVE_ALL_EVENTS':\n return createEmptyEventStore();\n default:\n return eventStore;\n }\n}\nfunction receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, context) {\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources\n ) {\n let subset = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context);\n if (fetchRange) {\n subset = expandRecurring(subset, fetchRange, context);\n }\n return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);\n }\n return eventStore;\n}\nfunction resetRawEvents(existingEventStore, eventSource, rawEvents, activeRange, context) {\n const { defIdMap, instanceIdMap } = buildPublicIdMaps(existingEventStore);\n let newEventStore = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context, false, defIdMap, instanceIdMap);\n return expandRecurring(newEventStore, activeRange, context);\n}\nfunction transformRawEvents(rawEvents, eventSource, context) {\n let calEachTransform = context.options.eventDataTransform;\n let sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;\n if (sourceEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);\n }\n if (calEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, calEachTransform);\n }\n return rawEvents;\n}\nfunction transformEachRawEvent(rawEvents, func) {\n let refinedEvents;\n if (!func) {\n refinedEvents = rawEvents;\n }\n else {\n refinedEvents = [];\n for (let rawEvent of rawEvents) {\n let refinedEvent = func(rawEvent);\n if (refinedEvent) {\n refinedEvents.push(refinedEvent);\n }\n else if (refinedEvent == null) {\n refinedEvents.push(rawEvent);\n } // if a different falsy value, do nothing\n }\n }\n return refinedEvents;\n}\nfunction addEvent(eventStore, subset, expandRange, context) {\n if (expandRange) {\n subset = expandRecurring(subset, expandRange, context);\n }\n return mergeEventStores(eventStore, subset);\n}\nfunction rezoneEventStoreDates(eventStore, oldDateEnv, newDateEnv) {\n let { defs } = eventStore;\n let instances = mapHash(eventStore.instances, (instance) => {\n let def = defs[instance.defId];\n if (def.allDay) {\n return instance; // isn't dependent on timezone\n }\n return Object.assign(Object.assign({}, instance), { range: {\n start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),\n end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)),\n }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo });\n });\n return { defs, instances };\n}\nfunction excludeEventsBySourceId(eventStore, sourceId) {\n return filterEventStoreDefs(eventStore, (eventDef) => eventDef.sourceId !== sourceId);\n}\n// QUESTION: why not just return instances? do a general object-property-exclusion util\nfunction excludeInstances(eventStore, removals) {\n return {\n defs: eventStore.defs,\n instances: filterHash(eventStore.instances, (instance) => !removals[instance.instanceId]),\n };\n}\nfunction buildPublicIdMaps(eventStore) {\n const { defs, instances } = eventStore;\n const defIdMap = {};\n const instanceIdMap = {};\n for (let defId in defs) {\n const def = defs[defId];\n const { publicId } = def;\n if (publicId) {\n defIdMap[publicId] = defId;\n }\n }\n for (let instanceId in instances) {\n const instance = instances[instanceId];\n const def = defs[instance.defId];\n const { publicId } = def;\n if (publicId) {\n instanceIdMap[publicId] = instanceId;\n }\n }\n return { defIdMap, instanceIdMap };\n}\n\nclass Emitter {\n constructor() {\n this.handlers = {};\n this.thisContext = null;\n }\n setThisContext(thisContext) {\n this.thisContext = thisContext;\n }\n setOptions(options) {\n this.options = options;\n }\n on(type, handler) {\n addToHash(this.handlers, type, handler);\n }\n off(type, handler) {\n removeFromHash(this.handlers, type, handler);\n }\n trigger(type, ...args) {\n let attachedHandlers = this.handlers[type] || [];\n let optionHandler = this.options && this.options[type];\n let handlers = [].concat(optionHandler || [], attachedHandlers);\n for (let handler of handlers) {\n handler.apply(this.thisContext, args);\n }\n }\n hasHandlers(type) {\n return Boolean((this.handlers[type] && this.handlers[type].length) ||\n (this.options && this.options[type]));\n }\n}\nfunction addToHash(hash, type, handler) {\n (hash[type] || (hash[type] = []))\n .push(handler);\n}\nfunction removeFromHash(hash, type, handler) {\n if (handler) {\n if (hash[type]) {\n hash[type] = hash[type].filter((func) => func !== handler);\n }\n }\n else {\n delete hash[type]; // remove all handler funcs for this type\n }\n}\n\nconst DEF_DEFAULTS = {\n startTime: '09:00',\n endTime: '17:00',\n daysOfWeek: [1, 2, 3, 4, 5],\n display: 'inverse-background',\n classNames: 'fc-non-business',\n groupId: '_businessHours', // so multiple defs get grouped\n};\n/*\nTODO: pass around as EventDefHash!!!\n*/\nfunction parseBusinessHours(input, context) {\n return parseEvents(refineInputs(input), null, context);\n}\nfunction refineInputs(input) {\n let rawDefs;\n if (input === true) {\n rawDefs = [{}]; // will get DEF_DEFAULTS verbatim\n }\n else if (Array.isArray(input)) {\n // if specifying an array, every sub-definition NEEDS a day-of-week\n rawDefs = input.filter((rawDef) => rawDef.daysOfWeek);\n }\n else if (typeof input === 'object' && input) { // non-null object\n rawDefs = [input];\n }\n else { // is probably false\n rawDefs = [];\n }\n rawDefs = rawDefs.map((rawDef) => (Object.assign(Object.assign({}, DEF_DEFAULTS), rawDef)));\n return rawDefs;\n}\n\nfunction triggerDateSelect(selection, pev, context) {\n context.emitter.trigger('select', Object.assign(Object.assign({}, buildDateSpanApiWithContext(selection, context)), { jsEvent: pev ? pev.origEvent : null, view: context.viewApi || context.calendarApi.view }));\n}\nfunction triggerDateUnselect(pev, context) {\n context.emitter.trigger('unselect', {\n jsEvent: pev ? pev.origEvent : null,\n view: context.viewApi || context.calendarApi.view,\n });\n}\nfunction buildDateSpanApiWithContext(dateSpan, context) {\n let props = {};\n for (let transform of context.pluginHooks.dateSpanTransforms) {\n Object.assign(props, transform(dateSpan, context));\n }\n Object.assign(props, buildDateSpanApi(dateSpan, context.dateEnv));\n return props;\n}\n// Given an event's allDay status and start date, return what its fallback end date should be.\n// TODO: rename to computeDefaultEventEnd\nfunction getDefaultEventEnd(allDay, marker, context) {\n let { dateEnv, options } = context;\n let end = marker;\n if (allDay) {\n end = startOfDay(end);\n end = dateEnv.add(end, options.defaultAllDayEventDuration);\n }\n else {\n end = dateEnv.add(end, options.defaultTimedEventDuration);\n }\n return end;\n}\n\n// applies the mutation to ALL defs/instances within the event store\nfunction applyMutationToEventStore(eventStore, eventConfigBase, mutation, context) {\n let eventConfigs = compileEventUis(eventStore.defs, eventConfigBase);\n let dest = createEmptyEventStore();\n for (let defId in eventStore.defs) {\n let def = eventStore.defs[defId];\n dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, context);\n }\n for (let instanceId in eventStore.instances) {\n let instance = eventStore.instances[instanceId];\n let def = dest.defs[instance.defId]; // important to grab the newly modified def\n dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, context);\n }\n return dest;\n}\nfunction applyMutationToEventDef(eventDef, eventConfig, mutation, context) {\n let standardProps = mutation.standardProps || {};\n // if hasEnd has not been specified, guess a good value based on deltas.\n // if duration will change, there's no way the default duration will persist,\n // and thus, we need to mark the event as having a real end\n if (standardProps.hasEnd == null &&\n eventConfig.durationEditable &&\n (mutation.startDelta || mutation.endDelta)) {\n standardProps.hasEnd = true; // TODO: is this mutation okay?\n }\n let copy = Object.assign(Object.assign(Object.assign({}, eventDef), standardProps), { ui: Object.assign(Object.assign({}, eventDef.ui), standardProps.ui) });\n if (mutation.extendedProps) {\n copy.extendedProps = Object.assign(Object.assign({}, copy.extendedProps), mutation.extendedProps);\n }\n for (let applier of context.pluginHooks.eventDefMutationAppliers) {\n applier(copy, mutation, context);\n }\n if (!copy.hasEnd && context.options.forceEventDuration) {\n copy.hasEnd = true;\n }\n return copy;\n}\nfunction applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef\neventConfig, mutation, context) {\n let { dateEnv } = context;\n let forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true;\n let clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false;\n let copy = Object.assign({}, eventInstance);\n if (forceAllDay) {\n copy.range = computeAlignedDayRange(copy.range);\n }\n if (mutation.datesDelta && eventConfig.startEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.datesDelta),\n end: dateEnv.add(copy.range.end, mutation.datesDelta),\n };\n }\n if (mutation.startDelta && eventConfig.durationEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.startDelta),\n end: copy.range.end,\n };\n }\n if (mutation.endDelta && eventConfig.durationEditable) {\n copy.range = {\n start: copy.range.start,\n end: dateEnv.add(copy.range.end, mutation.endDelta),\n };\n }\n if (clearEnd) {\n copy.range = {\n start: copy.range.start,\n end: getDefaultEventEnd(eventDef.allDay, copy.range.start, context),\n };\n }\n // in case event was all-day but the supplied deltas were not\n // better util for this?\n if (eventDef.allDay) {\n copy.range = {\n start: startOfDay(copy.range.start),\n end: startOfDay(copy.range.end),\n };\n }\n // handle invalid durations\n if (copy.range.end < copy.range.start) {\n copy.range.end = getDefaultEventEnd(eventDef.allDay, copy.range.start, context);\n }\n return copy;\n}\n\nclass EventSourceImpl {\n constructor(context, internalEventSource) {\n this.context = context;\n this.internalEventSource = internalEventSource;\n }\n remove() {\n this.context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: this.internalEventSource.sourceId,\n });\n }\n refetch() {\n this.context.dispatch({\n type: 'FETCH_EVENT_SOURCES',\n sourceIds: [this.internalEventSource.sourceId],\n isRefetch: true,\n });\n }\n get id() {\n return this.internalEventSource.publicId;\n }\n get url() {\n return this.internalEventSource.meta.url;\n }\n get format() {\n return this.internalEventSource.meta.format; // TODO: bad. not guaranteed\n }\n}\n\nclass EventImpl {\n // instance will be null if expressing a recurring event that has no current instances,\n // OR if trying to validate an incoming external event that has no dates assigned\n constructor(context, def, instance) {\n this._context = context;\n this._def = def;\n this._instance = instance || null;\n }\n /*\n TODO: make event struct more responsible for this\n */\n setProp(name, val) {\n if (name in EVENT_DATE_REFINERS) {\n console.warn('Could not set date-related prop \\'name\\'. Use one of the date-related methods instead.');\n // TODO: make proper aliasing system?\n }\n else if (name === 'id') {\n val = EVENT_NON_DATE_REFINERS[name](val);\n this.mutate({\n standardProps: { publicId: val }, // hardcoded internal name\n });\n }\n else if (name in EVENT_NON_DATE_REFINERS) {\n val = EVENT_NON_DATE_REFINERS[name](val);\n this.mutate({\n standardProps: { [name]: val },\n });\n }\n else if (name in EVENT_UI_REFINERS) {\n let ui = EVENT_UI_REFINERS[name](val);\n if (name === 'color') {\n ui = { backgroundColor: val, borderColor: val };\n }\n else if (name === 'editable') {\n ui = { startEditable: val, durationEditable: val };\n }\n else {\n ui = { [name]: val };\n }\n this.mutate({\n standardProps: { ui },\n });\n }\n else {\n console.warn(`Could not set prop '${name}'. Use setExtendedProp instead.`);\n }\n }\n setExtendedProp(name, val) {\n this.mutate({\n extendedProps: { [name]: val },\n });\n }\n setStart(startInput, options = {}) {\n let { dateEnv } = this._context;\n let start = dateEnv.createMarker(startInput);\n if (start && this._instance) { // TODO: warning if parsed bad\n let instanceRange = this._instance.range;\n let startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!?\n if (options.maintainDuration) {\n this.mutate({ datesDelta: startDelta });\n }\n else {\n this.mutate({ startDelta });\n }\n }\n }\n setEnd(endInput, options = {}) {\n let { dateEnv } = this._context;\n let end;\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n if (!end) {\n return; // TODO: warning if parsed bad\n }\n }\n if (this._instance) {\n if (end) {\n let endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity);\n this.mutate({ endDelta });\n }\n else {\n this.mutate({ standardProps: { hasEnd: false } });\n }\n }\n }\n setDates(startInput, endInput, options = {}) {\n let { dateEnv } = this._context;\n let standardProps = { allDay: options.allDay };\n let start = dateEnv.createMarker(startInput);\n let end;\n if (!start) {\n return; // TODO: warning if parsed bad\n }\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n if (!end) { // TODO: warning if parsed bad\n return;\n }\n }\n if (this._instance) {\n let instanceRange = this._instance.range;\n // when computing the diff for an event being converted to all-day,\n // compute diff off of the all-day values the way event-mutation does.\n if (options.allDay === true) {\n instanceRange = computeAlignedDayRange(instanceRange);\n }\n let startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity);\n if (end) {\n let endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity);\n if (durationsEqual(startDelta, endDelta)) {\n this.mutate({ datesDelta: startDelta, standardProps });\n }\n else {\n this.mutate({ startDelta, endDelta, standardProps });\n }\n }\n else { // means \"clear the end\"\n standardProps.hasEnd = false;\n this.mutate({ datesDelta: startDelta, standardProps });\n }\n }\n }\n moveStart(deltaInput) {\n let delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ startDelta: delta });\n }\n }\n moveEnd(deltaInput) {\n let delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ endDelta: delta });\n }\n }\n moveDates(deltaInput) {\n let delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ datesDelta: delta });\n }\n }\n setAllDay(allDay, options = {}) {\n let standardProps = { allDay };\n let { maintainDuration } = options;\n if (maintainDuration == null) {\n maintainDuration = this._context.options.allDayMaintainDuration;\n }\n if (this._def.allDay !== allDay) {\n standardProps.hasEnd = maintainDuration;\n }\n this.mutate({ standardProps });\n }\n formatRange(formatInput) {\n let { dateEnv } = this._context;\n let instance = this._instance;\n let formatter = createFormatter(formatInput);\n if (this._def.hasEnd) {\n return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, {\n forcedStartTzo: instance.forcedStartTzo,\n forcedEndTzo: instance.forcedEndTzo,\n });\n }\n return dateEnv.format(instance.range.start, formatter, {\n forcedTzo: instance.forcedStartTzo,\n });\n }\n mutate(mutation) {\n let instance = this._instance;\n if (instance) {\n let def = this._def;\n let context = this._context;\n let { eventStore } = context.getCurrentData();\n let relevantEvents = getRelevantEvents(eventStore, instance.instanceId);\n let eventConfigBase = {\n '': {\n display: '',\n startEditable: true,\n durationEditable: true,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: [],\n },\n };\n relevantEvents = applyMutationToEventStore(relevantEvents, eventConfigBase, mutation, context);\n let oldEvent = new EventImpl(context, def, instance); // snapshot\n this._def = relevantEvents.defs[def.defId];\n this._instance = relevantEvents.instances[instance.instanceId];\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents,\n });\n context.emitter.trigger('eventChange', {\n oldEvent,\n event: this,\n relatedEvents: buildEventApis(relevantEvents, context, instance),\n revert() {\n context.dispatch({\n type: 'RESET_EVENTS',\n eventStore, // the ORIGINAL store\n });\n },\n });\n }\n }\n remove() {\n let context = this._context;\n let asStore = eventApiToStore(this);\n context.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: asStore,\n });\n context.emitter.trigger('eventRemove', {\n event: this,\n relatedEvents: [],\n revert() {\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: asStore,\n });\n },\n });\n }\n get source() {\n let { sourceId } = this._def;\n if (sourceId) {\n return new EventSourceImpl(this._context, this._context.getCurrentData().eventSources[sourceId]);\n }\n return null;\n }\n get start() {\n return this._instance ?\n this._context.dateEnv.toDate(this._instance.range.start) :\n null;\n }\n get end() {\n return (this._instance && this._def.hasEnd) ?\n this._context.dateEnv.toDate(this._instance.range.end) :\n null;\n }\n get startStr() {\n let instance = this._instance;\n if (instance) {\n return this._context.dateEnv.formatIso(instance.range.start, {\n omitTime: this._def.allDay,\n forcedTzo: instance.forcedStartTzo,\n });\n }\n return '';\n }\n get endStr() {\n let instance = this._instance;\n if (instance && this._def.hasEnd) {\n return this._context.dateEnv.formatIso(instance.range.end, {\n omitTime: this._def.allDay,\n forcedTzo: instance.forcedEndTzo,\n });\n }\n return '';\n }\n // computable props that all access the def\n // TODO: find a TypeScript-compatible way to do this at scale\n get id() { return this._def.publicId; }\n get groupId() { return this._def.groupId; }\n get allDay() { return this._def.allDay; }\n get title() { return this._def.title; }\n get url() { return this._def.url; }\n get display() { return this._def.ui.display || 'auto'; } // bad. just normalize the type earlier\n get startEditable() { return this._def.ui.startEditable; }\n get durationEditable() { return this._def.ui.durationEditable; }\n get constraint() { return this._def.ui.constraints[0] || null; }\n get overlap() { return this._def.ui.overlap; }\n get allow() { return this._def.ui.allows[0] || null; }\n get backgroundColor() { return this._def.ui.backgroundColor; }\n get borderColor() { return this._def.ui.borderColor; }\n get textColor() { return this._def.ui.textColor; }\n // NOTE: user can't modify these because Object.freeze was called in event-def parsing\n get classNames() { return this._def.ui.classNames; }\n get extendedProps() { return this._def.extendedProps; }\n toPlainObject(settings = {}) {\n let def = this._def;\n let { ui } = def;\n let { startStr, endStr } = this;\n let res = {\n allDay: def.allDay,\n };\n if (def.title) {\n res.title = def.title;\n }\n if (startStr) {\n res.start = startStr;\n }\n if (endStr) {\n res.end = endStr;\n }\n if (def.publicId) {\n res.id = def.publicId;\n }\n if (def.groupId) {\n res.groupId = def.groupId;\n }\n if (def.url) {\n res.url = def.url;\n }\n if (ui.display && ui.display !== 'auto') {\n res.display = ui.display;\n }\n // TODO: what about recurring-event properties???\n // TODO: include startEditable/durationEditable/constraint/overlap/allow\n if (settings.collapseColor && ui.backgroundColor && ui.backgroundColor === ui.borderColor) {\n res.color = ui.backgroundColor;\n }\n else {\n if (ui.backgroundColor) {\n res.backgroundColor = ui.backgroundColor;\n }\n if (ui.borderColor) {\n res.borderColor = ui.borderColor;\n }\n }\n if (ui.textColor) {\n res.textColor = ui.textColor;\n }\n if (ui.classNames.length) {\n res.classNames = ui.classNames;\n }\n if (Object.keys(def.extendedProps).length) {\n if (settings.collapseExtendedProps) {\n Object.assign(res, def.extendedProps);\n }\n else {\n res.extendedProps = def.extendedProps;\n }\n }\n return res;\n }\n toJSON() {\n return this.toPlainObject();\n }\n}\nfunction eventApiToStore(eventApi) {\n let def = eventApi._def;\n let instance = eventApi._instance;\n return {\n defs: { [def.defId]: def },\n instances: instance\n ? { [instance.instanceId]: instance }\n : {},\n };\n}\nfunction buildEventApis(eventStore, context, excludeInstance) {\n let { defs, instances } = eventStore;\n let eventApis = [];\n let excludeInstanceId = excludeInstance ? excludeInstance.instanceId : '';\n for (let id in instances) {\n let instance = instances[id];\n let def = defs[instance.defId];\n if (instance.instanceId !== excludeInstanceId) {\n eventApis.push(new EventImpl(context, def, instance));\n }\n }\n return eventApis;\n}\n\n/*\nSpecifying nextDayThreshold signals that all-day ranges should be sliced.\n*/\nfunction sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) {\n let inverseBgByGroupId = {};\n let inverseBgByDefId = {};\n let defByGroupId = {};\n let bgRanges = [];\n let fgRanges = [];\n let eventUis = compileEventUis(eventStore.defs, eventUiBases);\n for (let defId in eventStore.defs) {\n let def = eventStore.defs[defId];\n let ui = eventUis[def.defId];\n if (ui.display === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId] = [];\n if (!defByGroupId[def.groupId]) {\n defByGroupId[def.groupId] = def;\n }\n }\n else {\n inverseBgByDefId[defId] = [];\n }\n }\n }\n for (let instanceId in eventStore.instances) {\n let instance = eventStore.instances[instanceId];\n let def = eventStore.defs[instance.defId];\n let ui = eventUis[def.defId];\n let origRange = instance.range;\n let normalRange = (!def.allDay && nextDayThreshold) ?\n computeVisibleDayRange(origRange, nextDayThreshold) :\n origRange;\n let slicedRange = intersectRanges(normalRange, framingRange);\n if (slicedRange) {\n if (ui.display === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId].push(slicedRange);\n }\n else {\n inverseBgByDefId[instance.defId].push(slicedRange);\n }\n }\n else if (ui.display !== 'none') {\n (ui.display === 'background' ? bgRanges : fgRanges).push({\n def,\n ui,\n instance,\n range: slicedRange,\n isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(),\n isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf(),\n });\n }\n }\n }\n for (let groupId in inverseBgByGroupId) { // BY GROUP\n let ranges = inverseBgByGroupId[groupId];\n let invertedRanges = invertRanges(ranges, framingRange);\n for (let invertedRange of invertedRanges) {\n let def = defByGroupId[groupId];\n let ui = eventUis[def.defId];\n bgRanges.push({\n def,\n ui,\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false,\n });\n }\n }\n for (let defId in inverseBgByDefId) {\n let ranges = inverseBgByDefId[defId];\n let invertedRanges = invertRanges(ranges, framingRange);\n for (let invertedRange of invertedRanges) {\n bgRanges.push({\n def: eventStore.defs[defId],\n ui: eventUis[defId],\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false,\n });\n }\n }\n return { bg: bgRanges, fg: fgRanges };\n}\nfunction hasBgRendering(def) {\n return def.ui.display === 'background' || def.ui.display === 'inverse-background';\n}\nfunction setElSeg(el, seg) {\n el.fcSeg = seg;\n}\nfunction getElSeg(el) {\n return el.fcSeg ||\n el.parentNode.fcSeg || // for the harness\n null;\n}\n// event ui computation\nfunction compileEventUis(eventDefs, eventUiBases) {\n return mapHash(eventDefs, (eventDef) => compileEventUi(eventDef, eventUiBases));\n}\nfunction compileEventUi(eventDef, eventUiBases) {\n let uis = [];\n if (eventUiBases['']) {\n uis.push(eventUiBases['']);\n }\n if (eventUiBases[eventDef.defId]) {\n uis.push(eventUiBases[eventDef.defId]);\n }\n uis.push(eventDef.ui);\n return combineEventUis(uis);\n}\nfunction sortEventSegs(segs, eventOrderSpecs) {\n let objs = segs.map(buildSegCompareObj);\n objs.sort((obj0, obj1) => compareByFieldSpecs(obj0, obj1, eventOrderSpecs));\n return objs.map((c) => c._seg);\n}\n// returns a object with all primitive props that can be compared\nfunction buildSegCompareObj(seg) {\n let { eventRange } = seg;\n let eventDef = eventRange.def;\n let range = eventRange.instance ? eventRange.instance.range : eventRange.range;\n let start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events\n let end = range.end ? range.end.valueOf() : 0; // \"\n return Object.assign(Object.assign(Object.assign({}, eventDef.extendedProps), eventDef), { id: eventDef.publicId, start,\n end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg });\n}\nfunction computeSegDraggable(seg, context) {\n let { pluginHooks } = context;\n let transformers = pluginHooks.isDraggableTransformers;\n let { def, ui } = seg.eventRange;\n let val = ui.startEditable;\n for (let transformer of transformers) {\n val = transformer(val, def, ui, context);\n }\n return val;\n}\nfunction computeSegStartResizable(seg, context) {\n return seg.isStart && seg.eventRange.ui.durationEditable && context.options.eventResizableFromStart;\n}\nfunction computeSegEndResizable(seg, context) {\n return seg.isEnd && seg.eventRange.ui.durationEditable;\n}\nfunction buildSegTimeText(seg, timeFormat, context, defaultDisplayEventTime, // defaults to true\ndefaultDisplayEventEnd, // defaults to true\nstartOverride, endOverride) {\n let { dateEnv, options } = context;\n let { displayEventTime, displayEventEnd } = options;\n let eventDef = seg.eventRange.def;\n let eventInstance = seg.eventRange.instance;\n if (displayEventTime == null) {\n displayEventTime = defaultDisplayEventTime !== false;\n }\n if (displayEventEnd == null) {\n displayEventEnd = defaultDisplayEventEnd !== false;\n }\n let wholeEventStart = eventInstance.range.start;\n let wholeEventEnd = eventInstance.range.end;\n let segStart = startOverride || seg.start || seg.eventRange.range.start;\n let segEnd = endOverride || seg.end || seg.eventRange.range.end;\n let isStartDay = startOfDay(wholeEventStart).valueOf() === startOfDay(segStart).valueOf();\n let isEndDay = startOfDay(addMs(wholeEventEnd, -1)).valueOf() === startOfDay(addMs(segEnd, -1)).valueOf();\n if (displayEventTime && !eventDef.allDay && (isStartDay || isEndDay)) {\n segStart = isStartDay ? wholeEventStart : segStart;\n segEnd = isEndDay ? wholeEventEnd : segEnd;\n if (displayEventEnd && eventDef.hasEnd) {\n return dateEnv.formatRange(segStart, segEnd, timeFormat, {\n forcedStartTzo: startOverride ? null : eventInstance.forcedStartTzo,\n forcedEndTzo: endOverride ? null : eventInstance.forcedEndTzo,\n });\n }\n return dateEnv.format(segStart, timeFormat, {\n forcedTzo: startOverride ? null : eventInstance.forcedStartTzo, // nooooo, same\n });\n }\n return '';\n}\nfunction getSegMeta(seg, todayRange, nowDate) {\n let segRange = seg.eventRange.range;\n return {\n isPast: segRange.end < (nowDate || todayRange.start),\n isFuture: segRange.start >= (nowDate || todayRange.end),\n isToday: todayRange && rangeContainsMarker(todayRange, segRange.start),\n };\n}\nfunction getEventClassNames(props) {\n let classNames = ['fc-event'];\n if (props.isMirror) {\n classNames.push('fc-event-mirror');\n }\n if (props.isDraggable) {\n classNames.push('fc-event-draggable');\n }\n if (props.isStartResizable || props.isEndResizable) {\n classNames.push('fc-event-resizable');\n }\n if (props.isDragging) {\n classNames.push('fc-event-dragging');\n }\n if (props.isResizing) {\n classNames.push('fc-event-resizing');\n }\n if (props.isSelected) {\n classNames.push('fc-event-selected');\n }\n if (props.isStart) {\n classNames.push('fc-event-start');\n }\n if (props.isEnd) {\n classNames.push('fc-event-end');\n }\n if (props.isPast) {\n classNames.push('fc-event-past');\n }\n if (props.isToday) {\n classNames.push('fc-event-today');\n }\n if (props.isFuture) {\n classNames.push('fc-event-future');\n }\n return classNames;\n}\nfunction buildEventRangeKey(eventRange) {\n return eventRange.instance\n ? eventRange.instance.instanceId\n : `${eventRange.def.defId}:${eventRange.range.start.toISOString()}`;\n // inverse-background events don't have specific instances. TODO: better solution\n}\nfunction getSegAnchorAttrs(seg, context) {\n let { def, instance } = seg.eventRange;\n let { url } = def;\n if (url) {\n return { href: url };\n }\n let { emitter, options } = context;\n let { eventInteractive } = options;\n if (eventInteractive == null) {\n eventInteractive = def.interactive;\n if (eventInteractive == null) {\n eventInteractive = Boolean(emitter.hasHandlers('eventClick'));\n }\n }\n // mock what happens in EventClicking\n if (eventInteractive) {\n // only attach keyboard-related handlers because click handler is already done in EventClicking\n return createAriaKeyboardAttrs((ev) => {\n emitter.trigger('eventClick', {\n el: ev.target,\n event: new EventImpl(context, def, instance),\n jsEvent: ev,\n view: context.viewApi,\n });\n });\n }\n return {};\n}\n\nconst STANDARD_PROPS = {\n start: identity,\n end: identity,\n allDay: Boolean,\n};\nfunction parseDateSpan(raw, dateEnv, defaultDuration) {\n let span = parseOpenDateSpan(raw, dateEnv);\n let { range } = span;\n if (!range.start) {\n return null;\n }\n if (!range.end) {\n if (defaultDuration == null) {\n return null;\n }\n range.end = dateEnv.add(range.start, defaultDuration);\n }\n return span;\n}\n/*\nTODO: somehow combine with parseRange?\nWill return null if the start/end props were present but parsed invalidly.\n*/\nfunction parseOpenDateSpan(raw, dateEnv) {\n let { refined: standardProps, extra } = refineProps(raw, STANDARD_PROPS);\n let startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null;\n let endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null;\n let { allDay } = standardProps;\n if (allDay == null) {\n allDay = (startMeta && startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified);\n }\n return Object.assign({ range: {\n start: startMeta ? startMeta.marker : null,\n end: endMeta ? endMeta.marker : null,\n }, allDay }, extra);\n}\nfunction isDateSpansEqual(span0, span1) {\n return rangesEqual(span0.range, span1.range) &&\n span0.allDay === span1.allDay &&\n isSpanPropsEqual(span0, span1);\n}\n// the NON-DATE-RELATED props\nfunction isSpanPropsEqual(span0, span1) {\n for (let propName in span1) {\n if (propName !== 'range' && propName !== 'allDay') {\n if (span0[propName] !== span1[propName]) {\n return false;\n }\n }\n }\n // are there any props that span0 has that span1 DOESN'T have?\n // both have range/allDay, so no need to special-case.\n for (let propName in span0) {\n if (!(propName in span1)) {\n return false;\n }\n }\n return true;\n}\nfunction buildDateSpanApi(span, dateEnv) {\n return Object.assign(Object.assign({}, buildRangeApi(span.range, dateEnv, span.allDay)), { allDay: span.allDay });\n}\nfunction buildRangeApiWithTimeZone(range, dateEnv, omitTime) {\n return Object.assign(Object.assign({}, buildRangeApi(range, dateEnv, omitTime)), { timeZone: dateEnv.timeZone });\n}\nfunction buildRangeApi(range, dateEnv, omitTime) {\n return {\n start: dateEnv.toDate(range.start),\n end: dateEnv.toDate(range.end),\n startStr: dateEnv.formatIso(range.start, { omitTime }),\n endStr: dateEnv.formatIso(range.end, { omitTime }),\n };\n}\nfunction fabricateEventRange(dateSpan, eventUiBases, context) {\n let res = refineEventDef({ editable: false }, context);\n let def = parseEventDef(res.refined, res.extra, '', // sourceId\n dateSpan.allDay, true, // hasEnd\n context);\n return {\n def,\n ui: compileEventUi(def, eventUiBases),\n instance: createEventInstance(def.defId, dateSpan.range),\n range: dateSpan.range,\n isStart: true,\n isEnd: true,\n };\n}\n\n/*\ngiven a function that resolves a result asynchronously.\nthe function can either call passed-in success and failure callbacks,\nor it can return a promise.\nif you need to pass additional params to func, bind them first.\n*/\nfunction unpromisify(func, normalizedSuccessCallback, normalizedFailureCallback) {\n // guard against success/failure callbacks being called more than once\n // and guard against a promise AND callback being used together.\n let isResolved = false;\n let wrappedSuccess = function (res) {\n if (!isResolved) {\n isResolved = true;\n normalizedSuccessCallback(res);\n }\n };\n let wrappedFailure = function (error) {\n if (!isResolved) {\n isResolved = true;\n normalizedFailureCallback(error);\n }\n };\n let res = func(wrappedSuccess, wrappedFailure);\n if (res && typeof res.then === 'function') {\n res.then(wrappedSuccess, wrappedFailure);\n }\n}\n\nclass JsonRequestError extends Error {\n constructor(message, response) {\n super(message);\n this.response = response;\n }\n}\nfunction requestJson(method, url, params) {\n method = method.toUpperCase();\n const fetchOptions = {\n method,\n };\n if (method === 'GET') {\n url += (url.indexOf('?') === -1 ? '?' : '&') +\n new URLSearchParams(params);\n }\n else {\n fetchOptions.body = new URLSearchParams(params);\n fetchOptions.headers = {\n 'Content-Type': 'application/x-www-form-urlencoded',\n };\n }\n return fetch(url, fetchOptions).then((fetchRes) => {\n if (fetchRes.ok) {\n return fetchRes.json().then((parsedResponse) => {\n return [parsedResponse, fetchRes];\n }, () => {\n throw new JsonRequestError('Failure parsing JSON', fetchRes);\n });\n }\n else {\n throw new JsonRequestError('Request failed', fetchRes);\n }\n });\n}\n\nlet canVGrowWithinCell;\nfunction getCanVGrowWithinCell() {\n if (canVGrowWithinCell == null) {\n canVGrowWithinCell = computeCanVGrowWithinCell();\n }\n return canVGrowWithinCell;\n}\nfunction computeCanVGrowWithinCell() {\n // for SSR, because this function is call immediately at top-level\n // TODO: just make this logic execute top-level, immediately, instead of doing lazily\n if (typeof document === 'undefined') {\n return true;\n }\n let el = document.createElement('div');\n el.style.position = 'absolute';\n el.style.top = '0px';\n el.style.left = '0px';\n el.innerHTML = '<table><tr><td><div></div></td></tr></table>';\n el.querySelector('table').style.height = '100px';\n el.querySelector('div').style.height = '100%';\n document.body.appendChild(el);\n let div = el.querySelector('div');\n let possible = div.offsetHeight > 0;\n document.body.removeChild(el);\n return possible;\n}\n\nclass CalendarRoot extends BaseComponent {\n constructor() {\n super(...arguments);\n this.state = {\n forPrint: false,\n };\n this.handleBeforePrint = () => {\n this.setState({ forPrint: true });\n };\n this.handleAfterPrint = () => {\n this.setState({ forPrint: false });\n };\n }\n render() {\n let { props } = this;\n let { options } = props;\n let { forPrint } = this.state;\n let isHeightAuto = forPrint || options.height === 'auto' || options.contentHeight === 'auto';\n let height = (!isHeightAuto && options.height != null) ? options.height : '';\n let classNames = [\n 'fc',\n forPrint ? 'fc-media-print' : 'fc-media-screen',\n `fc-direction-${options.direction}`,\n props.theme.getClass('root'),\n ];\n if (!getCanVGrowWithinCell()) {\n classNames.push('fc-liquid-hack');\n }\n return props.children(classNames, height, isHeightAuto, forPrint);\n }\n componentDidMount() {\n let { emitter } = this.props;\n emitter.on('_beforeprint', this.handleBeforePrint);\n emitter.on('_afterprint', this.handleAfterPrint);\n }\n componentWillUnmount() {\n let { emitter } = this.props;\n emitter.off('_beforeprint', this.handleBeforePrint);\n emitter.off('_afterprint', this.handleAfterPrint);\n }\n}\n\nclass Interaction {\n constructor(settings) {\n this.component = settings.component;\n this.isHitComboAllowed = settings.isHitComboAllowed || null;\n }\n destroy() {\n }\n}\nfunction parseInteractionSettings(component, input) {\n return {\n component,\n el: input.el,\n useEventCenter: input.useEventCenter != null ? input.useEventCenter : true,\n isHitComboAllowed: input.isHitComboAllowed || null,\n };\n}\nfunction interactionSettingsToStore(settings) {\n return {\n [settings.component.uid]: settings,\n };\n}\n// global state\nconst interactionSettingsStore = {};\n\nclass CalendarImpl {\n getCurrentData() {\n return this.currentDataManager.getCurrentData();\n }\n dispatch(action) {\n this.currentDataManager.dispatch(action);\n }\n get view() { return this.getCurrentData().viewApi; }\n batchRendering(callback) {\n callback();\n }\n updateSize() {\n this.trigger('_resize', true);\n }\n // Options\n // -----------------------------------------------------------------------------------------------------------------\n setOption(name, val) {\n this.dispatch({\n type: 'SET_OPTION',\n optionName: name,\n rawOptionValue: val,\n });\n }\n getOption(name) {\n return this.currentDataManager.currentCalendarOptionsInput[name];\n }\n getAvailableLocaleCodes() {\n return Object.keys(this.getCurrentData().availableRawLocales);\n }\n // Trigger\n // -----------------------------------------------------------------------------------------------------------------\n on(handlerName, handler) {\n let { currentDataManager } = this;\n if (currentDataManager.currentCalendarOptionsRefiners[handlerName]) {\n currentDataManager.emitter.on(handlerName, handler);\n }\n else {\n console.warn(`Unknown listener name '${handlerName}'`);\n }\n }\n off(handlerName, handler) {\n this.currentDataManager.emitter.off(handlerName, handler);\n }\n // not meant for public use\n trigger(handlerName, ...args) {\n this.currentDataManager.emitter.trigger(handlerName, ...args);\n }\n // View\n // -----------------------------------------------------------------------------------------------------------------\n changeView(viewType, dateOrRange) {\n this.batchRendering(() => {\n this.unselect();\n if (dateOrRange) {\n if (dateOrRange.start && dateOrRange.end) { // a range\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType,\n });\n this.dispatch({\n type: 'SET_OPTION',\n optionName: 'visibleRange',\n rawOptionValue: dateOrRange,\n });\n }\n else {\n let { dateEnv } = this.getCurrentData();\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType,\n dateMarker: dateEnv.createMarker(dateOrRange),\n });\n }\n }\n else {\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType,\n });\n }\n });\n }\n // Forces navigation to a view for the given date.\n // `viewType` can be a specific view name or a generic one like \"week\" or \"day\".\n // needs to change\n zoomTo(dateMarker, viewType) {\n let state = this.getCurrentData();\n let spec;\n viewType = viewType || 'day'; // day is default zoom\n spec = state.viewSpecs[viewType] || this.getUnitViewSpec(viewType);\n this.unselect();\n if (spec) {\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: spec.type,\n dateMarker,\n });\n }\n else {\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker,\n });\n }\n }\n // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\n // Preference is given to views that have corresponding buttons.\n getUnitViewSpec(unit) {\n let { viewSpecs, toolbarConfig } = this.getCurrentData();\n let viewTypes = [].concat(toolbarConfig.header ? toolbarConfig.header.viewsWithButtons : [], toolbarConfig.footer ? toolbarConfig.footer.viewsWithButtons : []);\n let i;\n let spec;\n for (let viewType in viewSpecs) {\n viewTypes.push(viewType);\n }\n for (i = 0; i < viewTypes.length; i += 1) {\n spec = viewSpecs[viewTypes[i]];\n if (spec) {\n if (spec.singleUnit === unit) {\n return spec;\n }\n }\n }\n return null;\n }\n // Current Date\n // -----------------------------------------------------------------------------------------------------------------\n prev() {\n this.unselect();\n this.dispatch({ type: 'PREV' });\n }\n next() {\n this.unselect();\n this.dispatch({ type: 'NEXT' });\n }\n prevYear() {\n let state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.addYears(state.currentDate, -1),\n });\n }\n nextYear() {\n let state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.addYears(state.currentDate, 1),\n });\n }\n today() {\n let state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: getNow(state.calendarOptions.now, state.dateEnv),\n });\n }\n gotoDate(zonedDateInput) {\n let state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.createMarker(zonedDateInput),\n });\n }\n incrementDate(deltaInput) {\n let state = this.getCurrentData();\n let delta = createDuration(deltaInput);\n if (delta) { // else, warn about invalid input?\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.add(state.currentDate, delta),\n });\n }\n }\n getDate() {\n let state = this.getCurrentData();\n return state.dateEnv.toDate(state.currentDate);\n }\n // Date Formatting Utils\n // -----------------------------------------------------------------------------------------------------------------\n formatDate(d, formatter) {\n let { dateEnv } = this.getCurrentData();\n return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter));\n }\n // `settings` is for formatter AND isEndExclusive\n formatRange(d0, d1, settings) {\n let { dateEnv } = this.getCurrentData();\n return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings), settings);\n }\n formatIso(d, omitTime) {\n let { dateEnv } = this.getCurrentData();\n return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime });\n }\n // Date Selection / Event Selection / DayClick\n // -----------------------------------------------------------------------------------------------------------------\n select(dateOrObj, endDate) {\n let selectionInput;\n if (endDate == null) {\n if (dateOrObj.start != null) {\n selectionInput = dateOrObj;\n }\n else {\n selectionInput = {\n start: dateOrObj,\n end: null,\n };\n }\n }\n else {\n selectionInput = {\n start: dateOrObj,\n end: endDate,\n };\n }\n let state = this.getCurrentData();\n let selection = parseDateSpan(selectionInput, state.dateEnv, createDuration({ days: 1 }));\n if (selection) { // throw parse error otherwise?\n this.dispatch({ type: 'SELECT_DATES', selection });\n triggerDateSelect(selection, null, state);\n }\n }\n unselect(pev) {\n let state = this.getCurrentData();\n if (state.dateSelection) {\n this.dispatch({ type: 'UNSELECT_DATES' });\n triggerDateUnselect(pev, state);\n }\n }\n // Public Events API\n // -----------------------------------------------------------------------------------------------------------------\n addEvent(eventInput, sourceInput) {\n if (eventInput instanceof EventImpl) {\n let def = eventInput._def;\n let instance = eventInput._instance;\n let currentData = this.getCurrentData();\n // not already present? don't want to add an old snapshot\n if (!currentData.eventStore.defs[def.defId]) {\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore({ def, instance }), // TODO: better util for two args?\n });\n this.triggerEventAdd(eventInput);\n }\n return eventInput;\n }\n let state = this.getCurrentData();\n let eventSource;\n if (sourceInput instanceof EventSourceImpl) {\n eventSource = sourceInput.internalEventSource;\n }\n else if (typeof sourceInput === 'boolean') {\n if (sourceInput) { // true. part of the first event source\n [eventSource] = hashValuesToArray(state.eventSources);\n }\n }\n else if (sourceInput != null) { // an ID. accepts a number too\n let sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function\n if (!sourceApi) {\n console.warn(`Could not find an event source with ID \"${sourceInput}\"`); // TODO: test\n return null;\n }\n eventSource = sourceApi.internalEventSource;\n }\n let tuple = parseEvent(eventInput, eventSource, state, false);\n if (tuple) {\n let newEventApi = new EventImpl(state, tuple.def, tuple.def.recurringDef ? null : tuple.instance);\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore(tuple),\n });\n this.triggerEventAdd(newEventApi);\n return newEventApi;\n }\n return null;\n }\n triggerEventAdd(eventApi) {\n let { emitter } = this.getCurrentData();\n emitter.trigger('eventAdd', {\n event: eventApi,\n relatedEvents: [],\n revert: () => {\n this.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: eventApiToStore(eventApi),\n });\n },\n });\n }\n // TODO: optimize\n getEventById(id) {\n let state = this.getCurrentData();\n let { defs, instances } = state.eventStore;\n id = String(id);\n for (let defId in defs) {\n let def = defs[defId];\n if (def.publicId === id) {\n if (def.recurringDef) {\n return new EventImpl(state, def, null);\n }\n for (let instanceId in instances) {\n let instance = instances[instanceId];\n if (instance.defId === def.defId) {\n return new EventImpl(state, def, instance);\n }\n }\n }\n }\n return null;\n }\n getEvents() {\n let currentData = this.getCurrentData();\n return buildEventApis(currentData.eventStore, currentData);\n }\n removeAllEvents() {\n this.dispatch({ type: 'REMOVE_ALL_EVENTS' });\n }\n // Public Event Sources API\n // -----------------------------------------------------------------------------------------------------------------\n getEventSources() {\n let state = this.getCurrentData();\n let sourceHash = state.eventSources;\n let sourceApis = [];\n for (let internalId in sourceHash) {\n sourceApis.push(new EventSourceImpl(state, sourceHash[internalId]));\n }\n return sourceApis;\n }\n getEventSourceById(id) {\n let state = this.getCurrentData();\n let sourceHash = state.eventSources;\n id = String(id);\n for (let sourceId in sourceHash) {\n if (sourceHash[sourceId].publicId === id) {\n return new EventSourceImpl(state, sourceHash[sourceId]);\n }\n }\n return null;\n }\n addEventSource(sourceInput) {\n let state = this.getCurrentData();\n if (sourceInput instanceof EventSourceImpl) {\n // not already present? don't want to add an old snapshot\n if (!state.eventSources[sourceInput.internalEventSource.sourceId]) {\n this.dispatch({\n type: 'ADD_EVENT_SOURCES',\n sources: [sourceInput.internalEventSource],\n });\n }\n return sourceInput;\n }\n let eventSource = parseEventSource(sourceInput, state);\n if (eventSource) { // TODO: error otherwise?\n this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] });\n return new EventSourceImpl(state, eventSource);\n }\n return null;\n }\n removeAllEventSources() {\n this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' });\n }\n refetchEvents() {\n this.dispatch({ type: 'FETCH_EVENT_SOURCES', isRefetch: true });\n }\n // Scroll\n // -----------------------------------------------------------------------------------------------------------------\n scrollToTime(timeInput) {\n let time = createDuration(timeInput);\n if (time) {\n this.trigger('_scrollRequest', { time });\n }\n }\n}\n\nfunction pointInsideRect(point, rect) {\n return point.left >= rect.left &&\n point.left < rect.right &&\n point.top >= rect.top &&\n point.top < rect.bottom;\n}\n// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\nfunction intersectRects(rect1, rect2) {\n let res = {\n left: Math.max(rect1.left, rect2.left),\n right: Math.min(rect1.right, rect2.right),\n top: Math.max(rect1.top, rect2.top),\n bottom: Math.min(rect1.bottom, rect2.bottom),\n };\n if (res.left < res.right && res.top < res.bottom) {\n return res;\n }\n return false;\n}\nfunction translateRect(rect, deltaX, deltaY) {\n return {\n left: rect.left + deltaX,\n right: rect.right + deltaX,\n top: rect.top + deltaY,\n bottom: rect.bottom + deltaY,\n };\n}\n// Returns a new point that will have been moved to reside within the given rectangle\nfunction constrainPoint(point, rect) {\n return {\n left: Math.min(Math.max(point.left, rect.left), rect.right),\n top: Math.min(Math.max(point.top, rect.top), rect.bottom),\n };\n}\n// Returns a point that is the center of the given rectangle\nfunction getRectCenter(rect) {\n return {\n left: (rect.left + rect.right) / 2,\n top: (rect.top + rect.bottom) / 2,\n };\n}\n// Subtracts point2's coordinates from point1's coordinates, returning a delta\nfunction diffPoints(point1, point2) {\n return {\n left: point1.left - point2.left,\n top: point1.top - point2.top,\n };\n}\n\nconst EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere\nclass Splitter {\n constructor() {\n this.getKeysForEventDefs = memoize(this._getKeysForEventDefs);\n this.splitDateSelection = memoize(this._splitDateSpan);\n this.splitEventStore = memoize(this._splitEventStore);\n this.splitIndividualUi = memoize(this._splitIndividualUi);\n this.splitEventDrag = memoize(this._splitInteraction);\n this.splitEventResize = memoize(this._splitInteraction);\n this.eventUiBuilders = {}; // TODO: typescript protection\n }\n splitProps(props) {\n let keyInfos = this.getKeyInfo(props);\n let defKeys = this.getKeysForEventDefs(props.eventStore);\n let dateSelections = this.splitDateSelection(props.dateSelection);\n let individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases*\n let eventStores = this.splitEventStore(props.eventStore, defKeys);\n let eventDrags = this.splitEventDrag(props.eventDrag);\n let eventResizes = this.splitEventResize(props.eventResize);\n let splitProps = {};\n this.eventUiBuilders = mapHash(keyInfos, (info, key) => this.eventUiBuilders[key] || memoize(buildEventUiForKey));\n for (let key in keyInfos) {\n let keyInfo = keyInfos[key];\n let eventStore = eventStores[key] || EMPTY_EVENT_STORE;\n let buildEventUi = this.eventUiBuilders[key];\n splitProps[key] = {\n businessHours: keyInfo.businessHours || props.businessHours,\n dateSelection: dateSelections[key] || null,\n eventStore,\n eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]),\n eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '',\n eventDrag: eventDrags[key] || null,\n eventResize: eventResizes[key] || null,\n };\n }\n return splitProps;\n }\n _splitDateSpan(dateSpan) {\n let dateSpans = {};\n if (dateSpan) {\n let keys = this.getKeysForDateSpan(dateSpan);\n for (let key of keys) {\n dateSpans[key] = dateSpan;\n }\n }\n return dateSpans;\n }\n _getKeysForEventDefs(eventStore) {\n return mapHash(eventStore.defs, (eventDef) => this.getKeysForEventDef(eventDef));\n }\n _splitEventStore(eventStore, defKeys) {\n let { defs, instances } = eventStore;\n let splitStores = {};\n for (let defId in defs) {\n for (let key of defKeys[defId]) {\n if (!splitStores[key]) {\n splitStores[key] = createEmptyEventStore();\n }\n splitStores[key].defs[defId] = defs[defId];\n }\n }\n for (let instanceId in instances) {\n let instance = instances[instanceId];\n for (let key of defKeys[instance.defId]) {\n if (splitStores[key]) { // must have already been created\n splitStores[key].instances[instanceId] = instance;\n }\n }\n }\n return splitStores;\n }\n _splitIndividualUi(eventUiBases, defKeys) {\n let splitHashes = {};\n for (let defId in eventUiBases) {\n if (defId) { // not the '' key\n for (let key of defKeys[defId]) {\n if (!splitHashes[key]) {\n splitHashes[key] = {};\n }\n splitHashes[key][defId] = eventUiBases[defId];\n }\n }\n }\n return splitHashes;\n }\n _splitInteraction(interaction) {\n let splitStates = {};\n if (interaction) {\n let affectedStores = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents));\n // can't rely on defKeys because event data is mutated\n let mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents);\n let mutatedStores = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId);\n let populate = (key) => {\n if (!splitStates[key]) {\n splitStates[key] = {\n affectedEvents: affectedStores[key] || EMPTY_EVENT_STORE,\n mutatedEvents: mutatedStores[key] || EMPTY_EVENT_STORE,\n isEvent: interaction.isEvent,\n };\n }\n };\n for (let key in affectedStores) {\n populate(key);\n }\n for (let key in mutatedStores) {\n populate(key);\n }\n }\n return splitStates;\n }\n}\nfunction buildEventUiForKey(allUi, eventUiForKey, individualUi) {\n let baseParts = [];\n if (allUi) {\n baseParts.push(allUi);\n }\n if (eventUiForKey) {\n baseParts.push(eventUiForKey);\n }\n let stuff = {\n '': combineEventUis(baseParts),\n };\n if (individualUi) {\n Object.assign(stuff, individualUi);\n }\n return stuff;\n}\n\nfunction getDateMeta(date, todayRange, nowDate, dateProfile) {\n return {\n dow: date.getUTCDay(),\n isDisabled: Boolean(dateProfile && !rangeContainsMarker(dateProfile.activeRange, date)),\n isOther: Boolean(dateProfile && !rangeContainsMarker(dateProfile.currentRange, date)),\n isToday: Boolean(todayRange && rangeContainsMarker(todayRange, date)),\n isPast: Boolean(nowDate ? (date < nowDate) : todayRange ? (date < todayRange.start) : false),\n isFuture: Boolean(nowDate ? (date > nowDate) : todayRange ? (date >= todayRange.end) : false),\n };\n}\nfunction getDayClassNames(meta, theme) {\n let classNames = [\n 'fc-day',\n `fc-day-${DAY_IDS[meta.dow]}`,\n ];\n if (meta.isDisabled) {\n classNames.push('fc-day-disabled');\n }\n else {\n if (meta.isToday) {\n classNames.push('fc-day-today');\n classNames.push(theme.getClass('today'));\n }\n if (meta.isPast) {\n classNames.push('fc-day-past');\n }\n if (meta.isFuture) {\n classNames.push('fc-day-future');\n }\n if (meta.isOther) {\n classNames.push('fc-day-other');\n }\n }\n return classNames;\n}\nfunction getSlotClassNames(meta, theme) {\n let classNames = [\n 'fc-slot',\n `fc-slot-${DAY_IDS[meta.dow]}`,\n ];\n if (meta.isDisabled) {\n classNames.push('fc-slot-disabled');\n }\n else {\n if (meta.isToday) {\n classNames.push('fc-slot-today');\n classNames.push(theme.getClass('today'));\n }\n if (meta.isPast) {\n classNames.push('fc-slot-past');\n }\n if (meta.isFuture) {\n classNames.push('fc-slot-future');\n }\n }\n return classNames;\n}\n\nconst DAY_FORMAT = createFormatter({ year: 'numeric', month: 'long', day: 'numeric' });\nconst WEEK_FORMAT = createFormatter({ week: 'long' });\nfunction buildNavLinkAttrs(context, dateMarker, viewType = 'day', isTabbable = true) {\n const { dateEnv, options, calendarApi } = context;\n let dateStr = dateEnv.format(dateMarker, viewType === 'week' ? WEEK_FORMAT : DAY_FORMAT);\n if (options.navLinks) {\n let zonedDate = dateEnv.toDate(dateMarker);\n const handleInteraction = (ev) => {\n let customAction = viewType === 'day' ? options.navLinkDayClick :\n viewType === 'week' ? options.navLinkWeekClick : null;\n if (typeof customAction === 'function') {\n customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);\n }\n else {\n if (typeof customAction === 'string') {\n viewType = customAction;\n }\n calendarApi.zoomTo(dateMarker, viewType);\n }\n };\n return Object.assign({ title: formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr), 'data-navlink': '' }, (isTabbable\n ? createAriaClickAttrs(handleInteraction)\n : { onClick: handleInteraction }));\n }\n return { 'aria-label': dateStr };\n}\n\nlet _isRtlScrollbarOnLeft = null;\nfunction getIsRtlScrollbarOnLeft() {\n if (_isRtlScrollbarOnLeft === null) {\n _isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft();\n }\n return _isRtlScrollbarOnLeft;\n}\nfunction computeIsRtlScrollbarOnLeft() {\n let outerEl = document.createElement('div');\n applyStyle(outerEl, {\n position: 'absolute',\n top: -1000,\n left: 0,\n border: 0,\n padding: 0,\n overflow: 'scroll',\n direction: 'rtl',\n });\n outerEl.innerHTML = '<div></div>';\n document.body.appendChild(outerEl);\n let innerEl = outerEl.firstChild;\n let res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left;\n removeElement(outerEl);\n return res;\n}\n\nlet _scrollbarWidths;\nfunction getScrollbarWidths() {\n if (!_scrollbarWidths) {\n _scrollbarWidths = computeScrollbarWidths();\n }\n return _scrollbarWidths;\n}\nfunction computeScrollbarWidths() {\n let el = document.createElement('div');\n el.style.overflow = 'scroll';\n el.style.position = 'absolute';\n el.style.top = '-9999px';\n el.style.left = '-9999px';\n document.body.appendChild(el);\n let res = computeScrollbarWidthsForEl(el);\n document.body.removeChild(el);\n return res;\n}\n// WARNING: will include border\nfunction computeScrollbarWidthsForEl(el) {\n return {\n x: el.offsetHeight - el.clientHeight,\n y: el.offsetWidth - el.clientWidth,\n };\n}\n\nfunction computeEdges(el, getPadding = false) {\n let computedStyle = window.getComputedStyle(el);\n let borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0;\n let borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0;\n let borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0;\n let borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0;\n let badScrollbarWidths = computeScrollbarWidthsForEl(el); // includes border!\n let scrollbarLeftRight = badScrollbarWidths.y - borderLeft - borderRight;\n let scrollbarBottom = badScrollbarWidths.x - borderTop - borderBottom;\n let res = {\n borderLeft,\n borderRight,\n borderTop,\n borderBottom,\n scrollbarBottom,\n scrollbarLeft: 0,\n scrollbarRight: 0,\n };\n if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side?\n res.scrollbarLeft = scrollbarLeftRight;\n }\n else {\n res.scrollbarRight = scrollbarLeftRight;\n }\n if (getPadding) {\n res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;\n res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;\n res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0;\n res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0;\n }\n return res;\n}\nfunction computeInnerRect(el, goWithinPadding = false, doFromWindowViewport) {\n let outerRect = doFromWindowViewport ? el.getBoundingClientRect() : computeRect(el);\n let edges = computeEdges(el, goWithinPadding);\n let res = {\n left: outerRect.left + edges.borderLeft + edges.scrollbarLeft,\n right: outerRect.right - edges.borderRight - edges.scrollbarRight,\n top: outerRect.top + edges.borderTop,\n bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom,\n };\n if (goWithinPadding) {\n res.left += edges.paddingLeft;\n res.right -= edges.paddingRight;\n res.top += edges.paddingTop;\n res.bottom -= edges.paddingBottom;\n }\n return res;\n}\nfunction computeRect(el) {\n let rect = el.getBoundingClientRect();\n return {\n left: rect.left + window.pageXOffset,\n top: rect.top + window.pageYOffset,\n right: rect.right + window.pageXOffset,\n bottom: rect.bottom + window.pageYOffset,\n };\n}\nfunction computeClippedClientRect(el) {\n let clippingParents = getClippingParents(el);\n let rect = el.getBoundingClientRect();\n for (let clippingParent of clippingParents) {\n let intersection = intersectRects(rect, clippingParent.getBoundingClientRect());\n if (intersection) {\n rect = intersection;\n }\n else {\n return null;\n }\n }\n return rect;\n}\n// does not return window\nfunction getClippingParents(el) {\n let parents = [];\n while (el instanceof HTMLElement) { // will stop when gets to document or null\n let computedStyle = window.getComputedStyle(el);\n if (computedStyle.position === 'fixed') {\n break;\n }\n if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) {\n parents.push(el);\n }\n el = el.parentNode;\n }\n return parents;\n}\n\n/*\nRecords offset information for a set of elements, relative to an origin element.\nCan record the left/right OR the top/bottom OR both.\nProvides methods for querying the cache by position.\n*/\nclass PositionCache {\n constructor(originEl, els, isHorizontal, isVertical) {\n this.els = els;\n let originClientRect = this.originClientRect = originEl.getBoundingClientRect(); // relative to viewport top-left\n if (isHorizontal) {\n this.buildElHorizontals(originClientRect.left);\n }\n if (isVertical) {\n this.buildElVerticals(originClientRect.top);\n }\n }\n // Populates the left/right internal coordinate arrays\n buildElHorizontals(originClientLeft) {\n let lefts = [];\n let rights = [];\n for (let el of this.els) {\n let rect = el.getBoundingClientRect();\n lefts.push(rect.left - originClientLeft);\n rights.push(rect.right - originClientLeft);\n }\n this.lefts = lefts;\n this.rights = rights;\n }\n // Populates the top/bottom internal coordinate arrays\n buildElVerticals(originClientTop) {\n let tops = [];\n let bottoms = [];\n for (let el of this.els) {\n let rect = el.getBoundingClientRect();\n tops.push(rect.top - originClientTop);\n bottoms.push(rect.bottom - originClientTop);\n }\n this.tops = tops;\n this.bottoms = bottoms;\n }\n // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\n // If no intersection is made, returns undefined.\n leftToIndex(leftPosition) {\n let { lefts, rights } = this;\n let len = lefts.length;\n let i;\n for (i = 0; i < len; i += 1) {\n if (leftPosition >= lefts[i] && leftPosition < rights[i]) {\n return i;\n }\n }\n return undefined; // TODO: better\n }\n // Given a top offset (from document top), returns the index of the el that it vertically intersects.\n // If no intersection is made, returns undefined.\n topToIndex(topPosition) {\n let { tops, bottoms } = this;\n let len = tops.length;\n let i;\n for (i = 0; i < len; i += 1) {\n if (topPosition >= tops[i] && topPosition < bottoms[i]) {\n return i;\n }\n }\n return undefined; // TODO: better\n }\n // Gets the width of the element at the given index\n getWidth(leftIndex) {\n return this.rights[leftIndex] - this.lefts[leftIndex];\n }\n // Gets the height of the element at the given index\n getHeight(topIndex) {\n return this.bottoms[topIndex] - this.tops[topIndex];\n }\n similarTo(otherCache) {\n return similarNumArrays(this.tops || [], otherCache.tops || []) &&\n similarNumArrays(this.bottoms || [], otherCache.bottoms || []) &&\n similarNumArrays(this.lefts || [], otherCache.lefts || []) &&\n similarNumArrays(this.rights || [], otherCache.rights || []);\n }\n}\nfunction similarNumArrays(a, b) {\n const len = a.length;\n if (len !== b.length) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n if (Math.round(a[i]) !== Math.round(b[i])) {\n return false;\n }\n }\n return true;\n}\n\n/* eslint max-classes-per-file: \"off\" */\n/*\nAn object for getting/setting scroll-related information for an element.\nInternally, this is done very differently for window versus DOM element,\nso this object serves as a common interface.\n*/\nclass ScrollController {\n getMaxScrollTop() {\n return this.getScrollHeight() - this.getClientHeight();\n }\n getMaxScrollLeft() {\n return this.getScrollWidth() - this.getClientWidth();\n }\n canScrollVertically() {\n return this.getMaxScrollTop() > 0;\n }\n canScrollHorizontally() {\n return this.getMaxScrollLeft() > 0;\n }\n canScrollUp() {\n return this.getScrollTop() > 0;\n }\n canScrollDown() {\n return this.getScrollTop() < this.getMaxScrollTop();\n }\n canScrollLeft() {\n return this.getScrollLeft() > 0;\n }\n canScrollRight() {\n return this.getScrollLeft() < this.getMaxScrollLeft();\n }\n}\nclass ElementScrollController extends ScrollController {\n constructor(el) {\n super();\n this.el = el;\n }\n getScrollTop() {\n return this.el.scrollTop;\n }\n getScrollLeft() {\n return this.el.scrollLeft;\n }\n setScrollTop(top) {\n this.el.scrollTop = top;\n }\n setScrollLeft(left) {\n this.el.scrollLeft = left;\n }\n getScrollWidth() {\n return this.el.scrollWidth;\n }\n getScrollHeight() {\n return this.el.scrollHeight;\n }\n getClientHeight() {\n return this.el.clientHeight;\n }\n getClientWidth() {\n return this.el.clientWidth;\n }\n}\nclass WindowScrollController extends ScrollController {\n getScrollTop() {\n return window.pageYOffset;\n }\n getScrollLeft() {\n return window.pageXOffset;\n }\n setScrollTop(n) {\n window.scroll(window.pageXOffset, n);\n }\n setScrollLeft(n) {\n window.scroll(n, window.pageYOffset);\n }\n getScrollWidth() {\n return document.documentElement.scrollWidth;\n }\n getScrollHeight() {\n return document.documentElement.scrollHeight;\n }\n getClientHeight() {\n return document.documentElement.clientHeight;\n }\n getClientWidth() {\n return document.documentElement.clientWidth;\n }\n}\n\n/*\nan INTERACTABLE date component\n\nPURPOSES:\n- hook up to fg, fill, and mirror renderers\n- interface for dragging and hits\n*/\nclass DateComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.uid = guid();\n }\n // Hit System\n // -----------------------------------------------------------------------------------------------------------------\n prepareHits() {\n }\n queryHit(positionLeft, positionTop, elWidth, elHeight) {\n return null; // this should be abstract\n }\n // Pointer Interaction Utils\n // -----------------------------------------------------------------------------------------------------------------\n isValidSegDownEl(el) {\n return !this.props.eventDrag && // HACK\n !this.props.eventResize && // HACK\n !elementClosest(el, '.fc-event-mirror');\n }\n isValidDateDownEl(el) {\n return !elementClosest(el, '.fc-event:not(.fc-bg-event)') &&\n !elementClosest(el, '.fc-more-link') && // a \"more..\" link\n !elementClosest(el, 'a[data-navlink]') && // a clickable nav link\n !elementClosest(el, '.fc-popover'); // hack\n }\n}\n\nclass NamedTimeZoneImpl {\n constructor(timeZoneName) {\n this.timeZoneName = timeZoneName;\n }\n}\n\nclass SegHierarchy {\n constructor(getEntryThickness = (entry) => {\n // should return an integer\n return entry.thickness;\n }) {\n this.getEntryThickness = getEntryThickness;\n // settings\n this.strictOrder = false;\n this.allowReslicing = false;\n this.maxCoord = -1; // -1 means no max\n this.maxStackCnt = -1; // -1 means no max\n this.levelCoords = []; // ordered\n this.entriesByLevel = []; // parallel with levelCoords\n this.stackCnts = {}; // TODO: use better technique!?\n }\n addSegs(inputs) {\n let hiddenEntries = [];\n for (let input of inputs) {\n this.insertEntry(input, hiddenEntries);\n }\n return hiddenEntries;\n }\n insertEntry(entry, hiddenEntries) {\n let insertion = this.findInsertion(entry);\n if (this.isInsertionValid(insertion, entry)) {\n this.insertEntryAt(entry, insertion);\n return 1;\n }\n return this.handleInvalidInsertion(insertion, entry, hiddenEntries);\n }\n isInsertionValid(insertion, entry) {\n return (this.maxCoord === -1 || insertion.levelCoord + this.getEntryThickness(entry) <= this.maxCoord) &&\n (this.maxStackCnt === -1 || insertion.stackCnt < this.maxStackCnt);\n }\n // returns number of new entries inserted\n handleInvalidInsertion(insertion, entry, hiddenEntries) {\n if (this.allowReslicing && insertion.touchingEntry) {\n return this.splitEntry(entry, insertion.touchingEntry, hiddenEntries);\n }\n hiddenEntries.push(entry);\n return 0;\n }\n splitEntry(entry, barrier, hiddenEntries) {\n let partCnt = 0;\n let splitHiddenEntries = [];\n let entrySpan = entry.span;\n let barrierSpan = barrier.span;\n if (entrySpan.start < barrierSpan.start) {\n partCnt += this.insertEntry({\n index: entry.index,\n thickness: entry.thickness,\n span: { start: entrySpan.start, end: barrierSpan.start },\n }, splitHiddenEntries);\n }\n if (entrySpan.end > barrierSpan.end) {\n partCnt += this.insertEntry({\n index: entry.index,\n thickness: entry.thickness,\n span: { start: barrierSpan.end, end: entrySpan.end },\n }, splitHiddenEntries);\n }\n if (partCnt) {\n hiddenEntries.push({\n index: entry.index,\n thickness: entry.thickness,\n span: intersectSpans(barrierSpan, entrySpan), // guaranteed to intersect\n }, ...splitHiddenEntries);\n return partCnt;\n }\n hiddenEntries.push(entry);\n return 0;\n }\n insertEntryAt(entry, insertion) {\n let { entriesByLevel, levelCoords } = this;\n if (insertion.lateral === -1) {\n // create a new level\n insertAt(levelCoords, insertion.level, insertion.levelCoord);\n insertAt(entriesByLevel, insertion.level, [entry]);\n }\n else {\n // insert into existing level\n insertAt(entriesByLevel[insertion.level], insertion.lateral, entry);\n }\n this.stackCnts[buildEntryKey(entry)] = insertion.stackCnt;\n }\n findInsertion(newEntry) {\n let { levelCoords, entriesByLevel, strictOrder, stackCnts } = this;\n let levelCnt = levelCoords.length;\n let candidateCoord = 0;\n let touchingLevel = -1;\n let touchingLateral = -1;\n let touchingEntry = null;\n let stackCnt = 0;\n for (let trackingLevel = 0; trackingLevel < levelCnt; trackingLevel += 1) {\n let trackingCoord = levelCoords[trackingLevel];\n // if the current level is past the placed entry, we have found a good empty space and can stop.\n // if strictOrder, keep finding more lateral intersections.\n if (!strictOrder && trackingCoord >= candidateCoord + this.getEntryThickness(newEntry)) {\n break;\n }\n let trackingEntries = entriesByLevel[trackingLevel];\n let trackingEntry;\n let searchRes = binarySearch(trackingEntries, newEntry.span.start, getEntrySpanEnd); // find first entry after newEntry's end\n let lateralIndex = searchRes[0] + searchRes[1]; // if exact match (which doesn't collide), go to next one\n while ( // loop through entries that horizontally intersect\n (trackingEntry = trackingEntries[lateralIndex]) && // but not past the whole entry list\n trackingEntry.span.start < newEntry.span.end // and not entirely past newEntry\n ) {\n let trackingEntryBottom = trackingCoord + this.getEntryThickness(trackingEntry);\n // intersects into the top of the candidate?\n if (trackingEntryBottom > candidateCoord) {\n candidateCoord = trackingEntryBottom;\n touchingEntry = trackingEntry;\n touchingLevel = trackingLevel;\n touchingLateral = lateralIndex;\n }\n // butts up against top of candidate? (will happen if just intersected as well)\n if (trackingEntryBottom === candidateCoord) {\n // accumulate the highest possible stackCnt of the trackingEntries that butt up\n stackCnt = Math.max(stackCnt, stackCnts[buildEntryKey(trackingEntry)] + 1);\n }\n lateralIndex += 1;\n }\n }\n // the destination level will be after touchingEntry's level. find it\n let destLevel = 0;\n if (touchingEntry) {\n destLevel = touchingLevel + 1;\n while (destLevel < levelCnt && levelCoords[destLevel] < candidateCoord) {\n destLevel += 1;\n }\n }\n // if adding to an existing level, find where to insert\n let destLateral = -1;\n if (destLevel < levelCnt && levelCoords[destLevel] === candidateCoord) {\n destLateral = binarySearch(entriesByLevel[destLevel], newEntry.span.end, getEntrySpanEnd)[0];\n }\n return {\n touchingLevel,\n touchingLateral,\n touchingEntry,\n stackCnt,\n levelCoord: candidateCoord,\n level: destLevel,\n lateral: destLateral,\n };\n }\n // sorted by levelCoord (lowest to highest)\n toRects() {\n let { entriesByLevel, levelCoords } = this;\n let levelCnt = entriesByLevel.length;\n let rects = [];\n for (let level = 0; level < levelCnt; level += 1) {\n let entries = entriesByLevel[level];\n let levelCoord = levelCoords[level];\n for (let entry of entries) {\n rects.push(Object.assign(Object.assign({}, entry), { thickness: this.getEntryThickness(entry), levelCoord }));\n }\n }\n return rects;\n }\n}\nfunction getEntrySpanEnd(entry) {\n return entry.span.end;\n}\nfunction buildEntryKey(entry) {\n return entry.index + ':' + entry.span.start;\n}\n// returns groups with entries sorted by input order\nfunction groupIntersectingEntries(entries) {\n let merges = [];\n for (let entry of entries) {\n let filteredMerges = [];\n let hungryMerge = {\n span: entry.span,\n entries: [entry],\n };\n for (let merge of merges) {\n if (intersectSpans(merge.span, hungryMerge.span)) {\n hungryMerge = {\n entries: merge.entries.concat(hungryMerge.entries),\n span: joinSpans(merge.span, hungryMerge.span),\n };\n }\n else {\n filteredMerges.push(merge);\n }\n }\n filteredMerges.push(hungryMerge);\n merges = filteredMerges;\n }\n return merges;\n}\nfunction joinSpans(span0, span1) {\n return {\n start: Math.min(span0.start, span1.start),\n end: Math.max(span0.end, span1.end),\n };\n}\nfunction intersectSpans(span0, span1) {\n let start = Math.max(span0.start, span1.start);\n let end = Math.min(span0.end, span1.end);\n if (start < end) {\n return { start, end };\n }\n return null;\n}\n// general util\n// ---------------------------------------------------------------------------------------------------------------------\nfunction insertAt(arr, index, item) {\n arr.splice(index, 0, item);\n}\nfunction binarySearch(a, searchVal, getItemVal) {\n let startIndex = 0;\n let endIndex = a.length; // exclusive\n if (!endIndex || searchVal < getItemVal(a[startIndex])) { // no items OR before first item\n return [0, 0];\n }\n if (searchVal > getItemVal(a[endIndex - 1])) { // after last item\n return [endIndex, 0];\n }\n while (startIndex < endIndex) {\n let middleIndex = Math.floor(startIndex + (endIndex - startIndex) / 2);\n let middleVal = getItemVal(a[middleIndex]);\n if (searchVal < middleVal) {\n endIndex = middleIndex;\n }\n else if (searchVal > middleVal) {\n startIndex = middleIndex + 1;\n }\n else { // equal!\n return [middleIndex, 1];\n }\n }\n return [startIndex, 0];\n}\n\n/*\nAn abstraction for a dragging interaction originating on an event.\nDoes higher-level things than PointerDragger, such as possibly:\n- a \"mirror\" that moves with the pointer\n- a minimum number of pixels or other criteria for a true drag to begin\n\nsubclasses must emit:\n- pointerdown\n- dragstart\n- dragmove\n- pointerup\n- dragend\n*/\nclass ElementDragging {\n constructor(el, selector) {\n this.emitter = new Emitter();\n }\n destroy() {\n }\n setMirrorIsVisible(bool) {\n // optional if subclass doesn't want to support a mirror\n }\n setMirrorNeedsRevert(bool) {\n // optional if subclass doesn't want to support a mirror\n }\n setAutoScrollEnabled(bool) {\n // optional\n }\n}\n\n// TODO: get rid of this in favor of options system,\n// tho it's really easy to access this globally rather than pass thru options.\nconst config = {};\n\n/*\nInformation about what will happen when an external element is dragged-and-dropped\nonto a calendar. Contains information for creating an event.\n*/\nconst DRAG_META_REFINERS = {\n startTime: createDuration,\n duration: createDuration,\n create: Boolean,\n sourceId: String,\n};\nfunction parseDragMeta(raw) {\n let { refined, extra } = refineProps(raw, DRAG_META_REFINERS);\n return {\n startTime: refined.startTime || null,\n duration: refined.duration || null,\n create: refined.create != null ? refined.create : true,\n sourceId: refined.sourceId,\n leftoverProps: extra,\n };\n}\n\n// Computes a default column header formatting string if `colFormat` is not explicitly defined\nfunction computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {\n // if more than one week row, or if there are a lot of columns with not much space,\n // put just the day numbers will be in each cell\n if (!datesRepDistinctDays || dayCnt > 10) {\n return createFormatter({ weekday: 'short' }); // \"Sat\"\n }\n if (dayCnt > 1) {\n return createFormatter({ weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }); // \"Sat 11/12\"\n }\n return createFormatter({ weekday: 'long' }); // \"Saturday\"\n}\n\nconst CLASS_NAME = 'fc-col-header-cell'; // do the cushion too? no\nfunction renderInner$1(renderProps) {\n return renderProps.text;\n}\n\n// BAD name for this class now. used in the Header\nclass TableDateCell extends BaseComponent {\n render() {\n let { dateEnv, options, theme, viewApi } = this.context;\n let { props } = this;\n let { date, dateProfile } = props;\n let dayMeta = getDateMeta(date, props.todayRange, null, dateProfile);\n let classNames = [CLASS_NAME].concat(getDayClassNames(dayMeta, theme));\n let text = dateEnv.format(date, props.dayHeaderFormat);\n // if colCnt is 1, we are already in a day-view and don't need a navlink\n let navLinkAttrs = (!dayMeta.isDisabled && props.colCnt > 1)\n ? buildNavLinkAttrs(this.context, date)\n : {};\n let renderProps = Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: viewApi }, props.extraRenderProps), { text }), dayMeta);\n return (createElement(ContentContainer, { elTag: \"th\", elClasses: classNames, elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan, 'data-date': !dayMeta.isDisabled ? formatDayString(date) : undefined }, props.extraDataAttrs), renderProps: renderProps, generatorName: \"dayHeaderContent\", customGenerator: options.dayHeaderContent, defaultGenerator: renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContainer) => (createElement(\"div\", { className: \"fc-scrollgrid-sync-inner\" }, !dayMeta.isDisabled && (createElement(InnerContainer, { elTag: \"a\", elAttrs: navLinkAttrs, elClasses: [\n 'fc-col-header-cell-cushion',\n props.isSticky && 'fc-sticky',\n ] }))))));\n }\n}\n\nconst WEEKDAY_FORMAT = createFormatter({ weekday: 'long' });\nclass TableDowCell extends BaseComponent {\n render() {\n let { props } = this;\n let { dateEnv, theme, viewApi, options } = this.context;\n let date = addDays(new Date(259200000), props.dow); // start with Sun, 04 Jan 1970 00:00:00 GMT\n let dateMeta = {\n dow: props.dow,\n isDisabled: false,\n isFuture: false,\n isPast: false,\n isToday: false,\n isOther: false,\n };\n let text = dateEnv.format(date, props.dayHeaderFormat);\n let renderProps = Object.assign(Object.assign(Object.assign(Object.assign({ // TODO: make this public?\n date }, dateMeta), { view: viewApi }), props.extraRenderProps), { text });\n return (createElement(ContentContainer, { elTag: \"th\", elClasses: [\n CLASS_NAME,\n ...getDayClassNames(dateMeta, theme),\n ...(props.extraClassNames || []),\n ], elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan }, props.extraDataAttrs), renderProps: renderProps, generatorName: \"dayHeaderContent\", customGenerator: options.dayHeaderContent, defaultGenerator: renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => (createElement(\"div\", { className: \"fc-scrollgrid-sync-inner\" },\n createElement(InnerContent, { elTag: \"a\", elClasses: [\n 'fc-col-header-cell-cushion',\n props.isSticky && 'fc-sticky',\n ], elAttrs: {\n 'aria-label': dateEnv.format(date, WEEKDAY_FORMAT),\n } })))));\n }\n}\n\nclass NowTimer extends Component {\n constructor(props, context) {\n super(props, context);\n this.initialNowDate = getNow(context.options.now, context.dateEnv);\n this.initialNowQueriedMs = new Date().valueOf();\n this.state = this.computeTiming().currentState;\n }\n render() {\n let { props, state } = this;\n return props.children(state.nowDate, state.todayRange);\n }\n componentDidMount() {\n this.setTimeout();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.unit !== this.props.unit) {\n this.clearTimeout();\n this.setTimeout();\n }\n }\n componentWillUnmount() {\n this.clearTimeout();\n }\n computeTiming() {\n let { props, context } = this;\n let unroundedNow = addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs);\n let currentUnitStart = context.dateEnv.startOf(unroundedNow, props.unit);\n let nextUnitStart = context.dateEnv.add(currentUnitStart, createDuration(1, props.unit));\n let waitMs = nextUnitStart.valueOf() - unroundedNow.valueOf();\n // there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)\n // ensure no longer than a day\n waitMs = Math.min(1000 * 60 * 60 * 24, waitMs);\n return {\n currentState: { nowDate: currentUnitStart, todayRange: buildDayRange(currentUnitStart) },\n nextState: { nowDate: nextUnitStart, todayRange: buildDayRange(nextUnitStart) },\n waitMs,\n };\n }\n setTimeout() {\n let { nextState, waitMs } = this.computeTiming();\n this.timeoutId = setTimeout(() => {\n this.setState(nextState, () => {\n this.setTimeout();\n });\n }, waitMs);\n }\n clearTimeout() {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n }\n }\n}\nNowTimer.contextType = ViewContextType;\nfunction buildDayRange(date) {\n let start = startOfDay(date);\n let end = addDays(start, 1);\n return { start, end };\n}\n\nclass DayHeader extends BaseComponent {\n constructor() {\n super(...arguments);\n this.createDayHeaderFormatter = memoize(createDayHeaderFormatter);\n }\n render() {\n let { context } = this;\n let { dates, dateProfile, datesRepDistinctDays, renderIntro } = this.props;\n let dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);\n return (createElement(NowTimer, { unit: \"day\" }, (nowDate, todayRange) => (createElement(\"tr\", { role: \"row\" },\n renderIntro && renderIntro('day'),\n dates.map((date) => (datesRepDistinctDays ? (createElement(TableDateCell, { key: date.toISOString(), date: date, dateProfile: dateProfile, todayRange: todayRange, colCnt: dates.length, dayHeaderFormat: dayHeaderFormat })) : (createElement(TableDowCell, { key: date.getUTCDay(), dow: date.getUTCDay(), dayHeaderFormat: dayHeaderFormat }))))))));\n }\n}\nfunction createDayHeaderFormatter(explicitFormat, datesRepDistinctDays, dateCnt) {\n return explicitFormat || computeFallbackHeaderFormat(datesRepDistinctDays, dateCnt);\n}\n\nclass DaySeriesModel {\n constructor(range, dateProfileGenerator) {\n let date = range.start;\n let { end } = range;\n let indices = [];\n let dates = [];\n let dayIndex = -1;\n while (date < end) { // loop each day from start to end\n if (dateProfileGenerator.isHiddenDay(date)) {\n indices.push(dayIndex + 0.5); // mark that it's between indices\n }\n else {\n dayIndex += 1;\n indices.push(dayIndex);\n dates.push(date);\n }\n date = addDays(date, 1);\n }\n this.dates = dates;\n this.indices = indices;\n this.cnt = dates.length;\n }\n sliceRange(range) {\n let firstIndex = this.getDateDayIndex(range.start); // inclusive first index\n let lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index\n let clippedFirstIndex = Math.max(0, firstIndex);\n let clippedLastIndex = Math.min(this.cnt - 1, lastIndex);\n // deal with in-between indices\n clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell\n clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell\n if (clippedFirstIndex <= clippedLastIndex) {\n return {\n firstIndex: clippedFirstIndex,\n lastIndex: clippedLastIndex,\n isStart: firstIndex === clippedFirstIndex,\n isEnd: lastIndex === clippedLastIndex,\n };\n }\n return null;\n }\n // Given a date, returns its chronolocial cell-index from the first cell of the grid.\n // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\n // If before the first offset, returns a negative number.\n // If after the last offset, returns an offset past the last cell offset.\n // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\n getDateDayIndex(date) {\n let { indices } = this;\n let dayOffset = Math.floor(diffDays(this.dates[0], date));\n if (dayOffset < 0) {\n return indices[0] - 1;\n }\n if (dayOffset >= indices.length) {\n return indices[indices.length - 1] + 1;\n }\n return indices[dayOffset];\n }\n}\n\nclass DayTableModel {\n constructor(daySeries, breakOnWeeks) {\n let { dates } = daySeries;\n let daysPerRow;\n let firstDay;\n let rowCnt;\n if (breakOnWeeks) {\n // count columns until the day-of-week repeats\n firstDay = dates[0].getUTCDay();\n for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow += 1) {\n if (dates[daysPerRow].getUTCDay() === firstDay) {\n break;\n }\n }\n rowCnt = Math.ceil(dates.length / daysPerRow);\n }\n else {\n rowCnt = 1;\n daysPerRow = dates.length;\n }\n this.rowCnt = rowCnt;\n this.colCnt = daysPerRow;\n this.daySeries = daySeries;\n this.cells = this.buildCells();\n this.headerDates = this.buildHeaderDates();\n }\n buildCells() {\n let rows = [];\n for (let row = 0; row < this.rowCnt; row += 1) {\n let cells = [];\n for (let col = 0; col < this.colCnt; col += 1) {\n cells.push(this.buildCell(row, col));\n }\n rows.push(cells);\n }\n return rows;\n }\n buildCell(row, col) {\n let date = this.daySeries.dates[row * this.colCnt + col];\n return {\n key: date.toISOString(),\n date,\n };\n }\n buildHeaderDates() {\n let dates = [];\n for (let col = 0; col < this.colCnt; col += 1) {\n dates.push(this.cells[0][col].date);\n }\n return dates;\n }\n sliceRange(range) {\n let { colCnt } = this;\n let seriesSeg = this.daySeries.sliceRange(range);\n let segs = [];\n if (seriesSeg) {\n let { firstIndex, lastIndex } = seriesSeg;\n let index = firstIndex;\n while (index <= lastIndex) {\n let row = Math.floor(index / colCnt);\n let nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1);\n segs.push({\n row,\n firstCol: index % colCnt,\n lastCol: (nextIndex - 1) % colCnt,\n isStart: seriesSeg.isStart && index === firstIndex,\n isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex,\n });\n index = nextIndex;\n }\n }\n return segs;\n }\n}\n\nclass Slicer {\n constructor() {\n this.sliceBusinessHours = memoize(this._sliceBusinessHours);\n this.sliceDateSelection = memoize(this._sliceDateSpan);\n this.sliceEventStore = memoize(this._sliceEventStore);\n this.sliceEventDrag = memoize(this._sliceInteraction);\n this.sliceEventResize = memoize(this._sliceInteraction);\n this.forceDayIfListItem = false; // hack\n }\n sliceProps(props, dateProfile, nextDayThreshold, context, ...extraArgs) {\n let { eventUiBases } = props;\n let eventSegs = this.sliceEventStore(props.eventStore, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs);\n return {\n dateSelectionSegs: this.sliceDateSelection(props.dateSelection, dateProfile, nextDayThreshold, eventUiBases, context, ...extraArgs),\n businessHourSegs: this.sliceBusinessHours(props.businessHours, dateProfile, nextDayThreshold, context, ...extraArgs),\n fgEventSegs: eventSegs.fg,\n bgEventSegs: eventSegs.bg,\n eventDrag: this.sliceEventDrag(props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs),\n eventResize: this.sliceEventResize(props.eventResize, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs),\n eventSelection: props.eventSelection,\n }; // TODO: give interactionSegs?\n }\n sliceNowDate(// does not memoize\n date, dateProfile, nextDayThreshold, context, ...extraArgs) {\n return this._sliceDateSpan({ range: { start: date, end: addMs(date, 1) }, allDay: false }, // add 1 ms, protect against null range\n dateProfile, nextDayThreshold, {}, context, ...extraArgs);\n }\n _sliceBusinessHours(businessHours, dateProfile, nextDayThreshold, context, ...extraArgs) {\n if (!businessHours) {\n return [];\n }\n return this._sliceEventStore(expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), context), {}, dateProfile, nextDayThreshold, ...extraArgs).bg;\n }\n _sliceEventStore(eventStore, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs) {\n if (eventStore) {\n let rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n bg: this.sliceEventRanges(rangeRes.bg, extraArgs),\n fg: this.sliceEventRanges(rangeRes.fg, extraArgs),\n };\n }\n return { bg: [], fg: [] };\n }\n _sliceInteraction(interaction, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs) {\n if (!interaction) {\n return null;\n }\n let rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n segs: this.sliceEventRanges(rangeRes.fg, extraArgs),\n affectedInstances: interaction.affectedEvents.instances,\n isEvent: interaction.isEvent,\n };\n }\n _sliceDateSpan(dateSpan, dateProfile, nextDayThreshold, eventUiBases, context, ...extraArgs) {\n if (!dateSpan) {\n return [];\n }\n let activeRange = computeActiveRange(dateProfile, Boolean(nextDayThreshold));\n let activeDateSpanRange = intersectRanges(dateSpan.range, activeRange);\n if (activeDateSpanRange) {\n dateSpan = Object.assign(Object.assign({}, dateSpan), { range: activeDateSpanRange });\n let eventRange = fabricateEventRange(dateSpan, eventUiBases, context);\n let segs = this.sliceRange(dateSpan.range, ...extraArgs);\n for (let seg of segs) {\n seg.eventRange = eventRange;\n }\n return segs;\n }\n return [];\n }\n /*\n \"complete\" seg means it has component and eventRange\n */\n sliceEventRanges(eventRanges, extraArgs) {\n let segs = [];\n for (let eventRange of eventRanges) {\n segs.push(...this.sliceEventRange(eventRange, extraArgs));\n }\n return segs;\n }\n /*\n \"complete\" seg means it has component and eventRange\n */\n sliceEventRange(eventRange, extraArgs) {\n let dateRange = eventRange.range;\n // hack to make multi-day events that are being force-displayed as list-items to take up only one day\n if (this.forceDayIfListItem && eventRange.ui.display === 'list-item') {\n dateRange = {\n start: dateRange.start,\n end: addDays(dateRange.start, 1),\n };\n }\n let segs = this.sliceRange(dateRange, ...extraArgs);\n for (let seg of segs) {\n seg.eventRange = eventRange;\n seg.isStart = eventRange.isStart && seg.isStart;\n seg.isEnd = eventRange.isEnd && seg.isEnd;\n }\n return segs;\n }\n}\n/*\nfor incorporating slotMinTime/slotMaxTime if appropriate\nTODO: should be part of DateProfile!\nTimelineDateProfile already does this btw\n*/\nfunction computeActiveRange(dateProfile, isComponentAllDay) {\n let range = dateProfile.activeRange;\n if (isComponentAllDay) {\n return range;\n }\n return {\n start: addMs(range.start, dateProfile.slotMinTime.milliseconds),\n end: addMs(range.end, dateProfile.slotMaxTime.milliseconds - 864e5), // 864e5 = ms in a day\n };\n}\n\n// high-level segmenting-aware tester functions\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionValid(interaction, dateProfile, context) {\n let { instances } = interaction.mutatedEvents;\n for (let instanceId in instances) {\n if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {\n return false;\n }\n }\n return isNewPropsValid({ eventDrag: interaction }, context); // HACK: the eventDrag props is used for ALL interactions\n}\nfunction isDateSelectionValid(dateSelection, dateProfile, context) {\n if (!rangeContainsRange(dateProfile.validRange, dateSelection.range)) {\n return false;\n }\n return isNewPropsValid({ dateSelection }, context);\n}\nfunction isNewPropsValid(newProps, context) {\n let calendarState = context.getCurrentData();\n let props = Object.assign({ businessHours: calendarState.businessHours, dateSelection: '', eventStore: calendarState.eventStore, eventUiBases: calendarState.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps);\n return (context.pluginHooks.isPropsValid || isPropsValid)(props, context);\n}\nfunction isPropsValid(state, context, dateSpanMeta = {}, filterConfig) {\n if (state.eventDrag && !isInteractionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n return false;\n }\n if (state.dateSelection && !isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n return false;\n }\n return true;\n}\n// Moving Event Validation\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionPropsValid(state, context, dateSpanMeta, filterConfig) {\n let currentState = context.getCurrentData();\n let interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions\n let subjectEventStore = interaction.mutatedEvents;\n let subjectDefs = subjectEventStore.defs;\n let subjectInstances = subjectEventStore.instances;\n let subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ?\n state.eventUiBases :\n { '': currentState.selectionConfig });\n if (filterConfig) {\n subjectConfigs = mapHash(subjectConfigs, filterConfig);\n }\n // exclude the subject events. TODO: exclude defs too?\n let otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances);\n let otherDefs = otherEventStore.defs;\n let otherInstances = otherEventStore.instances;\n let otherConfigs = compileEventUis(otherDefs, state.eventUiBases);\n for (let subjectInstanceId in subjectInstances) {\n let subjectInstance = subjectInstances[subjectInstanceId];\n let subjectRange = subjectInstance.range;\n let subjectConfig = subjectConfigs[subjectInstance.defId];\n let subjectDef = subjectDefs[subjectInstance.defId];\n // constraint\n if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, context)) {\n return false;\n }\n // overlap\n let { eventOverlap } = context.options;\n let eventOverlapFunc = typeof eventOverlap === 'function' ? eventOverlap : null;\n for (let otherInstanceId in otherInstances) {\n let otherInstance = otherInstances[otherInstanceId];\n // intersect! evaluate\n if (rangesIntersect(subjectRange, otherInstance.range)) {\n let otherOverlap = otherConfigs[otherInstance.defId].overlap;\n // consider the other event's overlap. only do this if the subject event is a \"real\" event\n if (otherOverlap === false && interaction.isEvent) {\n return false;\n }\n if (subjectConfig.overlap === false) {\n return false;\n }\n if (eventOverlapFunc && !eventOverlapFunc(new EventImpl(context, otherDefs[otherInstance.defId], otherInstance), // still event\n new EventImpl(context, subjectDef, subjectInstance))) {\n return false;\n }\n }\n }\n // allow (a function)\n let calendarEventStore = currentState.eventStore; // need global-to-calendar, not local to component (splittable)state\n for (let subjectAllow of subjectConfig.allows) {\n let subjectDateSpan = Object.assign(Object.assign({}, dateSpanMeta), { range: subjectInstance.range, allDay: subjectDef.allDay });\n let origDef = calendarEventStore.defs[subjectDef.defId];\n let origInstance = calendarEventStore.instances[subjectInstanceId];\n let eventApi;\n if (origDef) { // was previously in the calendar\n eventApi = new EventImpl(context, origDef, origInstance);\n }\n else { // was an external event\n eventApi = new EventImpl(context, subjectDef); // no instance, because had no dates\n }\n if (!subjectAllow(buildDateSpanApiWithContext(subjectDateSpan, context), eventApi)) {\n return false;\n }\n }\n }\n return true;\n}\n// Date Selection Validation\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig) {\n let relevantEventStore = state.eventStore;\n let relevantDefs = relevantEventStore.defs;\n let relevantInstances = relevantEventStore.instances;\n let selection = state.dateSelection;\n let selectionRange = selection.range;\n let { selectionConfig } = context.getCurrentData();\n if (filterConfig) {\n selectionConfig = filterConfig(selectionConfig);\n }\n // constraint\n if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, context)) {\n return false;\n }\n // overlap\n let { selectOverlap } = context.options;\n let selectOverlapFunc = typeof selectOverlap === 'function' ? selectOverlap : null;\n for (let relevantInstanceId in relevantInstances) {\n let relevantInstance = relevantInstances[relevantInstanceId];\n // intersect! evaluate\n if (rangesIntersect(selectionRange, relevantInstance.range)) {\n if (selectionConfig.overlap === false) {\n return false;\n }\n if (selectOverlapFunc && !selectOverlapFunc(new EventImpl(context, relevantDefs[relevantInstance.defId], relevantInstance), null)) {\n return false;\n }\n }\n }\n // allow (a function)\n for (let selectionAllow of selectionConfig.allows) {\n let fullDateSpan = Object.assign(Object.assign({}, dateSpanMeta), selection);\n if (!selectionAllow(buildDateSpanApiWithContext(fullDateSpan, context), null)) {\n return false;\n }\n }\n return true;\n}\n// Constraint Utils\n// ------------------------------------------------------------------------------------------------------------------------\nfunction allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, context) {\n for (let constraint of constraints) {\n if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, context), subjectRange)) {\n return false;\n }\n }\n return true;\n}\nfunction constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours\notherEventStore, // for if constraint is an even group ID\nbusinessHoursUnexpanded, // for if constraint is 'businessHours'\ncontext) {\n if (constraint === 'businessHours') {\n return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, context));\n }\n if (typeof constraint === 'string') { // an group ID\n return eventStoreToRanges(filterEventStoreDefs(otherEventStore, (eventDef) => eventDef.groupId === constraint));\n }\n if (typeof constraint === 'object' && constraint) { // non-null object\n return eventStoreToRanges(expandRecurring(constraint, subjectRange, context));\n }\n return []; // if it's false\n}\n// TODO: move to event-store file?\nfunction eventStoreToRanges(eventStore) {\n let { instances } = eventStore;\n let ranges = [];\n for (let instanceId in instances) {\n ranges.push(instances[instanceId].range);\n }\n return ranges;\n}\n// TODO: move to geom file?\nfunction anyRangesContainRange(outerRanges, innerRange) {\n for (let outerRange of outerRanges) {\n if (rangeContainsRange(outerRange, innerRange)) {\n return true;\n }\n }\n return false;\n}\n\nconst VISIBLE_HIDDEN_RE = /^(visible|hidden)$/;\nclass Scroller extends BaseComponent {\n constructor() {\n super(...arguments);\n this.handleEl = (el) => {\n this.el = el;\n setRef(this.props.elRef, el);\n };\n }\n render() {\n let { props } = this;\n let { liquid, liquidIsAbsolute } = props;\n let isAbsolute = liquid && liquidIsAbsolute;\n let className = ['fc-scroller'];\n if (liquid) {\n if (liquidIsAbsolute) {\n className.push('fc-scroller-liquid-absolute');\n }\n else {\n className.push('fc-scroller-liquid');\n }\n }\n return (createElement(\"div\", { ref: this.handleEl, className: className.join(' '), style: {\n overflowX: props.overflowX,\n overflowY: props.overflowY,\n left: (isAbsolute && -(props.overcomeLeft || 0)) || '',\n right: (isAbsolute && -(props.overcomeRight || 0)) || '',\n bottom: (isAbsolute && -(props.overcomeBottom || 0)) || '',\n marginLeft: (!isAbsolute && -(props.overcomeLeft || 0)) || '',\n marginRight: (!isAbsolute && -(props.overcomeRight || 0)) || '',\n marginBottom: (!isAbsolute && -(props.overcomeBottom || 0)) || '',\n maxHeight: props.maxHeight || '',\n } }, props.children));\n }\n needsXScrolling() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n return false;\n }\n // testing scrollWidth>clientWidth is unreliable cross-browser when pixel heights aren't integers.\n // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n // inner-child margins and absolute positioning\n let { el } = this;\n let realClientWidth = this.el.getBoundingClientRect().width - this.getYScrollbarWidth();\n let { children } = el;\n for (let i = 0; i < children.length; i += 1) {\n let childEl = children[i];\n if (childEl.getBoundingClientRect().width > realClientWidth) {\n return true;\n }\n }\n return false;\n }\n needsYScrolling() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n return false;\n }\n // testing scrollHeight>clientHeight is unreliable cross-browser when pixel heights aren't integers.\n // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n // inner-child margins and absolute positioning\n let { el } = this;\n let realClientHeight = this.el.getBoundingClientRect().height - this.getXScrollbarWidth();\n let { children } = el;\n for (let i = 0; i < children.length; i += 1) {\n let childEl = children[i];\n if (childEl.getBoundingClientRect().height > realClientHeight) {\n return true;\n }\n }\n return false;\n }\n getXScrollbarWidth() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n return 0;\n }\n return this.el.offsetHeight - this.el.clientHeight; // only works because we guarantee no borders. TODO: add to CSS with important?\n }\n getYScrollbarWidth() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n return 0;\n }\n return this.el.offsetWidth - this.el.clientWidth; // only works because we guarantee no borders. TODO: add to CSS with important?\n }\n}\n\n/*\nTODO: somehow infer OtherArgs from masterCallback?\nTODO: infer RefType from masterCallback if provided\n*/\nclass RefMap {\n constructor(masterCallback) {\n this.masterCallback = masterCallback;\n this.currentMap = {};\n this.depths = {};\n this.callbackMap = {};\n this.handleValue = (val, key) => {\n let { depths, currentMap } = this;\n let removed = false;\n let added = false;\n if (val !== null) {\n // for bug... ACTUALLY: can probably do away with this now that callers don't share numeric indices anymore\n removed = (key in currentMap);\n currentMap[key] = val;\n depths[key] = (depths[key] || 0) + 1;\n added = true;\n }\n else {\n depths[key] -= 1;\n if (!depths[key]) {\n delete currentMap[key];\n delete this.callbackMap[key];\n removed = true;\n }\n }\n if (this.masterCallback) {\n if (removed) {\n this.masterCallback(null, String(key));\n }\n if (added) {\n this.masterCallback(val, String(key));\n }\n }\n };\n }\n createRef(key) {\n let refCallback = this.callbackMap[key];\n if (!refCallback) {\n refCallback = this.callbackMap[key] = (val) => {\n this.handleValue(val, String(key));\n };\n }\n return refCallback;\n }\n // TODO: check callers that don't care about order. should use getAll instead\n // NOTE: this method has become less valuable now that we are encouraged to map order by some other index\n // TODO: provide ONE array-export function, buildArray, which fails on non-numeric indexes. caller can manipulate and \"collect\"\n collect(startIndex, endIndex, step) {\n return collectFromHash(this.currentMap, startIndex, endIndex, step);\n }\n getAll() {\n return hashValuesToArray(this.currentMap);\n }\n}\n\nfunction computeShrinkWidth(chunkEls) {\n let shrinkCells = findElements(chunkEls, '.fc-scrollgrid-shrink');\n let largestWidth = 0;\n for (let shrinkCell of shrinkCells) {\n largestWidth = Math.max(largestWidth, computeSmallestCellWidth(shrinkCell));\n }\n return Math.ceil(largestWidth); // <table> elements work best with integers. round up to ensure contents fits\n}\nfunction getSectionHasLiquidHeight(props, sectionConfig) {\n return props.liquid && sectionConfig.liquid; // does the section do liquid-height? (need to have whole scrollgrid liquid-height as well)\n}\nfunction getAllowYScrolling(props, sectionConfig) {\n return sectionConfig.maxHeight != null || // if its possible for the height to max out, we might need scrollbars\n getSectionHasLiquidHeight(props, sectionConfig); // if the section is liquid height, it might condense enough to require scrollbars\n}\n// TODO: ONLY use `arg`. force out internal function to use same API\nfunction renderChunkContent(sectionConfig, chunkConfig, arg, isHeader) {\n let { expandRows } = arg;\n let content = typeof chunkConfig.content === 'function' ?\n chunkConfig.content(arg) :\n createElement('table', {\n role: 'presentation',\n className: [\n chunkConfig.tableClassName,\n sectionConfig.syncRowHeights ? 'fc-scrollgrid-sync-table' : '',\n ].join(' '),\n style: {\n minWidth: arg.tableMinWidth,\n width: arg.clientWidth,\n height: expandRows ? arg.clientHeight : '', // css `height` on a <table> serves as a min-height\n },\n }, arg.tableColGroupNode, createElement(isHeader ? 'thead' : 'tbody', {\n role: 'presentation',\n }, typeof chunkConfig.rowContent === 'function'\n ? chunkConfig.rowContent(arg)\n : chunkConfig.rowContent));\n return content;\n}\nfunction isColPropsEqual(cols0, cols1) {\n return isArraysEqual(cols0, cols1, isPropsEqual);\n}\nfunction renderMicroColGroup(cols, shrinkWidth) {\n let colNodes = [];\n /*\n for ColProps with spans, it would have been great to make a single <col span=\"\">\n HOWEVER, Chrome was getting messing up distributing the width to <td>/<th> elements with colspans.\n SOLUTION: making individual <col> elements makes Chrome behave.\n */\n for (let colProps of cols) {\n let span = colProps.span || 1;\n for (let i = 0; i < span; i += 1) {\n colNodes.push(createElement(\"col\", { style: {\n width: colProps.width === 'shrink' ? sanitizeShrinkWidth(shrinkWidth) : (colProps.width || ''),\n minWidth: colProps.minWidth || '',\n } }));\n }\n }\n return createElement('colgroup', {}, ...colNodes);\n}\nfunction sanitizeShrinkWidth(shrinkWidth) {\n /* why 4? if we do 0, it will kill any border, which are needed for computeSmallestCellWidth\n 4 accounts for 2 2-pixel borders. TODO: better solution? */\n return shrinkWidth == null ? 4 : shrinkWidth;\n}\nfunction hasShrinkWidth(cols) {\n for (let col of cols) {\n if (col.width === 'shrink') {\n return true;\n }\n }\n return false;\n}\nfunction getScrollGridClassNames(liquid, context) {\n let classNames = [\n 'fc-scrollgrid',\n context.theme.getClass('table'),\n ];\n if (liquid) {\n classNames.push('fc-scrollgrid-liquid');\n }\n return classNames;\n}\nfunction getSectionClassNames(sectionConfig, wholeTableVGrow) {\n let classNames = [\n 'fc-scrollgrid-section',\n `fc-scrollgrid-section-${sectionConfig.type}`,\n sectionConfig.className, // used?\n ];\n if (wholeTableVGrow && sectionConfig.liquid && sectionConfig.maxHeight == null) {\n classNames.push('fc-scrollgrid-section-liquid');\n }\n if (sectionConfig.isSticky) {\n classNames.push('fc-scrollgrid-section-sticky');\n }\n return classNames;\n}\nfunction renderScrollShim(arg) {\n return (createElement(\"div\", { className: \"fc-scrollgrid-sticky-shim\", style: {\n width: arg.clientWidth,\n minWidth: arg.tableMinWidth,\n } }));\n}\nfunction getStickyHeaderDates(options) {\n let { stickyHeaderDates } = options;\n if (stickyHeaderDates == null || stickyHeaderDates === 'auto') {\n stickyHeaderDates = options.height === 'auto' || options.viewHeight === 'auto';\n }\n return stickyHeaderDates;\n}\nfunction getStickyFooterScrollbar(options) {\n let { stickyFooterScrollbar } = options;\n if (stickyFooterScrollbar == null || stickyFooterScrollbar === 'auto') {\n stickyFooterScrollbar = options.height === 'auto' || options.viewHeight === 'auto';\n }\n return stickyFooterScrollbar;\n}\n\nclass SimpleScrollGrid extends BaseComponent {\n constructor() {\n super(...arguments);\n this.processCols = memoize((a) => a, isColPropsEqual); // so we get same `cols` props every time\n // yucky to memoize VNodes, but much more efficient for consumers\n this.renderMicroColGroup = memoize(renderMicroColGroup);\n this.scrollerRefs = new RefMap();\n this.scrollerElRefs = new RefMap(this._handleScrollerEl.bind(this));\n this.state = {\n shrinkWidth: null,\n forceYScrollbars: false,\n scrollerClientWidths: {},\n scrollerClientHeights: {},\n };\n // TODO: can do a really simple print-view. dont need to join rows\n this.handleSizing = () => {\n this.safeSetState(Object.assign({ shrinkWidth: this.computeShrinkWidth() }, this.computeScrollerDims()));\n };\n }\n render() {\n let { props, state, context } = this;\n let sectionConfigs = props.sections || [];\n let cols = this.processCols(props.cols);\n let microColGroupNode = this.renderMicroColGroup(cols, state.shrinkWidth);\n let classNames = getScrollGridClassNames(props.liquid, context);\n if (props.collapsibleWidth) {\n classNames.push('fc-scrollgrid-collapsible');\n }\n // TODO: make DRY\n let configCnt = sectionConfigs.length;\n let configI = 0;\n let currentConfig;\n let headSectionNodes = [];\n let bodySectionNodes = [];\n let footSectionNodes = [];\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'header') {\n headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));\n configI += 1;\n }\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'body') {\n bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode, false));\n configI += 1;\n }\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'footer') {\n footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));\n configI += 1;\n }\n // firefox bug: when setting height on table and there is a thead or tfoot,\n // the necessary height:100% on the liquid-height body section forces the *whole* table to be taller. (bug #5524)\n // use getCanVGrowWithinCell as a way to detect table-stupid firefox.\n // if so, use a simpler dom structure, jam everything into a lone tbody.\n let isBuggy = !getCanVGrowWithinCell();\n const roleAttrs = { role: 'rowgroup' };\n return createElement('table', {\n role: 'grid',\n className: classNames.join(' '),\n style: { height: props.height },\n }, Boolean(!isBuggy && headSectionNodes.length) && createElement('thead', roleAttrs, ...headSectionNodes), Boolean(!isBuggy && bodySectionNodes.length) && createElement('tbody', roleAttrs, ...bodySectionNodes), Boolean(!isBuggy && footSectionNodes.length) && createElement('tfoot', roleAttrs, ...footSectionNodes), isBuggy && createElement('tbody', roleAttrs, ...headSectionNodes, ...bodySectionNodes, ...footSectionNodes));\n }\n renderSection(sectionConfig, microColGroupNode, isHeader) {\n if ('outerContent' in sectionConfig) {\n return (createElement(Fragment, { key: sectionConfig.key }, sectionConfig.outerContent));\n }\n return (createElement(\"tr\", { key: sectionConfig.key, role: \"presentation\", className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader)));\n }\n renderChunkTd(sectionConfig, microColGroupNode, chunkConfig, isHeader) {\n if ('outerContent' in chunkConfig) {\n return chunkConfig.outerContent;\n }\n let { props } = this;\n let { forceYScrollbars, scrollerClientWidths, scrollerClientHeights } = this.state;\n let needsYScrolling = getAllowYScrolling(props, sectionConfig); // TODO: do lazily. do in section config?\n let isLiquid = getSectionHasLiquidHeight(props, sectionConfig);\n // for `!props.liquid` - is WHOLE scrollgrid natural height?\n // TODO: do same thing in advanced scrollgrid? prolly not b/c always has horizontal scrollbars\n let overflowY = !props.liquid ? 'visible' :\n forceYScrollbars ? 'scroll' :\n !needsYScrolling ? 'hidden' :\n 'auto';\n let sectionKey = sectionConfig.key;\n let content = renderChunkContent(sectionConfig, chunkConfig, {\n tableColGroupNode: microColGroupNode,\n tableMinWidth: '',\n clientWidth: (!props.collapsibleWidth && scrollerClientWidths[sectionKey] !== undefined) ? scrollerClientWidths[sectionKey] : null,\n clientHeight: scrollerClientHeights[sectionKey] !== undefined ? scrollerClientHeights[sectionKey] : null,\n expandRows: sectionConfig.expandRows,\n syncRowHeights: false,\n rowSyncHeights: [],\n reportRowHeightChange: () => { },\n }, isHeader);\n return createElement(isHeader ? 'th' : 'td', {\n ref: chunkConfig.elRef,\n role: 'presentation',\n }, createElement(\"div\", { className: `fc-scroller-harness${isLiquid ? ' fc-scroller-harness-liquid' : ''}` },\n createElement(Scroller, { ref: this.scrollerRefs.createRef(sectionKey), elRef: this.scrollerElRefs.createRef(sectionKey), overflowY: overflowY, overflowX: !props.liquid ? 'visible' : 'hidden' /* natural height? */, maxHeight: sectionConfig.maxHeight, liquid: isLiquid, liquidIsAbsolute // because its within a harness\n : true }, content)));\n }\n _handleScrollerEl(scrollerEl, key) {\n let section = getSectionByKey(this.props.sections, key);\n if (section) {\n setRef(section.chunk.scrollerElRef, scrollerEl);\n }\n }\n componentDidMount() {\n this.handleSizing();\n this.context.addResizeHandler(this.handleSizing);\n }\n componentDidUpdate() {\n // TODO: need better solution when state contains non-sizing things\n this.handleSizing();\n }\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleSizing);\n }\n computeShrinkWidth() {\n return hasShrinkWidth(this.props.cols)\n ? computeShrinkWidth(this.scrollerElRefs.getAll())\n : 0;\n }\n computeScrollerDims() {\n let scrollbarWidth = getScrollbarWidths();\n let { scrollerRefs, scrollerElRefs } = this;\n let forceYScrollbars = false;\n let scrollerClientWidths = {};\n let scrollerClientHeights = {};\n for (let sectionKey in scrollerRefs.currentMap) {\n let scroller = scrollerRefs.currentMap[sectionKey];\n if (scroller && scroller.needsYScrolling()) {\n forceYScrollbars = true;\n break;\n }\n }\n for (let section of this.props.sections) {\n let sectionKey = section.key;\n let scrollerEl = scrollerElRefs.currentMap[sectionKey];\n if (scrollerEl) {\n let harnessEl = scrollerEl.parentNode; // TODO: weird way to get this. need harness b/c doesn't include table borders\n scrollerClientWidths[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().width - (forceYScrollbars\n ? scrollbarWidth.y // use global because scroller might not have scrollbars yet but will need them in future\n : 0));\n scrollerClientHeights[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().height);\n }\n }\n return { forceYScrollbars, scrollerClientWidths, scrollerClientHeights };\n }\n}\nSimpleScrollGrid.addStateEquality({\n scrollerClientWidths: isPropsEqual,\n scrollerClientHeights: isPropsEqual,\n});\nfunction getSectionByKey(sections, key) {\n for (let section of sections) {\n if (section.key === key) {\n return section;\n }\n }\n return null;\n}\n\nclass EventContainer extends BaseComponent {\n constructor() {\n super(...arguments);\n this.handleEl = (el) => {\n this.el = el;\n if (el) {\n setElSeg(el, this.props.seg);\n }\n };\n }\n render() {\n const { props, context } = this;\n const { options } = context;\n const { seg } = props;\n const { eventRange } = seg;\n const { ui } = eventRange;\n const renderProps = {\n event: new EventImpl(context, eventRange.def, eventRange.instance),\n view: context.viewApi,\n timeText: props.timeText,\n textColor: ui.textColor,\n backgroundColor: ui.backgroundColor,\n borderColor: ui.borderColor,\n isDraggable: !props.disableDragging && computeSegDraggable(seg, context),\n isStartResizable: !props.disableResizing && computeSegStartResizable(seg, context),\n isEndResizable: !props.disableResizing && computeSegEndResizable(seg),\n isMirror: Boolean(props.isDragging || props.isResizing || props.isDateSelecting),\n isStart: Boolean(seg.isStart),\n isEnd: Boolean(seg.isEnd),\n isPast: Boolean(props.isPast),\n isFuture: Boolean(props.isFuture),\n isToday: Boolean(props.isToday),\n isSelected: Boolean(props.isSelected),\n isDragging: Boolean(props.isDragging),\n isResizing: Boolean(props.isResizing),\n };\n return (createElement(ContentContainer, Object.assign({}, props /* contains children */, { elRef: this.handleEl, elClasses: [\n ...getEventClassNames(renderProps),\n ...seg.eventRange.ui.classNames,\n ...(props.elClasses || []),\n ], renderProps: renderProps, generatorName: \"eventContent\", customGenerator: options.eventContent, defaultGenerator: props.defaultGenerator, classNameGenerator: options.eventClassNames, didMount: options.eventDidMount, willUnmount: options.eventWillUnmount })));\n }\n componentDidUpdate(prevProps) {\n if (this.el && this.props.seg !== prevProps.seg) {\n setElSeg(this.el, this.props.seg);\n }\n }\n}\n\n// should not be a purecomponent\nclass StandardEvent extends BaseComponent {\n render() {\n let { props, context } = this;\n let { options } = context;\n let { seg } = props;\n let { ui } = seg.eventRange;\n let timeFormat = options.eventTimeFormat || props.defaultTimeFormat;\n let timeText = buildSegTimeText(seg, timeFormat, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd);\n return (createElement(EventContainer, Object.assign({}, props /* includes elRef */, { elTag: \"a\", elStyle: {\n borderColor: ui.borderColor,\n backgroundColor: ui.backgroundColor,\n }, elAttrs: getSegAnchorAttrs(seg, context), defaultGenerator: renderInnerContent$1, timeText: timeText }), (InnerContent, eventContentArg) => (createElement(Fragment, null,\n createElement(InnerContent, { elTag: \"div\", elClasses: ['fc-event-main'], elStyle: { color: eventContentArg.textColor } }),\n Boolean(eventContentArg.isStartResizable) && (createElement(\"div\", { className: \"fc-event-resizer fc-event-resizer-start\" })),\n Boolean(eventContentArg.isEndResizable) && (createElement(\"div\", { className: \"fc-event-resizer fc-event-resizer-end\" }))))));\n }\n}\nfunction renderInnerContent$1(innerProps) {\n return (createElement(\"div\", { className: \"fc-event-main-frame\" },\n innerProps.timeText && (createElement(\"div\", { className: \"fc-event-time\" }, innerProps.timeText)),\n createElement(\"div\", { className: \"fc-event-title-container\" },\n createElement(\"div\", { className: \"fc-event-title fc-sticky\" }, innerProps.event.title || createElement(Fragment, null, \"\\u00A0\")))));\n}\n\nconst NowIndicatorContainer = (props) => (createElement(ViewContextType.Consumer, null, (context) => {\n let { options } = context;\n let renderProps = {\n isAxis: props.isAxis,\n date: context.dateEnv.toDate(props.date),\n view: context.viewApi,\n };\n return (createElement(ContentContainer, Object.assign({}, props /* includes children */, { elTag: props.elTag || 'div', renderProps: renderProps, generatorName: \"nowIndicatorContent\", customGenerator: options.nowIndicatorContent, classNameGenerator: options.nowIndicatorClassNames, didMount: options.nowIndicatorDidMount, willUnmount: options.nowIndicatorWillUnmount })));\n}));\n\nconst DAY_NUM_FORMAT = createFormatter({ day: 'numeric' });\nclass DayCellContainer extends BaseComponent {\n constructor() {\n super(...arguments);\n this.refineRenderProps = memoizeObjArg(refineRenderProps);\n }\n render() {\n let { props, context } = this;\n let { options } = context;\n let renderProps = this.refineRenderProps({\n date: props.date,\n dateProfile: props.dateProfile,\n todayRange: props.todayRange,\n isMonthStart: props.isMonthStart || false,\n showDayNumber: props.showDayNumber,\n extraRenderProps: props.extraRenderProps,\n viewApi: context.viewApi,\n dateEnv: context.dateEnv,\n monthStartFormat: options.monthStartFormat,\n });\n return (createElement(ContentContainer, Object.assign({}, props /* includes children */, { elClasses: [\n ...getDayClassNames(renderProps, context.theme),\n ...(props.elClasses || []),\n ], elAttrs: Object.assign(Object.assign({}, props.elAttrs), (renderProps.isDisabled ? {} : { 'data-date': formatDayString(props.date) })), renderProps: renderProps, generatorName: \"dayCellContent\", customGenerator: options.dayCellContent, defaultGenerator: props.defaultGenerator, classNameGenerator: \n // don't use custom classNames if disabled\n renderProps.isDisabled ? undefined : options.dayCellClassNames, didMount: options.dayCellDidMount, willUnmount: options.dayCellWillUnmount })));\n }\n}\nfunction hasCustomDayCellContent(options) {\n return Boolean(options.dayCellContent || hasCustomRenderingHandler('dayCellContent', options));\n}\nfunction refineRenderProps(raw) {\n let { date, dateEnv, dateProfile, isMonthStart } = raw;\n let dayMeta = getDateMeta(date, raw.todayRange, null, dateProfile);\n let dayNumberText = raw.showDayNumber ? (dateEnv.format(date, isMonthStart ? raw.monthStartFormat : DAY_NUM_FORMAT)) : '';\n return Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: raw.viewApi }, dayMeta), { isMonthStart,\n dayNumberText }), raw.extraRenderProps);\n}\n\nclass BgEvent extends BaseComponent {\n render() {\n let { props } = this;\n let { seg } = props;\n return (createElement(EventContainer, { elTag: \"div\", elClasses: ['fc-bg-event'], elStyle: { backgroundColor: seg.eventRange.ui.backgroundColor }, defaultGenerator: renderInnerContent, seg: seg, timeText: \"\", isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, disableDragging: true, disableResizing: true }));\n }\n}\nfunction renderInnerContent(props) {\n let { title } = props.event;\n return title && (createElement(\"div\", { className: \"fc-event-title\" }, props.event.title));\n}\nfunction renderFill(fillType) {\n return (createElement(\"div\", { className: `fc-${fillType}` }));\n}\n\nconst WeekNumberContainer = (props) => (createElement(ViewContextType.Consumer, null, (context) => {\n let { dateEnv, options } = context;\n let { date } = props;\n let format = options.weekNumberFormat || props.defaultFormat;\n let num = dateEnv.computeWeekNumber(date); // TODO: somehow use for formatting as well?\n let text = dateEnv.format(date, format);\n let renderProps = { num, text, date };\n return (createElement(ContentContainer // why isn't WeekNumberContentArg being auto-detected?\n , Object.assign({}, props /* includes children */, { renderProps: renderProps, generatorName: \"weekNumberContent\", customGenerator: options.weekNumberContent, defaultGenerator: renderInner, classNameGenerator: options.weekNumberClassNames, didMount: options.weekNumberDidMount, willUnmount: options.weekNumberWillUnmount })));\n}));\nfunction renderInner(innerProps) {\n return innerProps.text;\n}\n\nconst PADDING_FROM_VIEWPORT = 10;\nclass Popover extends BaseComponent {\n constructor() {\n super(...arguments);\n this.state = {\n titleId: getUniqueDomId(),\n };\n this.handleRootEl = (el) => {\n this.rootEl = el;\n if (this.props.elRef) {\n setRef(this.props.elRef, el);\n }\n };\n // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\n this.handleDocumentMouseDown = (ev) => {\n // only hide the popover if the click happened outside the popover\n const target = getEventTargetViaRoot(ev);\n if (!this.rootEl.contains(target)) {\n this.handleCloseClick();\n }\n };\n this.handleDocumentKeyDown = (ev) => {\n if (ev.key === 'Escape') {\n this.handleCloseClick();\n }\n };\n this.handleCloseClick = () => {\n let { onClose } = this.props;\n if (onClose) {\n onClose();\n }\n };\n }\n render() {\n let { theme, options } = this.context;\n let { props, state } = this;\n let classNames = [\n 'fc-popover',\n theme.getClass('popover'),\n ].concat(props.extraClassNames || []);\n return createPortal(createElement(\"div\", Object.assign({}, props.extraAttrs, { id: props.id, className: classNames.join(' '), \"aria-labelledby\": state.titleId, ref: this.handleRootEl }),\n createElement(\"div\", { className: 'fc-popover-header ' + theme.getClass('popoverHeader') },\n createElement(\"span\", { className: \"fc-popover-title\", id: state.titleId }, props.title),\n createElement(\"span\", { className: 'fc-popover-close ' + theme.getIconClass('close'), title: options.closeHint, onClick: this.handleCloseClick })),\n createElement(\"div\", { className: 'fc-popover-body ' + theme.getClass('popoverContent') }, props.children)), props.parentEl);\n }\n componentDidMount() {\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n this.updateSize();\n }\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n updateSize() {\n let { isRtl } = this.context;\n let { alignmentEl, alignGridTop } = this.props;\n let { rootEl } = this;\n let alignmentRect = computeClippedClientRect(alignmentEl);\n if (alignmentRect) {\n let popoverDims = rootEl.getBoundingClientRect();\n // position relative to viewport\n let popoverTop = alignGridTop\n ? elementClosest(alignmentEl, '.fc-scrollgrid').getBoundingClientRect().top\n : alignmentRect.top;\n let popoverLeft = isRtl ? alignmentRect.right - popoverDims.width : alignmentRect.left;\n // constrain\n popoverTop = Math.max(popoverTop, PADDING_FROM_VIEWPORT);\n popoverLeft = Math.min(popoverLeft, document.documentElement.clientWidth - PADDING_FROM_VIEWPORT - popoverDims.width);\n popoverLeft = Math.max(popoverLeft, PADDING_FROM_VIEWPORT);\n let origin = rootEl.offsetParent.getBoundingClientRect();\n applyStyle(rootEl, {\n top: popoverTop - origin.top,\n left: popoverLeft - origin.left,\n });\n }\n }\n}\n\nclass MorePopover extends DateComponent {\n constructor() {\n super(...arguments);\n this.handleRootEl = (rootEl) => {\n this.rootEl = rootEl;\n if (rootEl) {\n this.context.registerInteractiveComponent(this, {\n el: rootEl,\n useEventCenter: false,\n });\n }\n else {\n this.context.unregisterInteractiveComponent(this);\n }\n };\n }\n render() {\n let { options, dateEnv } = this.context;\n let { props } = this;\n let { startDate, todayRange, dateProfile } = props;\n let title = dateEnv.format(startDate, options.dayPopoverFormat);\n return (createElement(DayCellContainer, { elRef: this.handleRootEl, date: startDate, dateProfile: dateProfile, todayRange: todayRange }, (InnerContent, renderProps, elAttrs) => (createElement(Popover, { elRef: elAttrs.ref, id: props.id, title: title, extraClassNames: ['fc-more-popover'].concat(elAttrs.className || []), extraAttrs: elAttrs /* TODO: make these time-based when not whole-day? */, parentEl: props.parentEl, alignmentEl: props.alignmentEl, alignGridTop: props.alignGridTop, onClose: props.onClose },\n hasCustomDayCellContent(options) && (createElement(InnerContent, { elTag: \"div\", elClasses: ['fc-more-popover-misc'] })),\n props.children))));\n }\n queryHit(positionLeft, positionTop, elWidth, elHeight) {\n let { rootEl, props } = this;\n if (positionLeft >= 0 && positionLeft < elWidth &&\n positionTop >= 0 && positionTop < elHeight) {\n return {\n dateProfile: props.dateProfile,\n dateSpan: Object.assign({ allDay: !props.forceTimed, range: {\n start: props.startDate,\n end: props.endDate,\n } }, props.extraDateSpan),\n dayEl: rootEl,\n rect: {\n left: 0,\n top: 0,\n right: elWidth,\n bottom: elHeight,\n },\n layer: 1, // important when comparing with hits from other components\n };\n }\n return null;\n }\n}\n\nclass MoreLinkContainer extends BaseComponent {\n constructor() {\n super(...arguments);\n this.state = {\n isPopoverOpen: false,\n popoverId: getUniqueDomId(),\n };\n this.handleLinkEl = (linkEl) => {\n this.linkEl = linkEl;\n if (this.props.elRef) {\n setRef(this.props.elRef, linkEl);\n }\n };\n this.handleClick = (ev) => {\n let { props, context } = this;\n let { moreLinkClick } = context.options;\n let date = computeRange(props).start;\n function buildPublicSeg(seg) {\n let { def, instance, range } = seg.eventRange;\n return {\n event: new EventImpl(context, def, instance),\n start: context.dateEnv.toDate(range.start),\n end: context.dateEnv.toDate(range.end),\n isStart: seg.isStart,\n isEnd: seg.isEnd,\n };\n }\n if (typeof moreLinkClick === 'function') {\n moreLinkClick = moreLinkClick({\n date,\n allDay: Boolean(props.allDayDate),\n allSegs: props.allSegs.map(buildPublicSeg),\n hiddenSegs: props.hiddenSegs.map(buildPublicSeg),\n jsEvent: ev,\n view: context.viewApi,\n });\n }\n if (!moreLinkClick || moreLinkClick === 'popover') {\n this.setState({ isPopoverOpen: true });\n }\n else if (typeof moreLinkClick === 'string') { // a view name\n context.calendarApi.zoomTo(date, moreLinkClick);\n }\n };\n this.handlePopoverClose = () => {\n this.setState({ isPopoverOpen: false });\n };\n }\n render() {\n let { props, state } = this;\n return (createElement(ViewContextType.Consumer, null, (context) => {\n let { viewApi, options, calendarApi } = context;\n let { moreLinkText } = options;\n let { moreCnt } = props;\n let range = computeRange(props);\n let text = typeof moreLinkText === 'function' // TODO: eventually use formatWithOrdinals\n ? moreLinkText.call(calendarApi, moreCnt)\n : `+${moreCnt} ${moreLinkText}`;\n let hint = formatWithOrdinals(options.moreLinkHint, [moreCnt], text);\n let renderProps = {\n num: moreCnt,\n shortText: `+${moreCnt}`,\n text,\n view: viewApi,\n };\n return (createElement(Fragment, null,\n Boolean(props.moreCnt) && (createElement(ContentContainer, { elTag: props.elTag || 'a', elRef: this.handleLinkEl, elClasses: [\n ...(props.elClasses || []),\n 'fc-more-link',\n ], elStyle: props.elStyle, elAttrs: Object.assign(Object.assign(Object.assign({}, props.elAttrs), createAriaClickAttrs(this.handleClick)), { title: hint, 'aria-expanded': state.isPopoverOpen, 'aria-controls': state.isPopoverOpen ? state.popoverId : '' }), renderProps: renderProps, generatorName: \"moreLinkContent\", customGenerator: options.moreLinkContent, defaultGenerator: props.defaultGenerator || renderMoreLinkInner, classNameGenerator: options.moreLinkClassNames, didMount: options.moreLinkDidMount, willUnmount: options.moreLinkWillUnmount }, props.children)),\n state.isPopoverOpen && (createElement(MorePopover, { id: state.popoverId, startDate: range.start, endDate: range.end, dateProfile: props.dateProfile, todayRange: props.todayRange, extraDateSpan: props.extraDateSpan, parentEl: this.parentEl, alignmentEl: props.alignmentElRef ?\n props.alignmentElRef.current :\n this.linkEl, alignGridTop: props.alignGridTop, forceTimed: props.forceTimed, onClose: this.handlePopoverClose }, props.popoverContent()))));\n }));\n }\n componentDidMount() {\n this.updateParentEl();\n }\n componentDidUpdate() {\n this.updateParentEl();\n }\n updateParentEl() {\n if (this.linkEl) {\n this.parentEl = elementClosest(this.linkEl, '.fc-view-harness');\n }\n }\n}\nfunction renderMoreLinkInner(props) {\n return props.text;\n}\nfunction computeRange(props) {\n if (props.allDayDate) {\n return {\n start: props.allDayDate,\n end: addDays(props.allDayDate, 1),\n };\n }\n let { hiddenSegs } = props;\n return {\n start: computeEarliestSegStart(hiddenSegs),\n end: computeLatestSegEnd(hiddenSegs),\n };\n}\nfunction computeEarliestSegStart(segs) {\n return segs.reduce(pickEarliestStart).eventRange.range.start;\n}\nfunction pickEarliestStart(seg0, seg1) {\n return seg0.eventRange.range.start < seg1.eventRange.range.start ? seg0 : seg1;\n}\nfunction computeLatestSegEnd(segs) {\n return segs.reduce(pickLatestEnd).eventRange.range.end;\n}\nfunction pickLatestEnd(seg0, seg1) {\n return seg0.eventRange.range.end > seg1.eventRange.range.end ? seg0 : seg1;\n}\n\nclass Store {\n constructor() {\n this.handlers = [];\n }\n set(value) {\n this.currentValue = value;\n for (let handler of this.handlers) {\n handler(value);\n }\n }\n subscribe(handler) {\n this.handlers.push(handler);\n if (this.currentValue !== undefined) {\n handler(this.currentValue);\n }\n }\n}\n\n/*\nSubscribers will get a LIST of CustomRenderings\n*/\nclass CustomRenderingStore extends Store {\n constructor() {\n super(...arguments);\n this.map = new Map();\n }\n // for consistent order\n handle(customRendering) {\n const { map } = this;\n let updated = false;\n if (customRendering.isActive) {\n map.set(customRendering.id, customRendering);\n updated = true;\n }\n else if (map.has(customRendering.id)) {\n map.delete(customRendering.id);\n updated = true;\n }\n if (updated) {\n this.set(map);\n }\n }\n}\n\nexport { elementClosest as $, memoizeObjArg as A, BaseComponent as B, ContentContainer as C, DelayedRunner as D, isPropsEqual as E, Emitter as F, getInitialDate as G, rangeContainsMarker as H, createEmptyEventStore as I, reduceCurrentDate as J, reduceEventStore as K, rezoneEventStoreDates as L, mergeRawOptions as M, BASE_OPTION_REFINERS as N, CALENDAR_LISTENER_REFINERS as O, CALENDAR_OPTION_REFINERS as P, COMPLEX_OPTION_COMPARATORS as Q, VIEW_OPTION_REFINERS as R, DateEnv as S, Theme as T, DateProfileGenerator as U, ViewContextType as V, createEventUi as W, parseBusinessHours as X, setRef as Y, Interaction as Z, getElSeg as _, mapHash as a, getSlotClassNames as a$, EventImpl as a0, listenBySelector as a1, listenToHoverBySelector as a2, PureComponent as a3, buildViewContext as a4, getUniqueDomId as a5, parseInteractionSettings as a6, interactionSettingsStore as a7, getNow as a8, CalendarImpl as a9, diffDates as aA, removeExact as aB, memoizeArraylike as aC, memoizeHashlike as aD, intersectRects as aE, pointInsideRect as aF, constrainPoint as aG, getRectCenter as aH, diffPoints as aI, translateRect as aJ, compareObjs as aK, collectFromHash as aL, findElements as aM, findDirectChildren as aN, removeElement as aO, applyStyle as aP, elementMatches as aQ, getEventTargetViaRoot as aR, parseClassNames as aS, getCanVGrowWithinCell as aT, mergeEventStores as aU, getRelevantEvents as aV, eventTupleToStore as aW, combineEventUis as aX, Splitter as aY, getDayClassNames as aZ, getDateMeta as a_, flushSync as aa, CalendarRoot as ab, RenderId as ac, ensureElHasStyles as ad, applyStyleProp as ae, sliceEventStore as af, JsonRequestError as ag, createContext as ah, refineProps as ai, createEventInstance as aj, parseEventDef as ak, refineEventDef as al, padStart as am, isInt as an, parseFieldSpecs as ao, compareByFieldSpecs as ap, flexibleCompare as aq, preventSelection as ar, allowSelection as as, preventContextMenu as at, allowContextMenu as au, compareNumbers as av, enableCursor as aw, disableCursor as ax, computeVisibleDayRange as ay, isMultiDayRange as az, buildViewClassNames as b, SimpleScrollGrid as b$, buildNavLinkAttrs as b0, preventDefault as b1, whenTransitionDone as b2, computeInnerRect as b3, computeEdges as b4, getClippingParents as b5, computeRect as b6, rangesEqual as b7, rangesIntersect as b8, rangeContainsRange as b9, SegHierarchy as bA, buildEntryKey as bB, getEntrySpanEnd as bC, binarySearch as bD, groupIntersectingEntries as bE, intersectSpans as bF, interactionSettingsToStore as bG, ElementDragging as bH, config as bI, parseDragMeta as bJ, DayHeader as bK, computeFallbackHeaderFormat as bL, TableDateCell as bM, TableDowCell as bN, DaySeriesModel as bO, hasBgRendering as bP, buildSegTimeText as bQ, sortEventSegs as bR, getSegMeta as bS, buildEventRangeKey as bT, getSegAnchorAttrs as bU, DayTableModel as bV, Slicer as bW, applyMutationToEventStore as bX, isPropsValid as bY, isInteractionValid as bZ, isDateSelectionValid as b_, PositionCache as ba, ScrollController as bb, ElementScrollController as bc, WindowScrollController as bd, DateComponent as be, isDateSpansEqual as bf, addMs as bg, addWeeks as bh, diffWeeks as bi, diffWholeWeeks as bj, diffDayAndTime as bk, diffDays as bl, isValidDate as bm, asCleanDays as bn, multiplyDuration as bo, addDurations as bp, asRoughMinutes as bq, asRoughSeconds as br, asRoughMs as bs, wholeDivideDurations as bt, formatIsoTimeString as bu, formatDayString as bv, buildIsoString as bw, formatIsoMonthStr as bx, NamedTimeZoneImpl as by, parse as bz, greatestDurationDenominator as c, hasShrinkWidth as c0, renderMicroColGroup as c1, getScrollGridClassNames as c2, getSectionClassNames as c3, getSectionHasLiquidHeight as c4, getAllowYScrolling as c5, renderChunkContent as c6, computeShrinkWidth as c7, sanitizeShrinkWidth as c8, isColPropsEqual as c9, renderScrollShim as ca, getStickyFooterScrollbar as cb, getStickyHeaderDates as cc, Scroller as cd, getScrollbarWidths as ce, RefMap as cf, getIsRtlScrollbarOnLeft as cg, NowTimer as ch, ScrollResponder as ci, StandardEvent as cj, NowIndicatorContainer as ck, DayCellContainer as cl, hasCustomDayCellContent as cm, EventContainer as cn, renderFill as co, BgEvent as cp, WeekNumberContainer as cq, MoreLinkContainer as cr, computeEarliestSegStart as cs, ViewContainer as ct, triggerDateSelect as cu, getDefaultEventEnd as cv, injectStyles as cw, buildElAttrs as cx, CustomRenderingStore as cy, createDuration as d, BASE_OPTION_DEFAULTS as e, arrayToHash as f, guid as g, filterHash as h, isArraysEqual as i, buildEventSourceRefiners as j, formatWithOrdinals as k, buildRangeApiWithTimeZone as l, mergeProps as m, identity as n, intersectRanges as o, parseEventSource as p, startOfDay as q, requestJson as r, subtractDurations as s, addDays as t, unpromisify as u, hashValuesToArray as v, buildEventApis as w, createFormatter as x, diffWholeDays as y, memoize as z };\n","function affix(buttonText) {\n return (buttonText === 'Tag' || buttonText === 'Monat') ? 'r' :\n buttonText === 'Jahr' ? 's' : '';\n}\nvar l16 = {\n code: 'de-at',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Zurück',\n next: 'Vor',\n today: 'Heute',\n year: 'Jahr',\n month: 'Monat',\n week: 'Woche',\n day: 'Tag',\n list: 'Terminübersicht',\n },\n weekText: 'KW',\n weekTextLong: 'Woche',\n allDayText: 'Ganztägig',\n moreLinkText(n) {\n return '+ weitere ' + n;\n },\n noEventsText: 'Keine Ereignisse anzuzeigen',\n buttonHints: {\n prev(buttonText) {\n return `Vorherige${affix(buttonText)} ${buttonText}`;\n },\n next(buttonText) {\n return `Nächste${affix(buttonText)} ${buttonText}`;\n },\n today(buttonText) {\n // → Heute, Diese Woche, Dieser Monat, Dieses Jahr\n if (buttonText === 'Tag') {\n return 'Heute';\n }\n return `Diese${affix(buttonText)} ${buttonText}`;\n },\n },\n viewHint(buttonText) {\n // → Tagesansicht, Wochenansicht, Monatsansicht, Jahresansicht\n const glue = buttonText === 'Woche' ? 'n' : buttonText === 'Monat' ? 's' : 'es';\n return buttonText + glue + 'ansicht';\n },\n navLinkHint: 'Gehe zu $0',\n moreLinkHint(eventCnt) {\n return 'Zeige ' + (eventCnt === 1 ?\n 'ein weiteres Ereignis' :\n eventCnt + ' weitere Ereignisse');\n },\n closeHint: 'Schließen',\n timeHint: 'Uhrzeit',\n eventHint: 'Ereignis',\n};\n\nexport { l16 as default };\n","function affix(buttonText) {\n return (buttonText === 'Tag' || buttonText === 'Monat') ? 'r' :\n buttonText === 'Jahr' ? 's' : '';\n}\nvar l17 = {\n code: 'de',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Zurück',\n next: 'Vor',\n today: 'Heute',\n year: 'Jahr',\n month: 'Monat',\n week: 'Woche',\n day: 'Tag',\n list: 'Terminübersicht',\n },\n weekText: 'KW',\n weekTextLong: 'Woche',\n allDayText: 'Ganztägig',\n moreLinkText(n) {\n return '+ weitere ' + n;\n },\n noEventsText: 'Keine Ereignisse anzuzeigen',\n buttonHints: {\n prev(buttonText) {\n return `Vorherige${affix(buttonText)} ${buttonText}`;\n },\n next(buttonText) {\n return `Nächste${affix(buttonText)} ${buttonText}`;\n },\n today(buttonText) {\n // → Heute, Diese Woche, Dieser Monat, Dieses Jahr\n if (buttonText === 'Tag') {\n return 'Heute';\n }\n return `Diese${affix(buttonText)} ${buttonText}`;\n },\n },\n viewHint(buttonText) {\n // → Tagesansicht, Wochenansicht, Monatsansicht, Jahresansicht\n const glue = buttonText === 'Woche' ? 'n' : buttonText === 'Monat' ? 's' : 'es';\n return buttonText + glue + 'ansicht';\n },\n navLinkHint: 'Gehe zu $0',\n moreLinkHint(eventCnt) {\n return 'Zeige ' + (eventCnt === 1 ?\n 'ein weiteres Ereignis' :\n eventCnt + ' weitere Ereignisse');\n },\n closeHint: 'Schließen',\n timeHint: 'Uhrzeit',\n eventHint: 'Ereignis',\n};\n\nexport { l17 as default };\n","import l0 from './locales/af.js';\nimport l1 from './locales/ar-dz.js';\nimport l2 from './locales/ar-kw.js';\nimport l3 from './locales/ar-ly.js';\nimport l4 from './locales/ar-ma.js';\nimport l5 from './locales/ar-sa.js';\nimport l6 from './locales/ar-tn.js';\nimport l7 from './locales/ar.js';\nimport l8 from './locales/az.js';\nimport l9 from './locales/bg.js';\nimport l10 from './locales/bn.js';\nimport l11 from './locales/bs.js';\nimport l12 from './locales/ca.js';\nimport l13 from './locales/cs.js';\nimport l14 from './locales/cy.js';\nimport l15 from './locales/da.js';\nimport l16 from './locales/de-at.js';\nimport l17 from './locales/de.js';\nimport l18 from './locales/el.js';\nimport l19 from './locales/en-au.js';\nimport l20 from './locales/en-gb.js';\nimport l21 from './locales/en-nz.js';\nimport l22 from './locales/eo.js';\nimport l23 from './locales/es-us.js';\nimport l24 from './locales/es.js';\nimport l25 from './locales/et.js';\nimport l26 from './locales/eu.js';\nimport l27 from './locales/fa.js';\nimport l28 from './locales/fi.js';\nimport l29 from './locales/fr-ca.js';\nimport l30 from './locales/fr-ch.js';\nimport l31 from './locales/fr.js';\nimport l32 from './locales/gl.js';\nimport l33 from './locales/he.js';\nimport l34 from './locales/hi.js';\nimport l35 from './locales/hr.js';\nimport l36 from './locales/hu.js';\nimport l37 from './locales/hy-am.js';\nimport l38 from './locales/id.js';\nimport l39 from './locales/is.js';\nimport l40 from './locales/it.js';\nimport l41 from './locales/ja.js';\nimport l42 from './locales/ka.js';\nimport l43 from './locales/kk.js';\nimport l44 from './locales/km.js';\nimport l45 from './locales/ko.js';\nimport l46 from './locales/ku.js';\nimport l47 from './locales/lb.js';\nimport l48 from './locales/lt.js';\nimport l49 from './locales/lv.js';\nimport l50 from './locales/mk.js';\nimport l51 from './locales/ms.js';\nimport l52 from './locales/nb.js';\nimport l53 from './locales/ne.js';\nimport l54 from './locales/nl.js';\nimport l55 from './locales/nn.js';\nimport l56 from './locales/pl.js';\nimport l57 from './locales/pt-br.js';\nimport l58 from './locales/pt.js';\nimport l59 from './locales/ro.js';\nimport l60 from './locales/ru.js';\nimport l61 from './locales/si-lk.js';\nimport l62 from './locales/sk.js';\nimport l63 from './locales/sl.js';\nimport l64 from './locales/sm.js';\nimport l65 from './locales/sq.js';\nimport l66 from './locales/sr-cyrl.js';\nimport l67 from './locales/sr.js';\nimport l68 from './locales/sv.js';\nimport l69 from './locales/ta-in.js';\nimport l70 from './locales/th.js';\nimport l71 from './locales/tr.js';\nimport l72 from './locales/ug.js';\nimport l73 from './locales/uk.js';\nimport l74 from './locales/uz-cy.js';\nimport l75 from './locales/uz.js';\nimport l76 from './locales/vi.js';\nimport l77 from './locales/zh-cn.js';\nimport l78 from './locales/zh-tw.js';\n\nvar localesAll = [\n l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36, l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48, l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60, l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72, l73, l74, l75, l76, l77, l78, \n];\n\nexport { localesAll as default };\n","var l0 = {\n code: 'af',\n week: {\n dow: 1,\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n buttonText: {\n prev: 'Vorige',\n next: 'Volgende',\n today: 'Vandag',\n year: 'Jaar',\n month: 'Maand',\n week: 'Week',\n day: 'Dag',\n list: 'Agenda',\n },\n allDayText: 'Heeldag',\n moreLinkText: 'Addisionele',\n noEventsText: 'Daar is geen gebeurtenisse nie',\n};\n\nexport { l0 as default };\n","var l1 = {\n code: 'ar-dz',\n week: {\n dow: 0,\n doy: 4, // The week that contains Jan 1st is the first week of the year.\n },\n direction: 'rtl',\n buttonText: {\n prev: 'السابق',\n next: 'التالي',\n today: 'اليوم',\n year: 'سنة',\n month: 'شهر',\n week: 'أسبوع',\n day: 'يوم',\n list: 'أجندة',\n },\n weekText: 'أسبوع',\n allDayText: 'اليوم كله',\n moreLinkText: 'أخرى',\n noEventsText: 'أي Ø£Øداث لعرض',\n};\n\nexport { l1 as default };\n","var l2 = {\n code: 'ar-kw',\n week: {\n dow: 0,\n doy: 12, // The week that contains Jan 1st is the first week of the year.\n },\n direction: 'rtl',\n buttonText: {\n prev: 'السابق',\n next: 'التالي',\n today: 'اليوم',\n year: 'سنة',\n month: 'شهر',\n week: 'أسبوع',\n day: 'يوم',\n list: 'أجندة',\n },\n weekText: 'أسبوع',\n allDayText: 'اليوم كله',\n moreLinkText: 'أخرى',\n noEventsText: 'أي Ø£Øداث لعرض',\n};\n\nexport { l2 as default };\n","var l3 = {\n code: 'ar-ly',\n week: {\n dow: 6,\n doy: 12, // The week that contains Jan 1st is the first week of the year.\n },\n direction: 'rtl',\n buttonText: {\n prev: 'السابق',\n next: 'التالي',\n today: 'اليوم',\n year: 'سنة',\n month: 'شهر',\n week: 'أسبوع',\n day: 'يوم',\n list: 'أجندة',\n },\n weekText: 'أسبوع',\n allDayText: 'اليوم كله',\n moreLinkText: 'أخرى',\n noEventsText: 'أي Ø£Øداث لعرض',\n};\n\nexport { l3 as default };\n","var l4 = {\n code: 'ar-ma',\n week: {\n dow: 6,\n doy: 12, // The week that contains Jan 1st is the first week of the year.\n },\n direction: 'rtl',\n buttonText: {\n prev: 'السابق',\n next: 'التالي',\n today: 'اليوم',\n year: 'سنة',\n month: 'شهر',\n week: 'أسبوع',\n day: 'يوم',\n list: 'أجندة',\n },\n weekText: 'أسبوع',\n allDayText: 'اليوم كله',\n moreLinkText: 'أخرى',\n noEventsText: 'أي Ø£Øداث لعرض',\n};\n\nexport { l4 as default };\n","var l5 = {\n code: 'ar-sa',\n week: {\n dow: 0,\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n direction: 'rtl',\n buttonText: {\n prev: 'السابق',\n next: 'التالي',\n today: 'اليوم',\n year: 'سنة',\n month: 'شهر',\n week: 'أسبوع',\n day: 'يوم',\n list: 'أجندة',\n },\n weekText: 'أسبوع',\n allDayText: 'اليوم كله',\n moreLinkText: 'أخرى',\n noEventsText: 'أي Ø£Øداث لعرض',\n};\n\nexport { l5 as default };\n","var l6 = {\n code: 'ar-tn',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n direction: 'rtl',\n buttonText: {\n prev: 'السابق',\n next: 'التالي',\n today: 'اليوم',\n year: 'سنة',\n month: 'شهر',\n week: 'أسبوع',\n day: 'يوم',\n list: 'أجندة',\n },\n weekText: 'أسبوع',\n allDayText: 'اليوم كله',\n moreLinkText: 'أخرى',\n noEventsText: 'أي Ø£Øداث لعرض',\n};\n\nexport { l6 as default };\n","var l7 = {\n code: 'ar',\n week: {\n dow: 6,\n doy: 12, // The week that contains Jan 1st is the first week of the year.\n },\n direction: 'rtl',\n buttonText: {\n prev: 'السابق',\n next: 'التالي',\n today: 'اليوم',\n year: 'سنة',\n month: 'شهر',\n week: 'أسبوع',\n day: 'يوم',\n list: 'أجندة',\n },\n weekText: 'أسبوع',\n allDayText: 'اليوم كله',\n moreLinkText: 'أخرى',\n noEventsText: 'أي Ø£Øداث لعرض',\n};\n\nexport { l7 as default };\n","var l8 = {\n code: 'az',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'ÆvvÉ™l',\n next: 'Sonra',\n today: 'Bu Gün',\n year: 'Il',\n month: 'Ay',\n week: 'HÉ™ftÉ™',\n day: 'Gün',\n list: 'GündÉ™m',\n },\n weekText: 'HÉ™ftÉ™',\n allDayText: 'Bütün Gün',\n moreLinkText(n) {\n return '+ daha çox ' + n;\n },\n noEventsText: 'GöstÉ™rmÉ™k üçün hadisÉ™ yoxdur',\n};\n\nexport { l8 as default };\n","var l9 = {\n code: 'bg',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'назад',\n next: 'напред',\n today: 'днеÑ',\n year: 'година',\n month: 'МеÑец',\n week: 'Седмица',\n day: 'Ден',\n list: 'График',\n },\n allDayText: 'ЦÑл ден',\n moreLinkText(n) {\n return '+още ' + n;\n },\n noEventsText: 'ÐÑма ÑÑŠÐ±Ð¸Ñ‚Ð¸Ñ Ð·Ð° показване',\n};\n\nexport { l9 as default };\n","var l10 = {\n code: 'bn',\n week: {\n dow: 0,\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'পেছনে',\n next: 'সামনে',\n today: 'আজ',\n year: 'বছর',\n month: 'মাস',\n week: 'সপà§à¦¤à¦¾à¦¹',\n day: 'দিন',\n list: 'তালিকা',\n },\n weekText: 'সপà§à¦¤à¦¾à¦¹',\n allDayText: 'সারাদিন',\n moreLinkText(n) {\n return '+অনà§à¦¯à¦¾à¦¨à§à¦¯ ' + n;\n },\n noEventsText: 'কোনো ইà¦à§‡à¦¨à§à¦Ÿ নেই',\n};\n\nexport { l10 as default };\n","var l11 = {\n code: 'bs',\n week: {\n dow: 1,\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'ProÅ¡li',\n next: 'Sljedeći',\n today: 'Danas',\n year: 'Godina',\n month: 'Mjesec',\n week: 'Sedmica',\n day: 'Dan',\n list: 'Raspored',\n },\n weekText: 'Sed',\n allDayText: 'Cijeli dan',\n moreLinkText(n) {\n return '+ joÅ¡ ' + n;\n },\n noEventsText: 'Nema dogaÄ‘aja za prikazivanje',\n};\n\nexport { l11 as default };\n","var l12 = {\n code: 'ca',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Anterior',\n next: 'Següent',\n today: 'Avui',\n year: 'Any',\n month: 'Mes',\n week: 'Setmana',\n day: 'Dia',\n list: 'Agenda',\n },\n weekText: 'Set',\n allDayText: 'Tot el dia',\n moreLinkText: 'més',\n noEventsText: 'No hi ha esdeveniments per mostrar',\n};\n\nexport { l12 as default };\n","var l13 = {\n code: 'cs',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'DÅ™Ãve',\n next: 'PozdÄ›ji',\n today: 'NynÃ',\n year: 'Rok',\n month: 'MÄ›sÃc',\n week: 'Týden',\n day: 'Den',\n list: 'Agenda',\n },\n weekText: 'Týd',\n allDayText: 'Celý den',\n moreLinkText(n) {\n return '+dalÅ¡Ã: ' + n;\n },\n noEventsText: 'Žádné akce k zobrazenÃ',\n};\n\nexport { l13 as default };\n","var l14 = {\n code: 'cy',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Blaenorol',\n next: 'Nesaf',\n today: 'Heddiw',\n year: 'Blwyddyn',\n month: 'Mis',\n week: 'Wythnos',\n day: 'Dydd',\n list: 'Rhestr',\n },\n weekText: 'Wythnos',\n allDayText: 'Trwy\\'r dydd',\n moreLinkText: 'Mwy',\n noEventsText: 'Dim digwyddiadau',\n};\n\nexport { l14 as default };\n","var l15 = {\n code: 'da',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Forrige',\n next: 'Næste',\n today: 'I dag',\n year: 'Ã…r',\n month: 'MÃ¥ned',\n week: 'Uge',\n day: 'Dag',\n list: 'Agenda',\n },\n weekText: 'Uge',\n allDayText: 'Hele dagen',\n moreLinkText: 'flere',\n noEventsText: 'Ingen arrangementer at vise',\n};\n\nexport { l15 as default };\n","var l18 = {\n code: 'el',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n buttonText: {\n prev: 'Î ÏοηγοÏμενος',\n next: 'Επόμενος',\n today: 'ΣήμεÏα',\n year: 'Ετος',\n month: 'Μήνας',\n week: 'Εβδομάδα',\n day: 'ΗμÎÏα',\n list: 'ΑτζÎντα',\n },\n weekText: 'Εβδ',\n allDayText: 'ΟλοήμεÏο',\n moreLinkText: 'πεÏισσότεÏα',\n noEventsText: 'Δεν υπάÏχουν γεγονότα Ï€Ïος εμφάνιση',\n};\n\nexport { l18 as default };\n","var l19 = {\n code: 'en-au',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonHints: {\n prev: 'Previous $0',\n next: 'Next $0',\n today: 'This $0',\n },\n viewHint: '$0 view',\n navLinkHint: 'Go to $0',\n moreLinkHint(eventCnt) {\n return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`;\n },\n};\n\nexport { l19 as default };\n","var l20 = {\n code: 'en-gb',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonHints: {\n prev: 'Previous $0',\n next: 'Next $0',\n today: 'This $0',\n },\n viewHint: '$0 view',\n navLinkHint: 'Go to $0',\n moreLinkHint(eventCnt) {\n return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`;\n },\n};\n\nexport { l20 as default };\n","var l21 = {\n code: 'en-nz',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonHints: {\n prev: 'Previous $0',\n next: 'Next $0',\n today: 'This $0',\n },\n viewHint: '$0 view',\n navLinkHint: 'Go to $0',\n moreLinkHint(eventCnt) {\n return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`;\n },\n};\n\nexport { l21 as default };\n","var l22 = {\n code: 'eo',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'AntaÅa',\n next: 'Sekva',\n today: 'HodiaÅ',\n year: 'Jaro',\n month: 'Monato',\n week: 'Semajno',\n day: 'Tago',\n list: 'Tagordo',\n },\n weekText: 'Sm',\n allDayText: 'Tuta tago',\n moreLinkText: 'pli',\n noEventsText: 'Neniuj eventoj por montri',\n};\n\nexport { l22 as default };\n","var l23 = {\n code: 'es',\n week: {\n dow: 0,\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'Ant',\n next: 'Sig',\n today: 'Hoy',\n year: 'Año',\n month: 'Mes',\n week: 'Semana',\n day: 'DÃa',\n list: 'Agenda',\n },\n weekText: 'Sm',\n allDayText: 'Todo el dÃa',\n moreLinkText: 'más',\n noEventsText: 'No hay eventos para mostrar',\n};\n\nexport { l23 as default };\n","var l24 = {\n code: 'es',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Ant',\n next: 'Sig',\n today: 'Hoy',\n year: 'Año',\n month: 'Mes',\n week: 'Semana',\n day: 'DÃa',\n list: 'Agenda',\n },\n buttonHints: {\n prev: '$0 antes',\n next: '$0 siguiente',\n today(buttonText) {\n return (buttonText === 'DÃa') ? 'Hoy' :\n ((buttonText === 'Semana') ? 'Esta' : 'Este') + ' ' + buttonText.toLocaleLowerCase();\n },\n },\n viewHint(buttonText) {\n return 'Vista ' + (buttonText === 'Semana' ? 'de la' : 'del') + ' ' + buttonText.toLocaleLowerCase();\n },\n weekText: 'Sm',\n weekTextLong: 'Semana',\n allDayText: 'Todo el dÃa',\n moreLinkText: 'más',\n moreLinkHint(eventCnt) {\n return `Mostrar ${eventCnt} eventos más`;\n },\n noEventsText: 'No hay eventos para mostrar',\n navLinkHint: 'Ir al $0',\n closeHint: 'Cerrar',\n timeHint: 'La hora',\n eventHint: 'Evento',\n};\n\nexport { l24 as default };\n","var l25 = {\n code: 'et',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Eelnev',\n next: 'Järgnev',\n today: 'Täna',\n year: 'Aasta',\n month: 'Kuu',\n week: 'Nädal',\n day: 'Päev',\n list: 'Päevakord',\n },\n weekText: 'näd',\n allDayText: 'Kogu päev',\n moreLinkText(n) {\n return '+ veel ' + n;\n },\n noEventsText: 'Kuvamiseks puuduvad sündmused',\n};\n\nexport { l25 as default };\n","var l26 = {\n code: 'eu',\n week: {\n dow: 1,\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'Aur',\n next: 'Hur',\n today: 'Gaur',\n year: 'Urtea',\n month: 'Hilabetea',\n week: 'Astea',\n day: 'Eguna',\n list: 'Agenda',\n },\n weekText: 'As',\n allDayText: 'Egun osoa',\n moreLinkText: 'gehiago',\n noEventsText: 'Ez dago ekitaldirik erakusteko',\n};\n\nexport { l26 as default };\n","var l27 = {\n code: 'fa',\n week: {\n dow: 6,\n doy: 12, // The week that contains Jan 1st is the first week of the year.\n },\n direction: 'rtl',\n buttonText: {\n prev: 'قبلی',\n next: 'بعدی',\n today: 'امروز',\n year: 'سال',\n month: 'ماه',\n week: 'Ù‡Ùته',\n day: 'روز',\n list: 'برنامه',\n },\n weekText: 'Ù‡Ù',\n allDayText: 'تمام روز',\n moreLinkText(n) {\n return 'بیش از ' + n;\n },\n noEventsText: 'هیچ رویدادی به نمایش',\n};\n\nexport { l27 as default };\n","var l28 = {\n code: 'fi',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Edellinen',\n next: 'Seuraava',\n today: 'Tänään',\n year: 'Vuosi',\n month: 'Kuukausi',\n week: 'Viikko',\n day: 'Päivä',\n list: 'Tapahtumat',\n },\n weekText: 'Vk',\n allDayText: 'Koko päivä',\n moreLinkText: 'lisää',\n noEventsText: 'Ei näytettäviä tapahtumia',\n};\n\nexport { l28 as default };\n","var l29 = {\n code: 'fr',\n buttonText: {\n prev: 'Précédent',\n next: 'Suivant',\n today: 'Aujourd\\'hui',\n year: 'Année',\n month: 'Mois',\n week: 'Semaine',\n day: 'Jour',\n list: 'Mon planning',\n },\n weekText: 'Sem.',\n allDayText: 'Toute la journée',\n moreLinkText: 'en plus',\n noEventsText: 'Aucun évènement à afficher',\n};\n\nexport { l29 as default };\n","var l30 = {\n code: 'fr-ch',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Précédent',\n next: 'Suivant',\n today: 'Courant',\n year: 'Année',\n month: 'Mois',\n week: 'Semaine',\n day: 'Jour',\n list: 'Mon planning',\n },\n weekText: 'Sm',\n allDayText: 'Toute la journée',\n moreLinkText: 'en plus',\n noEventsText: 'Aucun évènement à afficher',\n};\n\nexport { l30 as default };\n","var l31 = {\n code: 'fr',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Précédent',\n next: 'Suivant',\n today: 'Aujourd\\'hui',\n year: 'Année',\n month: 'Mois',\n week: 'Semaine',\n day: 'Jour',\n list: 'Planning',\n },\n weekText: 'Sem.',\n weekTextLong: 'Semaine',\n allDayText: 'Toute la journée',\n moreLinkText: 'en plus',\n noEventsText: 'Aucun évènement à afficher',\n};\n\nexport { l31 as default };\n","var l32 = {\n code: 'gl',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Ant',\n next: 'Seg',\n today: 'Hoxe',\n year: 'Ano',\n month: 'Mes',\n week: 'Semana',\n day: 'DÃa',\n list: 'Axenda',\n },\n buttonHints: {\n prev: '$0 antes',\n next: '$0 seguinte',\n today(buttonText) {\n return (buttonText === 'DÃa') ? 'Hoxe' :\n ((buttonText === 'Semana') ? 'Esta' : 'Este') + ' ' + buttonText.toLocaleLowerCase();\n },\n },\n viewHint(buttonText) {\n return 'Vista ' + (buttonText === 'Semana' ? 'da' : 'do') + ' ' + buttonText.toLocaleLowerCase();\n },\n weekText: 'Sm',\n weekTextLong: 'Semana',\n allDayText: 'Todo o dÃa',\n moreLinkText: 'máis',\n moreLinkHint(eventCnt) {\n return `Amosar ${eventCnt} eventos máis`;\n },\n noEventsText: 'Non hai eventos para amosar',\n navLinkHint: 'Ir ao $0',\n closeHint: 'Pechar',\n timeHint: 'A hora',\n eventHint: 'Evento',\n};\n\nexport { l32 as default };\n","var l33 = {\n code: 'he',\n direction: 'rtl',\n buttonText: {\n prev: 'הקוד×',\n next: 'הב×',\n today: 'היו×',\n year: '×©× ×”',\n month: 'חודש',\n week: 'שבוע',\n day: 'יו×',\n list: 'סדר יו×',\n },\n allDayText: 'כל היו×',\n moreLinkText: '× ×•×¡×¤×™×',\n noEventsText: '×ין ××™×¨×•×¢×™× ×œ×”×¦×’×”',\n weekText: 'שבוע',\n};\n\nexport { l33 as default };\n","var l34 = {\n code: 'hi',\n week: {\n dow: 0,\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'पिछला',\n next: 'अगला',\n today: 'आज',\n year: 'वरà¥à¤·',\n month: 'महीना',\n week: 'सपà¥à¤¤à¤¾à¤¹',\n day: 'दिन',\n list: 'कारà¥à¤¯à¤¸à¥‚ची',\n },\n weekText: 'हफà¥à¤¤à¤¾',\n allDayText: 'सà¤à¥€ दिन',\n moreLinkText(n) {\n return '+अधिक ' + n;\n },\n noEventsText: 'कोई घटनाओं को पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करने के लिà¤',\n};\n\nexport { l34 as default };\n","var l35 = {\n code: 'hr',\n week: {\n dow: 1,\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'PrijaÅ¡nji',\n next: 'Sljedeći',\n today: 'Danas',\n year: 'Godina',\n month: 'Mjesec',\n week: 'Tjedan',\n day: 'Dan',\n list: 'Raspored',\n },\n weekText: 'Tje',\n allDayText: 'Cijeli dan',\n moreLinkText(n) {\n return '+ joÅ¡ ' + n;\n },\n noEventsText: 'Nema dogaÄ‘aja za prikaz',\n};\n\nexport { l35 as default };\n","var l36 = {\n code: 'hu',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'vissza',\n next: 'elÅ‘re',\n today: 'ma',\n year: 'Év',\n month: 'Hónap',\n week: 'Hét',\n day: 'Nap',\n list: 'Lista',\n },\n weekText: 'Hét',\n allDayText: 'Egész nap',\n moreLinkText: 'további',\n noEventsText: 'Nincs megjelenÃthetÅ‘ esemény',\n};\n\nexport { l36 as default };\n","var l37 = {\n code: 'hy-am',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Õ†Õ¡ÕÕ¸Ö€Õ¤',\n next: 'Õ€Õ¡Õ»Õ¸Ö€Õ¤',\n today: 'Ô±ÕµÕ½Ö…Ö€',\n year: 'ÕÕ¡Ö€Õ«',\n month: 'Ô±Õ´Õ«Õ½',\n week: 'Õ‡Õ¡Õ¢Õ¡Õ©',\n day: 'Õ•Ö€',\n list: 'Õ•Ö€Õ¾Õ¡ ÖÕ¸Ö‚ÖÕ¡Õ¯',\n },\n weekText: 'Õ‡Õ¡Õ¢',\n allDayText: 'Ô±Õ´Õ¢Õ¸Õ²Õ» Ö…Ö€',\n moreLinkText(n) {\n return '+ Ö‡Õ½ ' + n;\n },\n noEventsText: 'Ô²Õ¡ÖÕ¡Õ¯Õ¡ÕµÕ¸Ö‚Õ´ Õ§ Õ«Ö€Õ¡Õ¤Õ¡Ö€Õ±Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨ ÖÕ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬Õ¸Ö‚',\n};\n\nexport { l37 as default };\n","var l38 = {\n code: 'id',\n week: {\n dow: 1,\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'mundur',\n next: 'maju',\n today: 'hari ini',\n year: 'Tahun',\n month: 'Bulan',\n week: 'Minggu',\n day: 'Hari',\n list: 'Agenda',\n },\n weekText: 'Mg',\n allDayText: 'Sehari penuh',\n moreLinkText: 'lebih',\n noEventsText: 'Tidak ada acara untuk ditampilkan',\n};\n\nexport { l38 as default };\n","var l39 = {\n code: 'is',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Fyrri',\n next: 'Næsti',\n today: 'à dag',\n year: 'Ãr',\n month: 'Mánuður',\n week: 'Vika',\n day: 'Dagur',\n list: 'Dagskrá',\n },\n weekText: 'Vika',\n allDayText: 'Allan daginn',\n moreLinkText: 'meira',\n noEventsText: 'Engir viðburðir til að sýna',\n};\n\nexport { l39 as default };\n","var l40 = {\n code: 'it',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Prec',\n next: 'Succ',\n today: 'Oggi',\n year: 'Anno',\n month: 'Mese',\n week: 'Settimana',\n day: 'Giorno',\n list: 'Agenda',\n },\n weekText: 'Sm',\n allDayText: 'Tutto il giorno',\n moreLinkText(n) {\n return '+altri ' + n;\n },\n noEventsText: 'Non ci sono eventi da visualizzare',\n};\n\nexport { l40 as default };\n","var l41 = {\n code: 'ja',\n buttonText: {\n prev: 'å‰',\n next: '次',\n today: '今日',\n year: 'å¹´',\n month: '月',\n week: '週',\n day: 'æ—¥',\n list: '予定リスト',\n },\n weekText: '週',\n allDayText: '終日',\n moreLinkText(n) {\n return 'ä»– ' + n + ' 件';\n },\n noEventsText: '表示ã™ã‚‹äºˆå®šã¯ã‚ã‚Šã¾ã›ã‚“',\n};\n\nexport { l41 as default };\n","var l42 = {\n code: 'ka',\n week: {\n dow: 1,\n doy: 7,\n },\n buttonText: {\n prev: 'წინáƒ',\n next: 'შემდეგი',\n today: 'დღეს',\n year: 'წელიწáƒáƒ“ი',\n month: 'თვე',\n week: 'კვირáƒ',\n day: 'დღე',\n list: 'დღის წესრიგი',\n },\n weekText: 'კვ',\n allDayText: 'მთელი დღე',\n moreLinkText(n) {\n return '+ კიდევ ' + n;\n },\n noEventsText: 'ღáƒáƒœáƒ˜áƒ¡áƒ«áƒ˜áƒ”ბები áƒáƒ áƒáƒ ის',\n};\n\nexport { l42 as default };\n","var l43 = {\n code: 'kk',\n week: {\n dow: 1,\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'Ðлдыңғы',\n next: 'КелеÑÑ–',\n today: 'Бүгін',\n year: 'Жыл',\n month: 'Ðй',\n week: 'Ðпта',\n day: 'Күн',\n list: 'Күн тәртібі',\n },\n weekText: 'Ðе',\n allDayText: 'Күні бойы',\n moreLinkText(n) {\n return '+ тағы ' + n;\n },\n noEventsText: 'КөрÑету үшін оқиғалар жоқ',\n};\n\nexport { l43 as default };\n","var l44 = {\n code: 'km',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'មុន',\n next: 'បន្ទាប់',\n today: 'ážáŸ’ងៃនáŸáŸ‡',\n year: 'ឆ្នាំ',\n month: 'ážáŸ‚',\n week: 'សប្ážáž¶áž áŸ',\n day: 'ážáŸ’ងៃ',\n list: 'បញ្ជី',\n },\n weekText: 'សប្ážáž¶áž áŸ',\n allDayText: 'áž–áŸáž‰áž˜áž½áž™ážáŸ’ងៃ',\n moreLinkText: 'ច្រើនទៀáž',\n noEventsText: 'គ្មានព្រឹážáŸ’ážáž·áž€áž¶ážšážŽáŸážáŸ’រូវបង្ហាញ',\n};\n\nexport { l44 as default };\n","var l45 = {\n code: 'ko',\n buttonText: {\n prev: 'ì´ì „달',\n next: '다ìŒë‹¬',\n today: '오늘',\n year: 'ë…„ë„',\n month: 'ì›”',\n week: '주',\n day: 'ì¼',\n list: 'ì¼ì •ëª©ë¡',\n },\n weekText: '주',\n allDayText: '종ì¼',\n moreLinkText: 'ê°œ',\n noEventsText: 'ì¼ì •ì´ 없습니다',\n};\n\nexport { l45 as default };\n","var l46 = {\n code: 'ku',\n week: {\n dow: 6,\n doy: 12, // The week that contains Jan 1st is the first week of the year.\n },\n direction: 'rtl',\n buttonText: {\n prev: 'پێشتر',\n next: 'دواتر',\n today: 'ئەمڕو',\n year: 'ساڵ',\n month: 'مانگ',\n week: 'Ù‡Û•Ùتە',\n day: 'Ú•Û†Ú˜',\n list: 'بەرنامە',\n },\n weekText: 'Ù‡Û•Ùتە',\n allDayText: 'هەموو Ú•Û†Ú˜Û•Ú©Û•',\n moreLinkText: 'زیاتر',\n noEventsText: 'هیچ ڕووداوێك نیە',\n};\n\nexport { l46 as default };\n","var l47 = {\n code: 'lb',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Zréck',\n next: 'Weider',\n today: 'Haut',\n year: 'Joer',\n month: 'Mount',\n week: 'Woch',\n day: 'Dag',\n list: 'Terminiwwersiicht',\n },\n weekText: 'W',\n allDayText: 'Ganzen Dag',\n moreLinkText: 'méi',\n noEventsText: 'Nee Evenementer ze affichéieren',\n};\n\nexport { l47 as default };\n","var l48 = {\n code: 'lt',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Atgal',\n next: 'Pirmyn',\n today: 'Å iandien',\n year: 'Metai',\n month: 'MÄ—nuo',\n week: 'SavaitÄ—',\n day: 'Diena',\n list: 'DarbotvarkÄ—',\n },\n weekText: 'SAV',\n allDayText: 'VisÄ… dienÄ…',\n moreLinkText: 'daugiau',\n noEventsText: 'NÄ—ra įvykių rodyti',\n};\n\nexport { l48 as default };\n","var l49 = {\n code: 'lv',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Iepr.',\n next: 'NÄk.',\n today: 'Å odien',\n year: 'Gads',\n month: 'MÄ“nesis',\n week: 'Nedēļa',\n day: 'Diena',\n list: 'Dienas kÄrtÄ«ba',\n },\n weekText: 'Ned.',\n allDayText: 'Visu dienu',\n moreLinkText(n) {\n return '+vÄ“l ' + n;\n },\n noEventsText: 'Nav notikumu',\n};\n\nexport { l49 as default };\n","var l50 = {\n code: 'mk',\n buttonText: {\n prev: 'претходно',\n next: 'Ñледно',\n today: 'ДенеÑ',\n year: 'година',\n month: 'МеÑец',\n week: 'Ðедела',\n day: 'Ден',\n list: 'График',\n },\n weekText: 'Сед',\n allDayText: 'Цел ден',\n moreLinkText(n) {\n return '+повеќе ' + n;\n },\n noEventsText: 'Ðема наÑтани за прикажување',\n};\n\nexport { l50 as default };\n","var l51 = {\n code: 'ms',\n week: {\n dow: 1,\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'Sebelum',\n next: 'Selepas',\n today: 'hari ini',\n year: 'Tahun',\n month: 'Bulan',\n week: 'Minggu',\n day: 'Hari',\n list: 'Agenda',\n },\n weekText: 'Mg',\n allDayText: 'Sepanjang hari',\n moreLinkText(n) {\n return 'masih ada ' + n + ' acara';\n },\n noEventsText: 'Tiada peristiwa untuk dipaparkan',\n};\n\nexport { l51 as default };\n","var l52 = {\n code: 'nb',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Forrige',\n next: 'Neste',\n today: 'I dag',\n year: 'Ã…r',\n month: 'MÃ¥ned',\n week: 'Uke',\n day: 'Dag',\n list: 'Agenda',\n },\n weekText: 'Uke',\n weekTextLong: 'Uke',\n allDayText: 'Hele dagen',\n moreLinkText: 'til',\n noEventsText: 'Ingen hendelser Ã¥ vise',\n buttonHints: {\n prev: 'Forrige $0',\n next: 'Neste $0',\n today: 'NÃ¥værende $0',\n },\n viewHint: '$0 visning',\n navLinkHint: 'GÃ¥ til $0',\n moreLinkHint(eventCnt) {\n return `Vis ${eventCnt} flere hendelse${eventCnt === 1 ? '' : 'r'}`;\n },\n};\n\nexport { l52 as default };\n","var l53 = {\n code: 'ne',\n week: {\n dow: 7,\n doy: 1, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'अघिलà¥à¤²à¥‹',\n next: 'अरà¥à¤•à¥‹',\n today: 'आज',\n year: 'वरà¥à¤·',\n month: 'महिना',\n week: 'हपà¥à¤¤à¤¾',\n day: 'दिन',\n list: 'सूची',\n },\n weekText: 'हपà¥à¤¤à¤¾',\n allDayText: 'दिनà¤à¤°à¤¿',\n moreLinkText: 'थप लिंक',\n noEventsText: 'देखाउनको लागि कà¥à¤¨à¥ˆ घटनाहरू छैननà¥',\n};\n\nexport { l53 as default };\n","var l54 = {\n code: 'nl',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Vorige',\n next: 'Volgende',\n today: 'Vandaag',\n year: 'Jaar',\n month: 'Maand',\n week: 'Week',\n day: 'Dag',\n list: 'Lijst',\n },\n allDayText: 'Hele dag',\n moreLinkText: 'extra',\n noEventsText: 'Geen evenementen om te laten zien',\n};\n\nexport { l54 as default };\n","var l55 = {\n code: 'nn',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Førre',\n next: 'Neste',\n today: 'I dag',\n year: 'Ã…r',\n month: 'MÃ¥nad',\n week: 'Veke',\n day: 'Dag',\n list: 'Agenda',\n },\n weekText: 'Veke',\n allDayText: 'Heile dagen',\n moreLinkText: 'til',\n noEventsText: 'Ingen hendelser Ã¥ vise',\n};\n\nexport { l55 as default };\n","var l56 = {\n code: 'pl',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Poprzedni',\n next: 'NastÄ™pny',\n today: 'DziÅ›',\n year: 'Rok',\n month: 'MiesiÄ…c',\n week: 'TydzieÅ„',\n day: 'DzieÅ„',\n list: 'Plan dnia',\n },\n weekText: 'Tydz',\n allDayText: 'CaÅ‚y dzieÅ„',\n moreLinkText: 'wiÄ™cej',\n noEventsText: 'Brak wydarzeÅ„ do wyÅ›wietlenia',\n};\n\nexport { l56 as default };\n","var l57 = {\n code: 'pt-br',\n buttonText: {\n prev: 'Anterior',\n next: 'Próximo',\n prevYear: 'Ano anterior',\n nextYear: 'Próximo ano',\n year: 'Ano',\n today: 'Hoje',\n month: 'Mês',\n week: 'Semana',\n day: 'Dia',\n list: 'Lista',\n },\n buttonHints: {\n prev: '$0 Anterior',\n next: 'Próximo $0',\n today(buttonText) {\n return (buttonText === 'Dia') ? 'Hoje' :\n ((buttonText === 'Semana') ? 'Esta' : 'Este') + ' ' + buttonText.toLocaleLowerCase();\n },\n },\n viewHint(buttonText) {\n return 'Visualizar ' + (buttonText === 'Semana' ? 'a' : 'o') + ' ' + buttonText.toLocaleLowerCase();\n },\n weekText: 'Sm',\n weekTextLong: 'Semana',\n allDayText: 'dia inteiro',\n moreLinkText(n) {\n return 'mais +' + n;\n },\n moreLinkHint(eventCnt) {\n return `Mostrar mais ${eventCnt} eventos`;\n },\n noEventsText: 'Não há eventos para mostrar',\n navLinkHint: 'Ir para $0',\n closeHint: 'Fechar',\n timeHint: 'A hora',\n eventHint: 'Evento',\n};\n\nexport { l57 as default };\n","var l58 = {\n code: 'pt',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Anterior',\n next: 'Seguinte',\n today: 'Hoje',\n year: 'Ano',\n month: 'Mês',\n week: 'Semana',\n day: 'Dia',\n list: 'Agenda',\n },\n weekText: 'Sem',\n allDayText: 'Todo o dia',\n moreLinkText: 'mais',\n noEventsText: 'Não há eventos para mostrar',\n};\n\nexport { l58 as default };\n","var l59 = {\n code: 'ro',\n week: {\n dow: 1,\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'precedentă',\n next: 'următoare',\n today: 'Azi',\n year: 'An',\n month: 'Lună',\n week: 'Săptămână',\n day: 'Zi',\n list: 'Agendă',\n },\n weekText: 'Săpt',\n allDayText: 'Toată ziua',\n moreLinkText(n) {\n return '+alte ' + n;\n },\n noEventsText: 'Nu există evenimente de afiÈ™at',\n};\n\nexport { l59 as default };\n","var l60 = {\n code: 'ru',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Пред',\n next: 'След',\n today: 'СегоднÑ',\n year: 'Год',\n month: 'МеÑÑц',\n week: 'ÐеделÑ',\n day: 'День',\n list: 'ПовеÑтка днÑ',\n },\n weekText: 'Ðед',\n allDayText: 'ВеÑÑŒ день',\n moreLinkText(n) {\n return '+ ещё ' + n;\n },\n noEventsText: 'Ðет Ñобытий Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ',\n};\n\nexport { l60 as default };\n","var l61 = {\n code: 'si-lk',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'පෙර',\n next: 'පසු',\n today: 'අද',\n year: 'අවුරුදු',\n month: 'මà·à·ƒà¶º',\n week: 'à·ƒà¶à·’ය',\n day: 'දවස',\n list: 'ලà·à¶ºà·’ස්à¶à·”à·€',\n },\n weekText: 'à·ƒà¶à·’',\n allDayText: 'සියලු',\n moreLinkText: 'à¶à·€à¶à·Š',\n noEventsText: 'මුකුà¶à·Š නà·à¶',\n};\n\nexport { l61 as default };\n","var l62 = {\n code: 'sk',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Predchádzajúci',\n next: 'Nasledujúci',\n today: 'Dnes',\n year: 'Rok',\n month: 'Mesiac',\n week: 'Týždeň',\n day: 'Deň',\n list: 'Rozvrh',\n },\n weekText: 'Ty',\n allDayText: 'Celý deň',\n moreLinkText(n) {\n return '+ÄalÅ¡ie: ' + n;\n },\n noEventsText: 'Žiadne akcie na zobrazenie',\n};\n\nexport { l62 as default };\n","var l63 = {\n code: 'sl',\n week: {\n dow: 1,\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'PrejÅ¡nji',\n next: 'Naslednji',\n today: 'Trenutni',\n year: 'Leto',\n month: 'Mesec',\n week: 'Teden',\n day: 'Dan',\n list: 'Dnevni red',\n },\n weekText: 'Teden',\n allDayText: 'Ves dan',\n moreLinkText: 'veÄ',\n noEventsText: 'Ni dogodkov za prikaz',\n};\n\nexport { l63 as default };\n","var l64 = {\n code: 'sm',\n buttonText: {\n prev: 'Talu ai',\n next: 'Mulimuli atu',\n today: 'Aso nei',\n year: 'Tausaga',\n month: 'Masina',\n week: 'Vaiaso',\n day: 'Aso',\n list: 'Faasologa',\n },\n weekText: 'Vaiaso',\n allDayText: 'Aso atoa',\n moreLinkText: 'sili atu',\n noEventsText: 'Leai ni mea na tutupu',\n};\n\nexport { l64 as default };\n","var l65 = {\n code: 'sq',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'mbrapa',\n next: 'Përpara',\n today: 'Sot',\n year: 'Viti',\n month: 'Muaj',\n week: 'Javë',\n day: 'Ditë',\n list: 'Listë',\n },\n weekText: 'Ja',\n allDayText: 'Gjithë ditën',\n moreLinkText(n) {\n return '+më tepër ' + n;\n },\n noEventsText: 'Nuk ka evente për të shfaqur',\n};\n\nexport { l65 as default };\n","var l66 = {\n code: 'sr-cyrl',\n week: {\n dow: 1,\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'Претходна',\n next: 'Ñледећи',\n today: 'ДанаÑ',\n year: 'Година',\n month: 'МеÑец',\n week: 'Ðедеља',\n day: 'Дан',\n list: 'Планер',\n },\n weekText: 'Сед',\n allDayText: 'Цео дан',\n moreLinkText(n) {\n return '+ још ' + n;\n },\n noEventsText: 'Ðема догађаја за приказ',\n};\n\nexport { l66 as default };\n","var l67 = {\n code: 'sr',\n week: {\n dow: 1,\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'Prethodna',\n next: 'SledecÌi',\n today: 'Danas',\n year: 'Godina',\n month: 'Mеsеc',\n week: 'Nеdеlja',\n day: 'Dan',\n list: 'Planеr',\n },\n weekText: 'Sed',\n allDayText: 'Cеo dan',\n moreLinkText(n) {\n return '+ joÅ¡ ' + n;\n },\n noEventsText: 'Nеma dogaÄ‘aja za prikaz',\n};\n\nexport { l67 as default };\n","var l68 = {\n code: 'sv',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Förra',\n next: 'Nästa',\n today: 'Idag',\n year: 'Ã…r',\n month: 'MÃ¥nad',\n week: 'Vecka',\n day: 'Dag',\n list: 'Program',\n },\n buttonHints: {\n prev(buttonText) {\n return `FöregÃ¥ende ${buttonText.toLocaleLowerCase()}`;\n },\n next(buttonText) {\n return `Nästa ${buttonText.toLocaleLowerCase()}`;\n },\n today(buttonText) {\n return (buttonText === 'Program' ? 'Detta' : 'Denna') + ' ' + buttonText.toLocaleLowerCase();\n },\n },\n viewHint: '$0 vy',\n navLinkHint: 'GÃ¥ till $0',\n moreLinkHint(eventCnt) {\n return `Visa ytterligare ${eventCnt} händelse${eventCnt === 1 ? '' : 'r'}`;\n },\n weekText: 'v.',\n weekTextLong: 'Vecka',\n allDayText: 'Heldag',\n moreLinkText: 'till',\n noEventsText: 'Inga händelser att visa',\n closeHint: 'Stäng',\n timeHint: 'Klockan',\n eventHint: 'Händelse',\n};\n\nexport { l68 as default };\n","var l69 = {\n code: 'ta-in',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'à®®à¯à®¨à¯à®¤à¯ˆà®¯',\n next: 'அடà¯à®¤à¯à®¤à®¤à¯',\n today: 'இனà¯à®±à¯',\n year: 'ஆணà¯à®Ÿà¯',\n month: 'மாதமà¯',\n week: 'வாரமà¯',\n day: 'நாளà¯',\n list: 'தினசரி அடà¯à®Ÿà®µà®£à¯ˆ',\n },\n weekText: 'வாரமà¯',\n allDayText: 'நாள௠மà¯à®´à¯à®µà®¤à¯à®®à¯',\n moreLinkText(n) {\n return '+ மேலà¯à®®à¯ ' + n;\n },\n noEventsText: 'காணà¯à®ªà®¿à®•à¯à®• நிகழà¯à®µà¯à®•à®³à¯ இலà¯à®²à¯ˆ',\n};\n\nexport { l69 as default };\n","var l70 = {\n code: 'th',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'à¸à¹ˆà¸à¸™à¸«à¸™à¹‰à¸²',\n next: 'ถัดไป',\n prevYear: 'ปีà¸à¹ˆà¸à¸™à¸«à¸™à¹‰à¸²',\n nextYear: 'ปีถัดไป',\n year: 'ปี',\n today: 'วันนี้',\n month: 'เดืà¸à¸™',\n week: 'สัปดาห์',\n day: 'วัน',\n list: 'à¸à¸³à¸«à¸™à¸”à¸à¸²à¸£',\n },\n weekText: 'สัปดาห์',\n allDayText: 'ตลà¸à¸”วัน',\n moreLinkText: 'เพิ่มเติม',\n noEventsText: 'ไม่มีà¸à¸´à¸ˆà¸à¸£à¸£à¸¡à¸—ี่จะà¹à¸ªà¸”ง',\n};\n\nexport { l70 as default };\n","var l71 = {\n code: 'tr',\n week: {\n dow: 1,\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'geri',\n next: 'ileri',\n today: 'bugün',\n year: 'Yıl',\n month: 'Ay',\n week: 'Hafta',\n day: 'Gün',\n list: 'Ajanda',\n },\n weekText: 'Hf',\n allDayText: 'Tüm gün',\n moreLinkText: 'daha fazla',\n noEventsText: 'Gösterilecek etkinlik yok',\n};\n\nexport { l71 as default };\n","var l72 = {\n code: 'ug',\n buttonText: {\n prev: 'ئالدىنقى',\n next: 'ÙƒÛيىنكى',\n today: 'بۈگۈن',\n year: 'يىل',\n month: 'ئاي',\n week: 'ھەپتە',\n day: 'ÙƒÛˆÙ†',\n list: 'كۈنتەرتىپ',\n },\n allDayText: 'پۈتۈن ÙƒÛˆÙ†',\n};\n\nexport { l72 as default };\n","var l73 = {\n code: 'uk',\n week: {\n dow: 1,\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n buttonText: {\n prev: 'Попередній',\n next: 'далі',\n today: 'Сьогодні',\n year: 'рік',\n month: 'МіÑÑць',\n week: 'Тиждень',\n day: 'День',\n list: 'ПорÑдок денний',\n },\n weekText: 'Тиж',\n allDayText: 'УвеÑÑŒ день',\n moreLinkText(n) {\n return '+ще ' + n + '...';\n },\n noEventsText: 'Ðемає подій Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ',\n};\n\nexport { l73 as default };\n","var l74 = {\n code: 'uz-cy',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Олин',\n next: 'Кейин',\n today: 'Бугун',\n month: 'Ой',\n week: 'Ҳафта',\n day: 'Кун',\n list: 'Кун тартиби',\n },\n weekText: 'Ҳафта',\n allDayText: 'Кун бўйича',\n moreLinkText(n) {\n return '+ Ñна ' + n;\n },\n noEventsText: 'КўрÑатиш учун воқеалар йўқ',\n};\n\nexport { l74 as default };\n","var l75 = {\n code: 'uz',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'Oldingi',\n next: 'Keyingi',\n today: 'Bugun',\n year: 'Yil',\n month: 'Oy',\n week: 'Xafta',\n day: 'Kun',\n list: 'Kun tartibi',\n },\n allDayText: 'Kun bo\\'yi',\n moreLinkText(n) {\n return '+ yana ' + n;\n },\n noEventsText: 'Ko\\'rsatish uchun voqealar yo\\'q',\n};\n\nexport { l75 as default };\n","var l76 = {\n code: 'vi',\n week: {\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: 'TrÆ°á»›c',\n next: 'Tiếp',\n today: 'Hôm nay',\n year: 'Năm',\n month: 'Tháng',\n week: 'Tuần',\n day: 'Ngà y',\n list: 'Lịch biểu',\n },\n weekText: 'Tu',\n allDayText: 'Cả ngà y',\n moreLinkText(n) {\n return '+ thêm ' + n;\n },\n noEventsText: 'Không có sá»± kiện để hiển thị',\n};\n\nexport { l76 as default };\n","var l77 = {\n code: 'zh-cn',\n week: {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow: 1,\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: '上月',\n next: '下月',\n today: '今天',\n year: 'å¹´',\n month: '月',\n week: '周',\n day: 'æ—¥',\n list: '日程',\n },\n weekText: '周',\n allDayText: '全天',\n moreLinkText(n) {\n return 'å¦å¤– ' + n + ' 个';\n },\n noEventsText: '没有事件显示',\n};\n\nexport { l77 as default };\n","var l78 = {\n code: 'zh-tw',\n buttonText: {\n prev: '上個',\n next: '下個',\n today: '今天',\n year: 'å¹´',\n month: '月',\n week: '週',\n day: '天',\n list: '活動列表',\n },\n weekText: '週',\n allDayText: '整天',\n moreLinkText: '顯示更多',\n noEventsText: '沒有任何活動',\n};\n\nexport { l78 as default };\n","import { DateComponent, getStickyHeaderDates, ViewContainer, SimpleScrollGrid, getStickyFooterScrollbar, renderScrollShim, createFormatter, BaseComponent, StandardEvent, buildSegTimeText, EventContainer, getSegAnchorAttrs, memoize, MoreLinkContainer, getSegMeta, getUniqueDomId, setRef, DayCellContainer, WeekNumberContainer, buildNavLinkAttrs, hasCustomDayCellContent, addMs, intersectRanges, addDays, SegHierarchy, buildEntryKey, intersectSpans, RefMap, sortEventSegs, isPropsEqual, buildEventRangeKey, BgEvent, renderFill, PositionCache, NowTimer, formatIsoMonthStr, formatDayString, Slicer, DayHeader, DaySeriesModel, DayTableModel, DateProfileGenerator, addWeeks, diffWeeks, injectStyles } from '@fullcalendar/core/internal.js';\nimport { createRef, createElement, Fragment } from '@fullcalendar/core/preact.js';\n\n/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.\n----------------------------------------------------------------------------------------------------------------------*/\n// It is a manager for a Table subcomponent, which does most of the heavy lifting.\n// It is responsible for managing width/height.\nclass TableView extends DateComponent {\n constructor() {\n super(...arguments);\n this.headerElRef = createRef();\n }\n renderSimpleLayout(headerRowContent, bodyContent) {\n let { props, context } = this;\n let sections = [];\n let stickyHeaderDates = getStickyHeaderDates(context.options);\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunk: {\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n },\n });\n }\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n chunk: { content: bodyContent },\n });\n return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },\n createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections })));\n }\n renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) {\n let ScrollGrid = this.context.pluginHooks.scrollGridImpl;\n if (!ScrollGrid) {\n throw new Error('No ScrollGrid implementation');\n }\n let { props, context } = this;\n let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);\n let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);\n let sections = [];\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunks: [{\n key: 'main',\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n }],\n });\n }\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n chunks: [{\n key: 'main',\n content: bodyContent,\n }],\n });\n if (stickyFooterScrollbar) {\n sections.push({\n type: 'footer',\n key: 'footer',\n isSticky: true,\n chunks: [{\n key: 'main',\n content: renderScrollShim,\n }],\n });\n }\n return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },\n createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, forPrint: props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })));\n }\n}\n\nfunction splitSegsByRow(segs, rowCnt) {\n let byRow = [];\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = [];\n }\n for (let seg of segs) {\n byRow[seg.row].push(seg);\n }\n return byRow;\n}\nfunction splitSegsByFirstCol(segs, colCnt) {\n let byCol = [];\n for (let i = 0; i < colCnt; i += 1) {\n byCol[i] = [];\n }\n for (let seg of segs) {\n byCol[seg.firstCol].push(seg);\n }\n return byCol;\n}\nfunction splitInteractionByRow(ui, rowCnt) {\n let byRow = [];\n if (!ui) {\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = null;\n }\n }\n else {\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = {\n affectedInstances: ui.affectedInstances,\n isEvent: ui.isEvent,\n segs: [],\n };\n }\n for (let seg of ui.segs) {\n byRow[seg.row].segs.push(seg);\n }\n }\n return byRow;\n}\n\nconst DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'narrow',\n});\nfunction hasListItemDisplay(seg) {\n let { display } = seg.eventRange.ui;\n return display === 'list-item' || (display === 'auto' &&\n !seg.eventRange.def.allDay &&\n seg.firstCol === seg.lastCol && // can't be multi-day\n seg.isStart && // \"\n seg.isEnd // \"\n );\n}\n\nclass TableBlockEvent extends BaseComponent {\n render() {\n let { props } = this;\n return (createElement(StandardEvent, Object.assign({}, props, { elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));\n }\n}\n\nclass TableListItemEvent extends BaseComponent {\n render() {\n let { props, context } = this;\n let { options } = context;\n let { seg } = props;\n let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;\n let timeText = buildSegTimeText(seg, timeFormat, context, true, props.defaultDisplayEventEnd);\n return (createElement(EventContainer, Object.assign({}, props, { elTag: \"a\", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: getSegAnchorAttrs(props.seg, context), defaultGenerator: renderInnerContent, timeText: timeText, isResizing: false, isDateSelecting: false })));\n }\n}\nfunction renderInnerContent(renderProps) {\n return (createElement(Fragment, null,\n createElement(\"div\", { className: \"fc-daygrid-event-dot\", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),\n renderProps.timeText && (createElement(\"div\", { className: \"fc-event-time\" }, renderProps.timeText)),\n createElement(\"div\", { className: \"fc-event-title\" }, renderProps.event.title || createElement(Fragment, null, \"\\u00A0\"))));\n}\n\nclass TableCellMoreLink extends BaseComponent {\n constructor() {\n super(...arguments);\n this.compileSegs = memoize(compileSegs);\n }\n render() {\n let { props } = this;\n let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements);\n return (createElement(MoreLinkContainer, { elClasses: ['fc-daygrid-more-link'], dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: () => {\n let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||\n (props.eventResize ? props.eventResize.affectedInstances : null) ||\n {};\n return (createElement(Fragment, null, allSegs.map((seg) => {\n let instanceId = seg.eventRange.instance.instanceId;\n return (createElement(\"div\", { className: \"fc-daygrid-event-harness\", key: instanceId, style: {\n visibility: isForcedInvisible[instanceId] ? 'hidden' : '',\n } }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));\n })));\n } }));\n }\n}\nfunction compileSegs(singlePlacements) {\n let allSegs = [];\n let invisibleSegs = [];\n for (let placement of singlePlacements) {\n allSegs.push(placement.seg);\n if (!placement.isVisible) {\n invisibleSegs.push(placement.seg);\n }\n }\n return { allSegs, invisibleSegs };\n}\n\nconst DEFAULT_WEEK_NUM_FORMAT = createFormatter({ week: 'narrow' });\nclass TableCell extends DateComponent {\n constructor() {\n super(...arguments);\n this.rootElRef = createRef();\n this.state = {\n dayNumberId: getUniqueDomId(),\n };\n this.handleRootEl = (el) => {\n setRef(this.rootElRef, el);\n setRef(this.props.elRef, el);\n };\n }\n render() {\n let { context, props, state, rootElRef } = this;\n let { options, dateEnv } = context;\n let { date, dateProfile } = props;\n // TODO: memoize this?\n const isMonthStart = props.showDayNumber &&\n shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);\n return (createElement(DayCellContainer, { elTag: \"td\", elRef: this.handleRootEl, elClasses: [\n 'fc-daygrid-day',\n ...(props.extraClassNames || []),\n ], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (createElement(\"div\", { ref: props.innerElRef, className: \"fc-daygrid-day-frame fc-scrollgrid-sync-inner\", style: { minHeight: props.minHeight } },\n props.showWeekNumber && (createElement(WeekNumberContainer, { elTag: \"a\", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT })),\n !renderProps.isDisabled &&\n (props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop) ? (createElement(\"div\", { className: \"fc-daygrid-day-top\" },\n createElement(InnerContent, { elTag: \"a\", elClasses: [\n 'fc-daygrid-day-number',\n isMonthStart && 'fc-daygrid-month-start',\n ], elAttrs: Object.assign(Object.assign({}, buildNavLinkAttrs(context, date)), { id: state.dayNumberId }) }))) : props.showDayNumber ? (\n // for creating correct amount of space (see issue #7162)\n createElement(\"div\", { className: \"fc-daygrid-day-top\", style: { visibility: 'hidden' } },\n createElement(\"a\", { className: \"fc-daygrid-day-number\" }, \"\\u00A0\"))) : undefined,\n createElement(\"div\", { className: \"fc-daygrid-day-events\", ref: props.fgContentElRef },\n props.fgContent,\n createElement(\"div\", { className: \"fc-daygrid-day-bottom\", style: { marginTop: props.moreMarginTop } },\n createElement(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),\n createElement(\"div\", { className: \"fc-daygrid-day-bg\" }, props.bgContent)))));\n }\n}\nfunction renderTopInner(props) {\n return props.dayNumberText || createElement(Fragment, null, \"\\u00A0\");\n}\nfunction shouldDisplayMonthStart(date, currentRange, dateEnv) {\n const { start: currentStart, end: currentEnd } = currentRange;\n const currentEndIncl = addMs(currentEnd, -1);\n const currentFirstYear = dateEnv.getYear(currentStart);\n const currentFirstMonth = dateEnv.getMonth(currentStart);\n const currentLastYear = dateEnv.getYear(currentEndIncl);\n const currentLastMonth = dateEnv.getMonth(currentEndIncl);\n // spans more than one month?\n return !(currentFirstYear === currentLastYear && currentFirstMonth === currentLastMonth) &&\n Boolean(\n // first date in current view?\n date.valueOf() === currentStart.valueOf() ||\n // a month-start that's within the current range?\n (dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));\n}\n\nfunction generateSegKey(seg) {\n return seg.eventRange.instance.instanceId + ':' + seg.firstCol;\n}\nfunction generateSegUid(seg) {\n return generateSegKey(seg) + ':' + seg.lastCol;\n}\nfunction computeFgSegPlacement(segs, // assumed already sorted\ndayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {\n let hierarchy = new DayGridSegHierarchy((segEntry) => {\n // TODO: more DRY with generateSegUid\n let segUid = segs[segEntry.index].eventRange.instance.instanceId +\n ':' + segEntry.span.start +\n ':' + (segEntry.span.end - 1);\n return segHeights[segUid];\n });\n hierarchy.allowReslicing = true;\n hierarchy.strictOrder = strictOrder;\n if (dayMaxEvents === true || dayMaxEventRows === true) {\n hierarchy.maxCoord = maxContentHeight;\n hierarchy.hiddenConsumes = true;\n }\n else if (typeof dayMaxEvents === 'number') {\n hierarchy.maxStackCnt = dayMaxEvents;\n }\n else if (typeof dayMaxEventRows === 'number') {\n hierarchy.maxStackCnt = dayMaxEventRows;\n hierarchy.hiddenConsumes = true;\n }\n // create segInputs only for segs with known heights\n let segInputs = [];\n let unknownHeightSegs = [];\n for (let i = 0; i < segs.length; i += 1) {\n let seg = segs[i];\n let segUid = generateSegUid(seg);\n let eventHeight = segHeights[segUid];\n if (eventHeight != null) {\n segInputs.push({\n index: i,\n span: {\n start: seg.firstCol,\n end: seg.lastCol + 1,\n },\n });\n }\n else {\n unknownHeightSegs.push(seg);\n }\n }\n let hiddenEntries = hierarchy.addSegs(segInputs);\n let segRects = hierarchy.toRects();\n let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);\n let moreCnts = [];\n let moreMarginTops = [];\n // add segs with unknown heights\n for (let seg of unknownHeightSegs) {\n multiColPlacements[seg.firstCol].push({\n seg,\n isVisible: false,\n isAbsolute: true,\n absoluteTop: 0,\n marginTop: 0,\n });\n for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {\n singleColPlacements[col].push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: false,\n isAbsolute: false,\n absoluteTop: 0,\n marginTop: 0,\n });\n }\n }\n // add the hidden entries\n for (let col = 0; col < cells.length; col += 1) {\n moreCnts.push(0);\n }\n for (let hiddenEntry of hiddenEntries) {\n let seg = segs[hiddenEntry.index];\n let hiddenSpan = hiddenEntry.span;\n multiColPlacements[hiddenSpan.start].push({\n seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),\n isVisible: false,\n isAbsolute: true,\n absoluteTop: 0,\n marginTop: 0,\n });\n for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {\n moreCnts[col] += 1;\n singleColPlacements[col].push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: false,\n isAbsolute: false,\n absoluteTop: 0,\n marginTop: 0,\n });\n }\n }\n // deal with leftover margins\n for (let col = 0; col < cells.length; col += 1) {\n moreMarginTops.push(leftoverMargins[col]);\n }\n return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };\n}\n// rects ordered by top coord, then left\nfunction placeRects(allRects, segs, cells) {\n let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);\n let singleColPlacements = [];\n let multiColPlacements = [];\n let leftoverMargins = [];\n for (let col = 0; col < cells.length; col += 1) {\n let rects = rectsByEachCol[col];\n // compute all static segs in singlePlacements\n let singlePlacements = [];\n let currentHeight = 0;\n let currentMarginTop = 0;\n for (let rect of rects) {\n let seg = segs[rect.index];\n singlePlacements.push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: true,\n isAbsolute: false,\n absoluteTop: rect.levelCoord,\n marginTop: rect.levelCoord - currentHeight,\n });\n currentHeight = rect.levelCoord + rect.thickness;\n }\n // compute mixed static/absolute segs in multiPlacements\n let multiPlacements = [];\n currentHeight = 0;\n currentMarginTop = 0;\n for (let rect of rects) {\n let seg = segs[rect.index];\n let isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?\n let isFirstCol = rect.span.start === col;\n currentMarginTop += rect.levelCoord - currentHeight; // amount of space since bottom of previous seg\n currentHeight = rect.levelCoord + rect.thickness; // height will now be bottom of current seg\n if (isAbsolute) {\n currentMarginTop += rect.thickness;\n if (isFirstCol) {\n multiPlacements.push({\n seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),\n isVisible: true,\n isAbsolute: true,\n absoluteTop: rect.levelCoord,\n marginTop: 0,\n });\n }\n }\n else if (isFirstCol) {\n multiPlacements.push({\n seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),\n isVisible: true,\n isAbsolute: false,\n absoluteTop: rect.levelCoord,\n marginTop: currentMarginTop, // claim the margin\n });\n currentMarginTop = 0;\n }\n }\n singleColPlacements.push(singlePlacements);\n multiColPlacements.push(multiPlacements);\n leftoverMargins.push(currentMarginTop);\n }\n return { singleColPlacements, multiColPlacements, leftoverMargins };\n}\nfunction groupRectsByEachCol(rects, colCnt) {\n let rectsByEachCol = [];\n for (let col = 0; col < colCnt; col += 1) {\n rectsByEachCol.push([]);\n }\n for (let rect of rects) {\n for (let col = rect.span.start; col < rect.span.end; col += 1) {\n rectsByEachCol[col].push(rect);\n }\n }\n return rectsByEachCol;\n}\nfunction resliceSeg(seg, spanStart, spanEnd, cells) {\n if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {\n return seg;\n }\n let eventRange = seg.eventRange;\n let origRange = eventRange.range;\n let slicedRange = intersectRanges(origRange, {\n start: cells[spanStart].date,\n end: addDays(cells[spanEnd - 1].date, 1),\n });\n return Object.assign(Object.assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {\n def: eventRange.def,\n ui: Object.assign(Object.assign({}, eventRange.ui), { durationEditable: false }),\n instance: eventRange.instance,\n range: slicedRange,\n }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() });\n}\nclass DayGridSegHierarchy extends SegHierarchy {\n constructor() {\n super(...arguments);\n // config\n this.hiddenConsumes = false;\n // allows us to keep hidden entries in the hierarchy so they take up space\n this.forceHidden = {};\n }\n addSegs(segInputs) {\n const hiddenSegs = super.addSegs(segInputs);\n const { entriesByLevel } = this;\n const excludeHidden = (entry) => !this.forceHidden[buildEntryKey(entry)];\n // remove the forced-hidden segs\n for (let level = 0; level < entriesByLevel.length; level += 1) {\n entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden);\n }\n return hiddenSegs;\n }\n handleInvalidInsertion(insertion, entry, hiddenEntries) {\n const { entriesByLevel, forceHidden } = this;\n const { touchingEntry, touchingLevel, touchingLateral } = insertion;\n if (this.hiddenConsumes && touchingEntry) {\n const touchingEntryId = buildEntryKey(touchingEntry);\n // if not already hidden\n if (!forceHidden[touchingEntryId]) {\n if (this.allowReslicing) {\n const placeholderEntry = Object.assign(Object.assign({}, touchingEntry), { span: intersectSpans(touchingEntry.span, entry.span) });\n const placeholderEntryId = buildEntryKey(placeholderEntry);\n forceHidden[placeholderEntryId] = true;\n entriesByLevel[touchingLevel][touchingLateral] = placeholderEntry; // replace touchingEntry with our placeholder\n this.splitEntry(touchingEntry, entry, hiddenEntries); // split up the touchingEntry, reinsert it\n }\n else {\n forceHidden[touchingEntryId] = true;\n hiddenEntries.push(touchingEntry);\n }\n }\n }\n return super.handleInvalidInsertion(insertion, entry, hiddenEntries);\n }\n}\n\nclass TableRow extends DateComponent {\n constructor() {\n super(...arguments);\n this.cellElRefs = new RefMap(); // the <td>\n this.frameElRefs = new RefMap(); // the fc-daygrid-day-frame\n this.fgElRefs = new RefMap(); // the fc-daygrid-day-events\n this.segHarnessRefs = new RefMap(); // indexed by \"instanceId:firstCol\"\n this.rootElRef = createRef();\n this.state = {\n framePositions: null,\n maxContentHeight: null,\n segHeights: {},\n };\n this.handleResize = (isForced) => {\n if (isForced) {\n this.updateSizing(true); // isExternal=true\n }\n };\n }\n render() {\n let { props, state, context } = this;\n let { options } = context;\n let colCnt = props.cells.length;\n let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);\n let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);\n let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);\n let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);\n let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);\n let isForcedInvisible = // TODO: messy way to compute this\n (props.eventDrag && props.eventDrag.affectedInstances) ||\n (props.eventResize && props.eventResize.affectedInstances) ||\n {};\n return (createElement(\"tr\", { ref: this.rootElRef, role: \"row\" },\n props.renderIntro && props.renderIntro(),\n props.cells.map((cell, col) => {\n let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);\n let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);\n return (createElement(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys\n createElement(Fragment, null,\n createElement(Fragment, null, normalFgNodes),\n createElement(Fragment, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys\n createElement(Fragment, null,\n this.renderFillSegs(highlightSegsByCol[col], 'highlight'),\n this.renderFillSegs(businessHoursByCol[col], 'non-business'),\n this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))), minHeight: props.cellMinHeight }));\n })));\n }\n componentDidMount() {\n this.updateSizing(true);\n this.context.addResizeHandler(this.handleResize);\n }\n componentDidUpdate(prevProps, prevState) {\n let currentProps = this.props;\n this.updateSizing(!isPropsEqual(prevProps, currentProps));\n }\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleResize);\n }\n getHighlightSegs() {\n let { props } = this;\n if (props.eventDrag && props.eventDrag.segs.length) { // messy check\n return props.eventDrag.segs;\n }\n if (props.eventResize && props.eventResize.segs.length) { // messy check\n return props.eventResize.segs;\n }\n return props.dateSelectionSegs;\n }\n getMirrorSegs() {\n let { props } = this;\n if (props.eventResize && props.eventResize.segs.length) { // messy check\n return props.eventResize.segs;\n }\n return [];\n }\n renderFgSegs(col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {\n let { context } = this;\n let { eventSelection } = this.props;\n let { framePositions } = this.state;\n let defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1\n let isMirror = isDragging || isResizing || isDateSelecting;\n let nodes = [];\n if (framePositions) {\n for (let placement of segPlacements) {\n let { seg } = placement;\n let { instanceId } = seg.eventRange.instance;\n let isVisible = placement.isVisible && !isForcedInvisible[instanceId];\n let isAbsolute = placement.isAbsolute;\n let left = '';\n let right = '';\n if (isAbsolute) {\n if (context.isRtl) {\n right = 0;\n left = framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol];\n }\n else {\n left = 0;\n right = framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol];\n }\n }\n /*\n known bug: events that are force to be list-item but span multiple days still take up space in later columns\n todo: in print view, for multi-day events, don't display title within non-start/end segs\n */\n nodes.push(createElement(\"div\", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: generateSegKey(seg), ref: isMirror ? null : this.segHarnessRefs.createRef(generateSegUid(seg)), style: {\n visibility: isVisible ? '' : 'hidden',\n marginTop: isAbsolute ? '' : placement.marginTop,\n top: isAbsolute ? placement.absoluteTop : '',\n left,\n right,\n } }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));\n }\n }\n return nodes;\n }\n renderFillSegs(segs, fillType) {\n let { isRtl } = this.context;\n let { todayRange } = this.props;\n let { framePositions } = this.state;\n let nodes = [];\n if (framePositions) {\n for (let seg of segs) {\n let leftRightCss = isRtl ? {\n right: 0,\n left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],\n } : {\n left: 0,\n right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol],\n };\n nodes.push(createElement(\"div\", { key: buildEventRangeKey(seg.eventRange), className: \"fc-daygrid-bg-harness\", style: leftRightCss }, fillType === 'bg-event' ?\n createElement(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, todayRange))) :\n renderFill(fillType)));\n }\n }\n return createElement(Fragment, {}, ...nodes);\n }\n updateSizing(isExternalSizingChange) {\n let { props, state, frameElRefs } = this;\n if (!props.forPrint &&\n props.clientWidth !== null // positioning ready?\n ) {\n if (isExternalSizingChange) {\n let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key]);\n if (frameEls.length) {\n let originEl = this.rootElRef.current;\n let newPositionCache = new PositionCache(originEl, frameEls, true, // isHorizontal\n false);\n if (!state.framePositions || !state.framePositions.similarTo(newPositionCache)) {\n this.setState({\n framePositions: new PositionCache(originEl, frameEls, true, // isHorizontal\n false),\n });\n }\n }\n }\n const oldSegHeights = this.state.segHeights;\n const newSegHeights = this.querySegHeights();\n const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;\n this.safeSetState({\n // HACK to prevent oscillations of events being shown/hidden from max-event-rows\n // Essentially, once you compute an element's height, never null-out.\n // TODO: always display all events, as visibility:hidden?\n segHeights: Object.assign(Object.assign({}, oldSegHeights), newSegHeights),\n maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,\n });\n }\n }\n querySegHeights() {\n let segElMap = this.segHarnessRefs.currentMap;\n let segHeights = {};\n // get the max height amongst instance segs\n for (let segUid in segElMap) {\n let height = Math.round(segElMap[segUid].getBoundingClientRect().height);\n segHeights[segUid] = Math.max(segHeights[segUid] || 0, height);\n }\n return segHeights;\n }\n computeMaxContentHeight() {\n let firstKey = this.props.cells[0].key;\n let cellEl = this.cellElRefs.currentMap[firstKey];\n let fcContainerEl = this.fgElRefs.currentMap[firstKey];\n return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;\n }\n getCellEls() {\n let elMap = this.cellElRefs.currentMap;\n return this.props.cells.map((cell) => elMap[cell.key]);\n }\n}\nTableRow.addStateEquality({\n segHeights: isPropsEqual,\n});\nfunction buildMirrorPlacements(mirrorSegs, colPlacements) {\n if (!mirrorSegs.length) {\n return [];\n }\n let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?\n return mirrorSegs.map((seg) => ({\n seg,\n isVisible: true,\n isAbsolute: true,\n absoluteTop: topsByInstanceId[seg.eventRange.instance.instanceId],\n marginTop: 0,\n }));\n}\nfunction buildAbsoluteTopHash(colPlacements) {\n let topsByInstanceId = {};\n for (let placements of colPlacements) {\n for (let placement of placements) {\n topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop;\n }\n }\n return topsByInstanceId;\n}\n\nclass TableRows extends DateComponent {\n constructor() {\n super(...arguments);\n this.splitBusinessHourSegs = memoize(splitSegsByRow);\n this.splitBgEventSegs = memoize(splitSegsByRow);\n this.splitFgEventSegs = memoize(splitSegsByRow);\n this.splitDateSelectionSegs = memoize(splitSegsByRow);\n this.splitEventDrag = memoize(splitInteractionByRow);\n this.splitEventResize = memoize(splitInteractionByRow);\n this.rowRefs = new RefMap();\n }\n render() {\n let { props, context } = this;\n let rowCnt = props.cells.length;\n let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);\n let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);\n let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);\n let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);\n let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);\n let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);\n // for DayGrid view with many rows, force a min-height on cells so doesn't appear squished\n // choose 7 because a month view will have max 6 rows\n let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?\n props.clientWidth / context.options.aspectRatio / 6 :\n null;\n return (createElement(NowTimer, { unit: \"day\" }, (nowDate, todayRange) => (createElement(Fragment, null, props.cells.map((cells, row) => (createElement(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length\n ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */\n : row // in case there are no cells (like when resource view is loading)\n , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: props.dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, cellMinHeight: cellMinHeight, forPrint: props.forPrint })))))));\n }\n componentDidMount() {\n this.registerInteractiveComponent();\n }\n componentDidUpdate() {\n // for if started with zero cells\n this.registerInteractiveComponent();\n }\n registerInteractiveComponent() {\n if (!this.rootEl) {\n // HACK: need a daygrid wrapper parent to do positioning\n // NOTE: a daygrid resource view w/o resources can have zero cells\n const firstCellEl = this.rowRefs.currentMap[0].getCellEls()[0];\n const rootEl = firstCellEl ? firstCellEl.closest('.fc-daygrid-body') : null;\n if (rootEl) {\n this.rootEl = rootEl;\n this.context.registerInteractiveComponent(this, {\n el: rootEl,\n isHitComboAllowed: this.props.isHitComboAllowed,\n });\n }\n }\n }\n componentWillUnmount() {\n if (this.rootEl) {\n this.context.unregisterInteractiveComponent(this);\n this.rootEl = null;\n }\n }\n // Hit System\n // ----------------------------------------------------------------------------------------------------\n prepareHits() {\n this.rowPositions = new PositionCache(this.rootEl, this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal\n false, true);\n this.colPositions = new PositionCache(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), // cell els in first row\n true, // horizontal\n false);\n }\n queryHit(positionLeft, positionTop) {\n let { colPositions, rowPositions } = this;\n let col = colPositions.leftToIndex(positionLeft);\n let row = rowPositions.topToIndex(positionTop);\n if (row != null && col != null) {\n let cell = this.props.cells[row][col];\n return {\n dateProfile: this.props.dateProfile,\n dateSpan: Object.assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),\n dayEl: this.getCellEl(row, col),\n rect: {\n left: colPositions.lefts[col],\n right: colPositions.rights[col],\n top: rowPositions.tops[row],\n bottom: rowPositions.bottoms[row],\n },\n layer: 0,\n };\n }\n return null;\n }\n getCellEl(row, col) {\n return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal\n }\n getCellRange(row, col) {\n let start = this.props.cells[row][col].date;\n let end = addDays(start, 1);\n return { start, end };\n }\n}\nfunction isSegAllDay(seg) {\n return seg.eventRange.def.allDay;\n}\n\nclass Table extends DateComponent {\n constructor() {\n super(...arguments);\n this.elRef = createRef();\n this.needsScrollReset = false;\n }\n render() {\n let { props } = this;\n let { dayMaxEventRows, dayMaxEvents, expandRows } = props;\n let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;\n // if rows can't expand to fill fixed height, can't do balanced-height event limit\n // TODO: best place to normalize these options?\n if (limitViaBalanced && !expandRows) {\n limitViaBalanced = false;\n dayMaxEventRows = null;\n dayMaxEvents = null;\n }\n let classNames = [\n 'fc-daygrid-body',\n limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',\n expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?\n ];\n return (createElement(\"div\", { ref: this.elRef, className: classNames.join(' '), style: {\n // these props are important to give this wrapper correct dimensions for interactions\n // TODO: if we set it here, can we avoid giving to inner tables?\n width: props.clientWidth,\n minWidth: props.tableMinWidth,\n } },\n createElement(\"table\", { role: \"presentation\", className: \"fc-scrollgrid-sync-table\", style: {\n width: props.clientWidth,\n minWidth: props.tableMinWidth,\n height: expandRows ? props.clientHeight : '',\n } },\n props.colGroupNode,\n createElement(\"tbody\", { role: \"presentation\" },\n createElement(TableRows, { dateProfile: props.dateProfile, cells: props.cells, renderRowIntro: props.renderRowIntro, showWeekNumbers: props.showWeekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed })))));\n }\n componentDidMount() {\n this.requestScrollReset();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.dateProfile !== this.props.dateProfile) {\n this.requestScrollReset();\n }\n else {\n this.flushScrollReset();\n }\n }\n requestScrollReset() {\n this.needsScrollReset = true;\n this.flushScrollReset();\n }\n flushScrollReset() {\n if (this.needsScrollReset &&\n this.props.clientWidth // sizes computed?\n ) {\n const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);\n if (subjectEl) {\n const originEl = subjectEl.closest('.fc-daygrid-body');\n const scrollEl = originEl.closest('.fc-scroller');\n const scrollTop = subjectEl.getBoundingClientRect().top -\n originEl.getBoundingClientRect().top;\n scrollEl.scrollTop = scrollTop ? (scrollTop + 1) : 0; // overcome border\n }\n this.needsScrollReset = false;\n }\n }\n}\nfunction getScrollSubjectEl(containerEl, dateProfile) {\n let el;\n if (dateProfile.currentRangeUnit.match(/year|month/)) {\n el = containerEl.querySelector(`[data-date=\"${formatIsoMonthStr(dateProfile.currentDate)}-01\"]`);\n // even if view is month-based, first-of-month might be hidden...\n }\n if (!el) {\n el = containerEl.querySelector(`[data-date=\"${formatDayString(dateProfile.currentDate)}\"]`);\n // could still be hidden if an interior-view hidden day\n }\n return el;\n}\n\nclass DayTableSlicer extends Slicer {\n constructor() {\n super(...arguments);\n this.forceDayIfListItem = true;\n }\n sliceRange(dateRange, dayTableModel) {\n return dayTableModel.sliceRange(dateRange);\n }\n}\n\nclass DayTable extends DateComponent {\n constructor() {\n super(...arguments);\n this.slicer = new DayTableSlicer();\n this.tableRef = createRef();\n }\n render() {\n let { props, context } = this;\n return (createElement(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));\n }\n}\n\nclass DayTableView extends TableView {\n constructor() {\n super(...arguments);\n this.buildDayTableModel = memoize(buildDayTableModel);\n this.headerRef = createRef();\n this.tableRef = createRef();\n // can't override any lifecycle methods from parent\n }\n render() {\n let { options, dateProfileGenerator } = this.context;\n let { props } = this;\n let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);\n let headerContent = options.dayHeaders && (createElement(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));\n let bodyContent = (contentArg) => (createElement(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));\n return options.dayMinWidth\n ? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)\n : this.renderSimpleLayout(headerContent, bodyContent);\n }\n}\nfunction buildDayTableModel(dateProfile, dateProfileGenerator) {\n let daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);\n return new DayTableModel(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));\n}\n\nclass TableDateProfileGenerator extends DateProfileGenerator {\n // Computes the date range that will be rendered\n buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {\n let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay);\n let { props } = this;\n return buildDayTableRenderRange({\n currentRange: renderRange,\n snapToWeek: /^(year|month)$/.test(currentRangeUnit),\n fixedWeekCount: props.fixedWeekCount,\n dateEnv: props.dateEnv,\n });\n }\n}\nfunction buildDayTableRenderRange(props) {\n let { dateEnv, currentRange } = props;\n let { start, end } = currentRange;\n let endOfWeek;\n // year and month views should be aligned with weeks. this is already done for week\n if (props.snapToWeek) {\n start = dateEnv.startOfWeek(start);\n // make end-of-week if not already\n endOfWeek = dateEnv.startOfWeek(end);\n if (endOfWeek.valueOf() !== end.valueOf()) {\n end = addWeeks(endOfWeek, 1);\n }\n }\n // ensure 6 weeks\n if (props.fixedWeekCount) {\n // TODO: instead of these date-math gymnastics (for multimonth view),\n // compute dateprofiles of all months, then use start of first and end of last.\n let lastMonthRenderStart = dateEnv.startOfWeek(dateEnv.startOfMonth(addDays(currentRange.end, -1)));\n let rowCnt = Math.ceil(// could be partial weeks due to hiddenDays\n diffWeeks(lastMonthRenderStart, end));\n end = addWeeks(end, 6 - rowCnt);\n }\n return { start, end };\n}\n\nvar css_248z = \":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\\\"\\\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\\\"\\\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}\";\ninjectStyles(css_248z);\n\nexport { DayTableView as DayGridView, DayTable, DayTableSlicer, Table, TableDateProfileGenerator, TableRows, TableView, buildDayTableModel, buildDayTableRenderRange };\n","import { createPlugin } from '@fullcalendar/core/index.js';\nimport { DayGridView as DayTableView, TableDateProfileGenerator } from './internal.js';\nimport '@fullcalendar/core/internal.js';\nimport '@fullcalendar/core/preact.js';\n\nvar index = createPlugin({\n name: '@fullcalendar/daygrid',\n initialView: 'dayGridMonth',\n views: {\n dayGrid: {\n component: DayTableView,\n dateProfileGeneratorClass: TableDateProfileGenerator,\n },\n dayGridDay: {\n type: 'dayGrid',\n duration: { days: 1 },\n },\n dayGridWeek: {\n type: 'dayGrid',\n duration: { weeks: 1 },\n },\n dayGridMonth: {\n type: 'dayGrid',\n duration: { months: 1 },\n fixedWeekCount: true,\n },\n dayGridYear: {\n type: 'dayGrid',\n duration: { years: 1 },\n },\n },\n});\n\nexport { index as default };\n","import { createPlugin } from '@fullcalendar/core/index.js';\nimport { config, Emitter, elementClosest, applyStyle, whenTransitionDone, removeElement, ScrollController, ElementScrollController, computeInnerRect, WindowScrollController, ElementDragging, preventSelection, preventContextMenu, allowSelection, allowContextMenu, computeRect, getClippingParents, pointInsideRect, constrainPoint, intersectRects, getRectCenter, diffPoints, mapHash, rangeContainsRange, isDateSpansEqual, Interaction, interactionSettingsToStore, isDateSelectionValid, enableCursor, disableCursor, triggerDateSelect, compareNumbers, getElSeg, getRelevantEvents, EventImpl, createEmptyEventStore, applyMutationToEventStore, isInteractionValid, buildEventApis, interactionSettingsStore, startOfDay, diffDates, createDuration, getEventTargetViaRoot, identity, eventTupleToStore, parseDragMeta, elementMatches, refineEventDef, parseEventDef, getDefaultEventEnd, createEventInstance, BASE_OPTION_DEFAULTS } from '@fullcalendar/core/internal.js';\n\nconfig.touchMouseIgnoreWait = 500;\nlet ignoreMouseDepth = 0;\nlet listenerCnt = 0;\nlet isWindowTouchMoveCancelled = false;\n/*\nUses a \"pointer\" abstraction, which monitors UI events for both mouse and touch.\nTracks when the pointer \"drags\" on a certain element, meaning down+move+up.\n\nAlso, tracks if there was touch-scrolling.\nAlso, can prevent touch-scrolling from happening.\nAlso, can fire pointermove events when scrolling happens underneath, even when no real pointer movement.\n\nemits:\n- pointerdown\n- pointermove\n- pointerup\n*/\nclass PointerDragging {\n constructor(containerEl) {\n this.subjectEl = null;\n // options that can be directly assigned by caller\n this.selector = ''; // will cause subjectEl in all emitted events to be this element\n this.handleSelector = '';\n this.shouldIgnoreMove = false;\n this.shouldWatchScroll = true; // for simulating pointermove on scroll\n // internal states\n this.isDragging = false;\n this.isTouchDragging = false;\n this.wasTouchScroll = false;\n // Mouse\n // ----------------------------------------------------------------------------------------------------\n this.handleMouseDown = (ev) => {\n if (!this.shouldIgnoreMouse() &&\n isPrimaryMouseButton(ev) &&\n this.tryStart(ev)) {\n let pev = this.createEventFromMouse(ev, true);\n this.emitter.trigger('pointerdown', pev);\n this.initScrollWatch(pev);\n if (!this.shouldIgnoreMove) {\n document.addEventListener('mousemove', this.handleMouseMove);\n }\n document.addEventListener('mouseup', this.handleMouseUp);\n }\n };\n this.handleMouseMove = (ev) => {\n let pev = this.createEventFromMouse(ev);\n this.recordCoords(pev);\n this.emitter.trigger('pointermove', pev);\n };\n this.handleMouseUp = (ev) => {\n document.removeEventListener('mousemove', this.handleMouseMove);\n document.removeEventListener('mouseup', this.handleMouseUp);\n this.emitter.trigger('pointerup', this.createEventFromMouse(ev));\n this.cleanup(); // call last so that pointerup has access to props\n };\n // Touch\n // ----------------------------------------------------------------------------------------------------\n this.handleTouchStart = (ev) => {\n if (this.tryStart(ev)) {\n this.isTouchDragging = true;\n let pev = this.createEventFromTouch(ev, true);\n this.emitter.trigger('pointerdown', pev);\n this.initScrollWatch(pev);\n // unlike mouse, need to attach to target, not document\n // https://stackoverflow.com/a/45760014\n let targetEl = ev.target;\n if (!this.shouldIgnoreMove) {\n targetEl.addEventListener('touchmove', this.handleTouchMove);\n }\n targetEl.addEventListener('touchend', this.handleTouchEnd);\n targetEl.addEventListener('touchcancel', this.handleTouchEnd); // treat it as a touch end\n // attach a handler to get called when ANY scroll action happens on the page.\n // this was impossible to do with normal on/off because 'scroll' doesn't bubble.\n // http://stackoverflow.com/a/32954565/96342\n window.addEventListener('scroll', this.handleTouchScroll, true);\n }\n };\n this.handleTouchMove = (ev) => {\n let pev = this.createEventFromTouch(ev);\n this.recordCoords(pev);\n this.emitter.trigger('pointermove', pev);\n };\n this.handleTouchEnd = (ev) => {\n if (this.isDragging) { // done to guard against touchend followed by touchcancel\n let targetEl = ev.target;\n targetEl.removeEventListener('touchmove', this.handleTouchMove);\n targetEl.removeEventListener('touchend', this.handleTouchEnd);\n targetEl.removeEventListener('touchcancel', this.handleTouchEnd);\n window.removeEventListener('scroll', this.handleTouchScroll, true); // useCaptured=true\n this.emitter.trigger('pointerup', this.createEventFromTouch(ev));\n this.cleanup(); // call last so that pointerup has access to props\n this.isTouchDragging = false;\n startIgnoringMouse();\n }\n };\n this.handleTouchScroll = () => {\n this.wasTouchScroll = true;\n };\n this.handleScroll = (ev) => {\n if (!this.shouldIgnoreMove) {\n let pageX = (window.pageXOffset - this.prevScrollX) + this.prevPageX;\n let pageY = (window.pageYOffset - this.prevScrollY) + this.prevPageY;\n this.emitter.trigger('pointermove', {\n origEvent: ev,\n isTouch: this.isTouchDragging,\n subjectEl: this.subjectEl,\n pageX,\n pageY,\n deltaX: pageX - this.origPageX,\n deltaY: pageY - this.origPageY,\n });\n }\n };\n this.containerEl = containerEl;\n this.emitter = new Emitter();\n containerEl.addEventListener('mousedown', this.handleMouseDown);\n containerEl.addEventListener('touchstart', this.handleTouchStart, { passive: true });\n listenerCreated();\n }\n destroy() {\n this.containerEl.removeEventListener('mousedown', this.handleMouseDown);\n this.containerEl.removeEventListener('touchstart', this.handleTouchStart, { passive: true });\n listenerDestroyed();\n }\n tryStart(ev) {\n let subjectEl = this.querySubjectEl(ev);\n let downEl = ev.target;\n if (subjectEl &&\n (!this.handleSelector || elementClosest(downEl, this.handleSelector))) {\n this.subjectEl = subjectEl;\n this.isDragging = true; // do this first so cancelTouchScroll will work\n this.wasTouchScroll = false;\n return true;\n }\n return false;\n }\n cleanup() {\n isWindowTouchMoveCancelled = false;\n this.isDragging = false;\n this.subjectEl = null;\n // keep wasTouchScroll around for later access\n this.destroyScrollWatch();\n }\n querySubjectEl(ev) {\n if (this.selector) {\n return elementClosest(ev.target, this.selector);\n }\n return this.containerEl;\n }\n shouldIgnoreMouse() {\n return ignoreMouseDepth || this.isTouchDragging;\n }\n // can be called by user of this class, to cancel touch-based scrolling for the current drag\n cancelTouchScroll() {\n if (this.isDragging) {\n isWindowTouchMoveCancelled = true;\n }\n }\n // Scrolling that simulates pointermoves\n // ----------------------------------------------------------------------------------------------------\n initScrollWatch(ev) {\n if (this.shouldWatchScroll) {\n this.recordCoords(ev);\n window.addEventListener('scroll', this.handleScroll, true); // useCapture=true\n }\n }\n recordCoords(ev) {\n if (this.shouldWatchScroll) {\n this.prevPageX = ev.pageX;\n this.prevPageY = ev.pageY;\n this.prevScrollX = window.pageXOffset;\n this.prevScrollY = window.pageYOffset;\n }\n }\n destroyScrollWatch() {\n if (this.shouldWatchScroll) {\n window.removeEventListener('scroll', this.handleScroll, true); // useCaptured=true\n }\n }\n // Event Normalization\n // ----------------------------------------------------------------------------------------------------\n createEventFromMouse(ev, isFirst) {\n let deltaX = 0;\n let deltaY = 0;\n // TODO: repeat code\n if (isFirst) {\n this.origPageX = ev.pageX;\n this.origPageY = ev.pageY;\n }\n else {\n deltaX = ev.pageX - this.origPageX;\n deltaY = ev.pageY - this.origPageY;\n }\n return {\n origEvent: ev,\n isTouch: false,\n subjectEl: this.subjectEl,\n pageX: ev.pageX,\n pageY: ev.pageY,\n deltaX,\n deltaY,\n };\n }\n createEventFromTouch(ev, isFirst) {\n let touches = ev.touches;\n let pageX;\n let pageY;\n let deltaX = 0;\n let deltaY = 0;\n // if touch coords available, prefer,\n // because FF would give bad ev.pageX ev.pageY\n if (touches && touches.length) {\n pageX = touches[0].pageX;\n pageY = touches[0].pageY;\n }\n else {\n pageX = ev.pageX;\n pageY = ev.pageY;\n }\n // TODO: repeat code\n if (isFirst) {\n this.origPageX = pageX;\n this.origPageY = pageY;\n }\n else {\n deltaX = pageX - this.origPageX;\n deltaY = pageY - this.origPageY;\n }\n return {\n origEvent: ev,\n isTouch: true,\n subjectEl: this.subjectEl,\n pageX,\n pageY,\n deltaX,\n deltaY,\n };\n }\n}\n// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac)\nfunction isPrimaryMouseButton(ev) {\n return ev.button === 0 && !ev.ctrlKey;\n}\n// Ignoring fake mouse events generated by touch\n// ----------------------------------------------------------------------------------------------------\nfunction startIgnoringMouse() {\n ignoreMouseDepth += 1;\n setTimeout(() => {\n ignoreMouseDepth -= 1;\n }, config.touchMouseIgnoreWait);\n}\n// We want to attach touchmove as early as possible for Safari\n// ----------------------------------------------------------------------------------------------------\nfunction listenerCreated() {\n listenerCnt += 1;\n if (listenerCnt === 1) {\n window.addEventListener('touchmove', onWindowTouchMove, { passive: false });\n }\n}\nfunction listenerDestroyed() {\n listenerCnt -= 1;\n if (!listenerCnt) {\n window.removeEventListener('touchmove', onWindowTouchMove, { passive: false });\n }\n}\nfunction onWindowTouchMove(ev) {\n if (isWindowTouchMoveCancelled) {\n ev.preventDefault();\n }\n}\n\n/*\nAn effect in which an element follows the movement of a pointer across the screen.\nThe moving element is a clone of some other element.\nMust call start + handleMove + stop.\n*/\nclass ElementMirror {\n constructor() {\n this.isVisible = false; // must be explicitly enabled\n this.sourceEl = null;\n this.mirrorEl = null;\n this.sourceElRect = null; // screen coords relative to viewport\n // options that can be set directly by caller\n this.parentNode = document.body; // HIGHLY SUGGESTED to set this to sidestep ShadowDOM issues\n this.zIndex = 9999;\n this.revertDuration = 0;\n }\n start(sourceEl, pageX, pageY) {\n this.sourceEl = sourceEl;\n this.sourceElRect = this.sourceEl.getBoundingClientRect();\n this.origScreenX = pageX - window.pageXOffset;\n this.origScreenY = pageY - window.pageYOffset;\n this.deltaX = 0;\n this.deltaY = 0;\n this.updateElPosition();\n }\n handleMove(pageX, pageY) {\n this.deltaX = (pageX - window.pageXOffset) - this.origScreenX;\n this.deltaY = (pageY - window.pageYOffset) - this.origScreenY;\n this.updateElPosition();\n }\n // can be called before start\n setIsVisible(bool) {\n if (bool) {\n if (!this.isVisible) {\n if (this.mirrorEl) {\n this.mirrorEl.style.display = '';\n }\n this.isVisible = bool; // needs to happen before updateElPosition\n this.updateElPosition(); // because was not updating the position while invisible\n }\n }\n else if (this.isVisible) {\n if (this.mirrorEl) {\n this.mirrorEl.style.display = 'none';\n }\n this.isVisible = bool;\n }\n }\n // always async\n stop(needsRevertAnimation, callback) {\n let done = () => {\n this.cleanup();\n callback();\n };\n if (needsRevertAnimation &&\n this.mirrorEl &&\n this.isVisible &&\n this.revertDuration && // if 0, transition won't work\n (this.deltaX || this.deltaY) // if same coords, transition won't work\n ) {\n this.doRevertAnimation(done, this.revertDuration);\n }\n else {\n setTimeout(done, 0);\n }\n }\n doRevertAnimation(callback, revertDuration) {\n let mirrorEl = this.mirrorEl;\n let finalSourceElRect = this.sourceEl.getBoundingClientRect(); // because autoscrolling might have happened\n mirrorEl.style.transition =\n 'top ' + revertDuration + 'ms,' +\n 'left ' + revertDuration + 'ms';\n applyStyle(mirrorEl, {\n left: finalSourceElRect.left,\n top: finalSourceElRect.top,\n });\n whenTransitionDone(mirrorEl, () => {\n mirrorEl.style.transition = '';\n callback();\n });\n }\n cleanup() {\n if (this.mirrorEl) {\n removeElement(this.mirrorEl);\n this.mirrorEl = null;\n }\n this.sourceEl = null;\n }\n updateElPosition() {\n if (this.sourceEl && this.isVisible) {\n applyStyle(this.getMirrorEl(), {\n left: this.sourceElRect.left + this.deltaX,\n top: this.sourceElRect.top + this.deltaY,\n });\n }\n }\n getMirrorEl() {\n let sourceElRect = this.sourceElRect;\n let mirrorEl = this.mirrorEl;\n if (!mirrorEl) {\n mirrorEl = this.mirrorEl = this.sourceEl.cloneNode(true); // cloneChildren=true\n // we don't want long taps or any mouse interaction causing selection/menus.\n // would use preventSelection(), but that prevents selectstart, causing problems.\n mirrorEl.style.userSelect = 'none';\n mirrorEl.style.webkitUserSelect = 'none';\n mirrorEl.classList.add('fc-event-dragging');\n applyStyle(mirrorEl, {\n position: 'fixed',\n zIndex: this.zIndex,\n visibility: '',\n boxSizing: 'border-box',\n width: sourceElRect.right - sourceElRect.left,\n height: sourceElRect.bottom - sourceElRect.top,\n right: 'auto',\n bottom: 'auto',\n margin: 0,\n });\n this.parentNode.appendChild(mirrorEl);\n }\n return mirrorEl;\n }\n}\n\n/*\nIs a cache for a given element's scroll information (all the info that ScrollController stores)\nin addition the \"client rectangle\" of the element.. the area within the scrollbars.\n\nThe cache can be in one of two modes:\n- doesListening:false - ignores when the container is scrolled by someone else\n- doesListening:true - watch for scrolling and update the cache\n*/\nclass ScrollGeomCache extends ScrollController {\n constructor(scrollController, doesListening) {\n super();\n this.handleScroll = () => {\n this.scrollTop = this.scrollController.getScrollTop();\n this.scrollLeft = this.scrollController.getScrollLeft();\n this.handleScrollChange();\n };\n this.scrollController = scrollController;\n this.doesListening = doesListening;\n this.scrollTop = this.origScrollTop = scrollController.getScrollTop();\n this.scrollLeft = this.origScrollLeft = scrollController.getScrollLeft();\n this.scrollWidth = scrollController.getScrollWidth();\n this.scrollHeight = scrollController.getScrollHeight();\n this.clientWidth = scrollController.getClientWidth();\n this.clientHeight = scrollController.getClientHeight();\n this.clientRect = this.computeClientRect(); // do last in case it needs cached values\n if (this.doesListening) {\n this.getEventTarget().addEventListener('scroll', this.handleScroll);\n }\n }\n destroy() {\n if (this.doesListening) {\n this.getEventTarget().removeEventListener('scroll', this.handleScroll);\n }\n }\n getScrollTop() {\n return this.scrollTop;\n }\n getScrollLeft() {\n return this.scrollLeft;\n }\n setScrollTop(top) {\n this.scrollController.setScrollTop(top);\n if (!this.doesListening) {\n // we are not relying on the element to normalize out-of-bounds scroll values\n // so we need to sanitize ourselves\n this.scrollTop = Math.max(Math.min(top, this.getMaxScrollTop()), 0);\n this.handleScrollChange();\n }\n }\n setScrollLeft(top) {\n this.scrollController.setScrollLeft(top);\n if (!this.doesListening) {\n // we are not relying on the element to normalize out-of-bounds scroll values\n // so we need to sanitize ourselves\n this.scrollLeft = Math.max(Math.min(top, this.getMaxScrollLeft()), 0);\n this.handleScrollChange();\n }\n }\n getClientWidth() {\n return this.clientWidth;\n }\n getClientHeight() {\n return this.clientHeight;\n }\n getScrollWidth() {\n return this.scrollWidth;\n }\n getScrollHeight() {\n return this.scrollHeight;\n }\n handleScrollChange() {\n }\n}\n\nclass ElementScrollGeomCache extends ScrollGeomCache {\n constructor(el, doesListening) {\n super(new ElementScrollController(el), doesListening);\n }\n getEventTarget() {\n return this.scrollController.el;\n }\n computeClientRect() {\n return computeInnerRect(this.scrollController.el);\n }\n}\n\nclass WindowScrollGeomCache extends ScrollGeomCache {\n constructor(doesListening) {\n super(new WindowScrollController(), doesListening);\n }\n getEventTarget() {\n return window;\n }\n computeClientRect() {\n return {\n left: this.scrollLeft,\n right: this.scrollLeft + this.clientWidth,\n top: this.scrollTop,\n bottom: this.scrollTop + this.clientHeight,\n };\n }\n // the window is the only scroll object that changes it's rectangle relative\n // to the document's topleft as it scrolls\n handleScrollChange() {\n this.clientRect = this.computeClientRect();\n }\n}\n\n// If available we are using native \"performance\" API instead of \"Date\"\n// Read more about it on MDN:\n// https://developer.mozilla.org/en-US/docs/Web/API/Performance\nconst getTime = typeof performance === 'function' ? performance.now : Date.now;\n/*\nFor a pointer interaction, automatically scrolls certain scroll containers when the pointer\napproaches the edge.\n\nThe caller must call start + handleMove + stop.\n*/\nclass AutoScroller {\n constructor() {\n // options that can be set by caller\n this.isEnabled = true;\n this.scrollQuery = [window, '.fc-scroller'];\n this.edgeThreshold = 50; // pixels\n this.maxVelocity = 300; // pixels per second\n // internal state\n this.pointerScreenX = null;\n this.pointerScreenY = null;\n this.isAnimating = false;\n this.scrollCaches = null;\n // protect against the initial pointerdown being too close to an edge and starting the scroll\n this.everMovedUp = false;\n this.everMovedDown = false;\n this.everMovedLeft = false;\n this.everMovedRight = false;\n this.animate = () => {\n if (this.isAnimating) { // wasn't cancelled between animation calls\n let edge = this.computeBestEdge(this.pointerScreenX + window.pageXOffset, this.pointerScreenY + window.pageYOffset);\n if (edge) {\n let now = getTime();\n this.handleSide(edge, (now - this.msSinceRequest) / 1000);\n this.requestAnimation(now);\n }\n else {\n this.isAnimating = false; // will stop animation\n }\n }\n };\n }\n start(pageX, pageY, scrollStartEl) {\n if (this.isEnabled) {\n this.scrollCaches = this.buildCaches(scrollStartEl);\n this.pointerScreenX = null;\n this.pointerScreenY = null;\n this.everMovedUp = false;\n this.everMovedDown = false;\n this.everMovedLeft = false;\n this.everMovedRight = false;\n this.handleMove(pageX, pageY);\n }\n }\n handleMove(pageX, pageY) {\n if (this.isEnabled) {\n let pointerScreenX = pageX - window.pageXOffset;\n let pointerScreenY = pageY - window.pageYOffset;\n let yDelta = this.pointerScreenY === null ? 0 : pointerScreenY - this.pointerScreenY;\n let xDelta = this.pointerScreenX === null ? 0 : pointerScreenX - this.pointerScreenX;\n if (yDelta < 0) {\n this.everMovedUp = true;\n }\n else if (yDelta > 0) {\n this.everMovedDown = true;\n }\n if (xDelta < 0) {\n this.everMovedLeft = true;\n }\n else if (xDelta > 0) {\n this.everMovedRight = true;\n }\n this.pointerScreenX = pointerScreenX;\n this.pointerScreenY = pointerScreenY;\n if (!this.isAnimating) {\n this.isAnimating = true;\n this.requestAnimation(getTime());\n }\n }\n }\n stop() {\n if (this.isEnabled) {\n this.isAnimating = false; // will stop animation\n for (let scrollCache of this.scrollCaches) {\n scrollCache.destroy();\n }\n this.scrollCaches = null;\n }\n }\n requestAnimation(now) {\n this.msSinceRequest = now;\n requestAnimationFrame(this.animate);\n }\n handleSide(edge, seconds) {\n let { scrollCache } = edge;\n let { edgeThreshold } = this;\n let invDistance = edgeThreshold - edge.distance;\n let velocity = // the closer to the edge, the faster we scroll\n ((invDistance * invDistance) / (edgeThreshold * edgeThreshold)) * // quadratic\n this.maxVelocity * seconds;\n let sign = 1;\n switch (edge.name) {\n case 'left':\n sign = -1;\n // falls through\n case 'right':\n scrollCache.setScrollLeft(scrollCache.getScrollLeft() + velocity * sign);\n break;\n case 'top':\n sign = -1;\n // falls through\n case 'bottom':\n scrollCache.setScrollTop(scrollCache.getScrollTop() + velocity * sign);\n break;\n }\n }\n // left/top are relative to document topleft\n computeBestEdge(left, top) {\n let { edgeThreshold } = this;\n let bestSide = null;\n let scrollCaches = this.scrollCaches || [];\n for (let scrollCache of scrollCaches) {\n let rect = scrollCache.clientRect;\n let leftDist = left - rect.left;\n let rightDist = rect.right - left;\n let topDist = top - rect.top;\n let bottomDist = rect.bottom - top;\n // completely within the rect?\n if (leftDist >= 0 && rightDist >= 0 && topDist >= 0 && bottomDist >= 0) {\n if (topDist <= edgeThreshold && this.everMovedUp && scrollCache.canScrollUp() &&\n (!bestSide || bestSide.distance > topDist)) {\n bestSide = { scrollCache, name: 'top', distance: topDist };\n }\n if (bottomDist <= edgeThreshold && this.everMovedDown && scrollCache.canScrollDown() &&\n (!bestSide || bestSide.distance > bottomDist)) {\n bestSide = { scrollCache, name: 'bottom', distance: bottomDist };\n }\n if (leftDist <= edgeThreshold && this.everMovedLeft && scrollCache.canScrollLeft() &&\n (!bestSide || bestSide.distance > leftDist)) {\n bestSide = { scrollCache, name: 'left', distance: leftDist };\n }\n if (rightDist <= edgeThreshold && this.everMovedRight && scrollCache.canScrollRight() &&\n (!bestSide || bestSide.distance > rightDist)) {\n bestSide = { scrollCache, name: 'right', distance: rightDist };\n }\n }\n }\n return bestSide;\n }\n buildCaches(scrollStartEl) {\n return this.queryScrollEls(scrollStartEl).map((el) => {\n if (el === window) {\n return new WindowScrollGeomCache(false); // false = don't listen to user-generated scrolls\n }\n return new ElementScrollGeomCache(el, false); // false = don't listen to user-generated scrolls\n });\n }\n queryScrollEls(scrollStartEl) {\n let els = [];\n for (let query of this.scrollQuery) {\n if (typeof query === 'object') {\n els.push(query);\n }\n else {\n els.push(...Array.prototype.slice.call(scrollStartEl.getRootNode().querySelectorAll(query)));\n }\n }\n return els;\n }\n}\n\n/*\nMonitors dragging on an element. Has a number of high-level features:\n- minimum distance required before dragging\n- minimum wait time (\"delay\") before dragging\n- a mirror element that follows the pointer\n*/\nclass FeaturefulElementDragging extends ElementDragging {\n constructor(containerEl, selector) {\n super(containerEl);\n this.containerEl = containerEl;\n // options that can be directly set by caller\n // the caller can also set the PointerDragging's options as well\n this.delay = null;\n this.minDistance = 0;\n this.touchScrollAllowed = true; // prevents drag from starting and blocks scrolling during drag\n this.mirrorNeedsRevert = false;\n this.isInteracting = false; // is the user validly moving the pointer? lasts until pointerup\n this.isDragging = false; // is it INTENTFULLY dragging? lasts until after revert animation\n this.isDelayEnded = false;\n this.isDistanceSurpassed = false;\n this.delayTimeoutId = null;\n this.onPointerDown = (ev) => {\n if (!this.isDragging) { // so new drag doesn't happen while revert animation is going\n this.isInteracting = true;\n this.isDelayEnded = false;\n this.isDistanceSurpassed = false;\n preventSelection(document.body);\n preventContextMenu(document.body);\n // prevent links from being visited if there's an eventual drag.\n // also prevents selection in older browsers (maybe?).\n // not necessary for touch, besides, browser would complain about passiveness.\n if (!ev.isTouch) {\n ev.origEvent.preventDefault();\n }\n this.emitter.trigger('pointerdown', ev);\n if (this.isInteracting && // not destroyed via pointerdown handler\n !this.pointer.shouldIgnoreMove) {\n // actions related to initiating dragstart+dragmove+dragend...\n this.mirror.setIsVisible(false); // reset. caller must set-visible\n this.mirror.start(ev.subjectEl, ev.pageX, ev.pageY); // must happen on first pointer down\n this.startDelay(ev);\n if (!this.minDistance) {\n this.handleDistanceSurpassed(ev);\n }\n }\n }\n };\n this.onPointerMove = (ev) => {\n if (this.isInteracting) {\n this.emitter.trigger('pointermove', ev);\n if (!this.isDistanceSurpassed) {\n let minDistance = this.minDistance;\n let distanceSq; // current distance from the origin, squared\n let { deltaX, deltaY } = ev;\n distanceSq = deltaX * deltaX + deltaY * deltaY;\n if (distanceSq >= minDistance * minDistance) { // use pythagorean theorem\n this.handleDistanceSurpassed(ev);\n }\n }\n if (this.isDragging) {\n // a real pointer move? (not one simulated by scrolling)\n if (ev.origEvent.type !== 'scroll') {\n this.mirror.handleMove(ev.pageX, ev.pageY);\n this.autoScroller.handleMove(ev.pageX, ev.pageY);\n }\n this.emitter.trigger('dragmove', ev);\n }\n }\n };\n this.onPointerUp = (ev) => {\n if (this.isInteracting) {\n this.isInteracting = false;\n allowSelection(document.body);\n allowContextMenu(document.body);\n this.emitter.trigger('pointerup', ev); // can potentially set mirrorNeedsRevert\n if (this.isDragging) {\n this.autoScroller.stop();\n this.tryStopDrag(ev); // which will stop the mirror\n }\n if (this.delayTimeoutId) {\n clearTimeout(this.delayTimeoutId);\n this.delayTimeoutId = null;\n }\n }\n };\n let pointer = this.pointer = new PointerDragging(containerEl);\n pointer.emitter.on('pointerdown', this.onPointerDown);\n pointer.emitter.on('pointermove', this.onPointerMove);\n pointer.emitter.on('pointerup', this.onPointerUp);\n if (selector) {\n pointer.selector = selector;\n }\n this.mirror = new ElementMirror();\n this.autoScroller = new AutoScroller();\n }\n destroy() {\n this.pointer.destroy();\n // HACK: simulate a pointer-up to end the current drag\n // TODO: fire 'dragend' directly and stop interaction. discourage use of pointerup event (b/c might not fire)\n this.onPointerUp({});\n }\n startDelay(ev) {\n if (typeof this.delay === 'number') {\n this.delayTimeoutId = setTimeout(() => {\n this.delayTimeoutId = null;\n this.handleDelayEnd(ev);\n }, this.delay); // not assignable to number!\n }\n else {\n this.handleDelayEnd(ev);\n }\n }\n handleDelayEnd(ev) {\n this.isDelayEnded = true;\n this.tryStartDrag(ev);\n }\n handleDistanceSurpassed(ev) {\n this.isDistanceSurpassed = true;\n this.tryStartDrag(ev);\n }\n tryStartDrag(ev) {\n if (this.isDelayEnded && this.isDistanceSurpassed) {\n if (!this.pointer.wasTouchScroll || this.touchScrollAllowed) {\n this.isDragging = true;\n this.mirrorNeedsRevert = false;\n this.autoScroller.start(ev.pageX, ev.pageY, this.containerEl);\n this.emitter.trigger('dragstart', ev);\n if (this.touchScrollAllowed === false) {\n this.pointer.cancelTouchScroll();\n }\n }\n }\n }\n tryStopDrag(ev) {\n // .stop() is ALWAYS asynchronous, which we NEED because we want all pointerup events\n // that come from the document to fire beforehand. much more convenient this way.\n this.mirror.stop(this.mirrorNeedsRevert, this.stopDrag.bind(this, ev));\n }\n stopDrag(ev) {\n this.isDragging = false;\n this.emitter.trigger('dragend', ev);\n }\n // fill in the implementations...\n setIgnoreMove(bool) {\n this.pointer.shouldIgnoreMove = bool;\n }\n setMirrorIsVisible(bool) {\n this.mirror.setIsVisible(bool);\n }\n setMirrorNeedsRevert(bool) {\n this.mirrorNeedsRevert = bool;\n }\n setAutoScrollEnabled(bool) {\n this.autoScroller.isEnabled = bool;\n }\n}\n\n/*\nWhen this class is instantiated, it records the offset of an element (relative to the document topleft),\nand continues to monitor scrolling, updating the cached coordinates if it needs to.\nDoes not access the DOM after instantiation, so highly performant.\n\nAlso keeps track of all scrolling/overflow:hidden containers that are parents of the given element\nand an determine if a given point is inside the combined clipping rectangle.\n*/\nclass OffsetTracker {\n constructor(el) {\n this.origRect = computeRect(el);\n // will work fine for divs that have overflow:hidden\n this.scrollCaches = getClippingParents(el).map((scrollEl) => new ElementScrollGeomCache(scrollEl, true));\n }\n destroy() {\n for (let scrollCache of this.scrollCaches) {\n scrollCache.destroy();\n }\n }\n computeLeft() {\n let left = this.origRect.left;\n for (let scrollCache of this.scrollCaches) {\n left += scrollCache.origScrollLeft - scrollCache.getScrollLeft();\n }\n return left;\n }\n computeTop() {\n let top = this.origRect.top;\n for (let scrollCache of this.scrollCaches) {\n top += scrollCache.origScrollTop - scrollCache.getScrollTop();\n }\n return top;\n }\n isWithinClipping(pageX, pageY) {\n let point = { left: pageX, top: pageY };\n for (let scrollCache of this.scrollCaches) {\n if (!isIgnoredClipping(scrollCache.getEventTarget()) &&\n !pointInsideRect(point, scrollCache.clientRect)) {\n return false;\n }\n }\n return true;\n }\n}\n// certain clipping containers should never constrain interactions, like <html> and <body>\n// https://github.com/fullcalendar/fullcalendar/issues/3615\nfunction isIgnoredClipping(node) {\n let tagName = node.tagName;\n return tagName === 'HTML' || tagName === 'BODY';\n}\n\n/*\nTracks movement over multiple droppable areas (aka \"hits\")\nthat exist in one or more DateComponents.\nRelies on an existing draggable.\n\nemits:\n- pointerdown\n- dragstart\n- hitchange - fires initially, even if not over a hit\n- pointerup\n- (hitchange - again, to null, if ended over a hit)\n- dragend\n*/\nclass HitDragging {\n constructor(dragging, droppableStore) {\n // options that can be set by caller\n this.useSubjectCenter = false;\n this.requireInitial = true; // if doesn't start out on a hit, won't emit any events\n this.initialHit = null;\n this.movingHit = null;\n this.finalHit = null; // won't ever be populated if shouldIgnoreMove\n this.handlePointerDown = (ev) => {\n let { dragging } = this;\n this.initialHit = null;\n this.movingHit = null;\n this.finalHit = null;\n this.prepareHits();\n this.processFirstCoord(ev);\n if (this.initialHit || !this.requireInitial) {\n dragging.setIgnoreMove(false);\n // TODO: fire this before computing processFirstCoord, so listeners can cancel. this gets fired by almost every handler :(\n this.emitter.trigger('pointerdown', ev);\n }\n else {\n dragging.setIgnoreMove(true);\n }\n };\n this.handleDragStart = (ev) => {\n this.emitter.trigger('dragstart', ev);\n this.handleMove(ev, true); // force = fire even if initially null\n };\n this.handleDragMove = (ev) => {\n this.emitter.trigger('dragmove', ev);\n this.handleMove(ev);\n };\n this.handlePointerUp = (ev) => {\n this.releaseHits();\n this.emitter.trigger('pointerup', ev);\n };\n this.handleDragEnd = (ev) => {\n if (this.movingHit) {\n this.emitter.trigger('hitupdate', null, true, ev);\n }\n this.finalHit = this.movingHit;\n this.movingHit = null;\n this.emitter.trigger('dragend', ev);\n };\n this.droppableStore = droppableStore;\n dragging.emitter.on('pointerdown', this.handlePointerDown);\n dragging.emitter.on('dragstart', this.handleDragStart);\n dragging.emitter.on('dragmove', this.handleDragMove);\n dragging.emitter.on('pointerup', this.handlePointerUp);\n dragging.emitter.on('dragend', this.handleDragEnd);\n this.dragging = dragging;\n this.emitter = new Emitter();\n }\n // sets initialHit\n // sets coordAdjust\n processFirstCoord(ev) {\n let origPoint = { left: ev.pageX, top: ev.pageY };\n let adjustedPoint = origPoint;\n let subjectEl = ev.subjectEl;\n let subjectRect;\n if (subjectEl instanceof HTMLElement) { // i.e. not a Document/ShadowRoot\n subjectRect = computeRect(subjectEl);\n adjustedPoint = constrainPoint(adjustedPoint, subjectRect);\n }\n let initialHit = this.initialHit = this.queryHitForOffset(adjustedPoint.left, adjustedPoint.top);\n if (initialHit) {\n if (this.useSubjectCenter && subjectRect) {\n let slicedSubjectRect = intersectRects(subjectRect, initialHit.rect);\n if (slicedSubjectRect) {\n adjustedPoint = getRectCenter(slicedSubjectRect);\n }\n }\n this.coordAdjust = diffPoints(adjustedPoint, origPoint);\n }\n else {\n this.coordAdjust = { left: 0, top: 0 };\n }\n }\n handleMove(ev, forceHandle) {\n let hit = this.queryHitForOffset(ev.pageX + this.coordAdjust.left, ev.pageY + this.coordAdjust.top);\n if (forceHandle || !isHitsEqual(this.movingHit, hit)) {\n this.movingHit = hit;\n this.emitter.trigger('hitupdate', hit, false, ev);\n }\n }\n prepareHits() {\n this.offsetTrackers = mapHash(this.droppableStore, (interactionSettings) => {\n interactionSettings.component.prepareHits();\n return new OffsetTracker(interactionSettings.el);\n });\n }\n releaseHits() {\n let { offsetTrackers } = this;\n for (let id in offsetTrackers) {\n offsetTrackers[id].destroy();\n }\n this.offsetTrackers = {};\n }\n queryHitForOffset(offsetLeft, offsetTop) {\n let { droppableStore, offsetTrackers } = this;\n let bestHit = null;\n for (let id in droppableStore) {\n let component = droppableStore[id].component;\n let offsetTracker = offsetTrackers[id];\n if (offsetTracker && // wasn't destroyed mid-drag\n offsetTracker.isWithinClipping(offsetLeft, offsetTop)) {\n let originLeft = offsetTracker.computeLeft();\n let originTop = offsetTracker.computeTop();\n let positionLeft = offsetLeft - originLeft;\n let positionTop = offsetTop - originTop;\n let { origRect } = offsetTracker;\n let width = origRect.right - origRect.left;\n let height = origRect.bottom - origRect.top;\n if (\n // must be within the element's bounds\n positionLeft >= 0 && positionLeft < width &&\n positionTop >= 0 && positionTop < height) {\n let hit = component.queryHit(positionLeft, positionTop, width, height);\n if (hit && (\n // make sure the hit is within activeRange, meaning it's not a dead cell\n rangeContainsRange(hit.dateProfile.activeRange, hit.dateSpan.range)) &&\n (!bestHit || hit.layer > bestHit.layer)) {\n hit.componentId = id;\n hit.context = component.context;\n // TODO: better way to re-orient rectangle\n hit.rect.left += originLeft;\n hit.rect.right += originLeft;\n hit.rect.top += originTop;\n hit.rect.bottom += originTop;\n bestHit = hit;\n }\n }\n }\n }\n return bestHit;\n }\n}\nfunction isHitsEqual(hit0, hit1) {\n if (!hit0 && !hit1) {\n return true;\n }\n if (Boolean(hit0) !== Boolean(hit1)) {\n return false;\n }\n return isDateSpansEqual(hit0.dateSpan, hit1.dateSpan);\n}\n\nfunction buildDatePointApiWithContext(dateSpan, context) {\n let props = {};\n for (let transform of context.pluginHooks.datePointTransforms) {\n Object.assign(props, transform(dateSpan, context));\n }\n Object.assign(props, buildDatePointApi(dateSpan, context.dateEnv));\n return props;\n}\nfunction buildDatePointApi(span, dateEnv) {\n return {\n date: dateEnv.toDate(span.range.start),\n dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }),\n allDay: span.allDay,\n };\n}\n\n/*\nMonitors when the user clicks on a specific date/time of a component.\nA pointerdown+pointerup on the same \"hit\" constitutes a click.\n*/\nclass DateClicking extends Interaction {\n constructor(settings) {\n super(settings);\n this.handlePointerDown = (pev) => {\n let { dragging } = this;\n let downEl = pev.origEvent.target;\n // do this in pointerdown (not dragend) because DOM might be mutated by the time dragend is fired\n dragging.setIgnoreMove(!this.component.isValidDateDownEl(downEl));\n };\n // won't even fire if moving was ignored\n this.handleDragEnd = (ev) => {\n let { component } = this;\n let { pointer } = this.dragging;\n if (!pointer.wasTouchScroll) {\n let { initialHit, finalHit } = this.hitDragging;\n if (initialHit && finalHit && isHitsEqual(initialHit, finalHit)) {\n let { context } = component;\n let arg = Object.assign(Object.assign({}, buildDatePointApiWithContext(initialHit.dateSpan, context)), { dayEl: initialHit.dayEl, jsEvent: ev.origEvent, view: context.viewApi || context.calendarApi.view });\n context.emitter.trigger('dateClick', arg);\n }\n }\n };\n // we DO want to watch pointer moves because otherwise finalHit won't get populated\n this.dragging = new FeaturefulElementDragging(settings.el);\n this.dragging.autoScroller.isEnabled = false;\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsToStore(settings));\n hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n hitDragging.emitter.on('dragend', this.handleDragEnd);\n }\n destroy() {\n this.dragging.destroy();\n }\n}\n\n/*\nTracks when the user selects a portion of time of a component,\nconstituted by a drag over date cells, with a possible delay at the beginning of the drag.\n*/\nclass DateSelecting extends Interaction {\n constructor(settings) {\n super(settings);\n this.dragSelection = null;\n this.handlePointerDown = (ev) => {\n let { component, dragging } = this;\n let { options } = component.context;\n let canSelect = options.selectable &&\n component.isValidDateDownEl(ev.origEvent.target);\n // don't bother to watch expensive moves if component won't do selection\n dragging.setIgnoreMove(!canSelect);\n // if touch, require user to hold down\n dragging.delay = ev.isTouch ? getComponentTouchDelay$1(component) : null;\n };\n this.handleDragStart = (ev) => {\n this.component.context.calendarApi.unselect(ev); // unselect previous selections\n };\n this.handleHitUpdate = (hit, isFinal) => {\n let { context } = this.component;\n let dragSelection = null;\n let isInvalid = false;\n if (hit) {\n let initialHit = this.hitDragging.initialHit;\n let disallowed = hit.componentId === initialHit.componentId\n && this.isHitComboAllowed\n && !this.isHitComboAllowed(initialHit, hit);\n if (!disallowed) {\n dragSelection = joinHitsIntoSelection(initialHit, hit, context.pluginHooks.dateSelectionTransformers);\n }\n if (!dragSelection || !isDateSelectionValid(dragSelection, hit.dateProfile, context)) {\n isInvalid = true;\n dragSelection = null;\n }\n }\n if (dragSelection) {\n context.dispatch({ type: 'SELECT_DATES', selection: dragSelection });\n }\n else if (!isFinal) { // only unselect if moved away while dragging\n context.dispatch({ type: 'UNSELECT_DATES' });\n }\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n this.dragSelection = dragSelection; // only clear if moved away from all hits while dragging\n }\n };\n this.handlePointerUp = (pev) => {\n if (this.dragSelection) {\n // selection is already rendered, so just need to report selection\n triggerDateSelect(this.dragSelection, pev, this.component.context);\n this.dragSelection = null;\n }\n };\n let { component } = settings;\n let { options } = component.context;\n let dragging = this.dragging = new FeaturefulElementDragging(settings.el);\n dragging.touchScrollAllowed = false;\n dragging.minDistance = options.selectMinDistance || 0;\n dragging.autoScroller.isEnabled = options.dragScroll;\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsToStore(settings));\n hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n hitDragging.emitter.on('dragstart', this.handleDragStart);\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n hitDragging.emitter.on('pointerup', this.handlePointerUp);\n }\n destroy() {\n this.dragging.destroy();\n }\n}\nfunction getComponentTouchDelay$1(component) {\n let { options } = component.context;\n let delay = options.selectLongPressDelay;\n if (delay == null) {\n delay = options.longPressDelay;\n }\n return delay;\n}\nfunction joinHitsIntoSelection(hit0, hit1, dateSelectionTransformers) {\n let dateSpan0 = hit0.dateSpan;\n let dateSpan1 = hit1.dateSpan;\n let ms = [\n dateSpan0.range.start,\n dateSpan0.range.end,\n dateSpan1.range.start,\n dateSpan1.range.end,\n ];\n ms.sort(compareNumbers);\n let props = {};\n for (let transformer of dateSelectionTransformers) {\n let res = transformer(hit0, hit1);\n if (res === false) {\n return null;\n }\n if (res) {\n Object.assign(props, res);\n }\n }\n props.range = { start: ms[0], end: ms[3] };\n props.allDay = dateSpan0.allDay;\n return props;\n}\n\nclass EventDragging extends Interaction {\n constructor(settings) {\n super(settings);\n // internal state\n this.subjectEl = null;\n this.subjectSeg = null; // the seg being selected/dragged\n this.isDragging = false;\n this.eventRange = null;\n this.relevantEvents = null; // the events being dragged\n this.receivingContext = null;\n this.validMutation = null;\n this.mutatedRelevantEvents = null;\n this.handlePointerDown = (ev) => {\n let origTarget = ev.origEvent.target;\n let { component, dragging } = this;\n let { mirror } = dragging;\n let { options } = component.context;\n let initialContext = component.context;\n this.subjectEl = ev.subjectEl;\n let subjectSeg = this.subjectSeg = getElSeg(ev.subjectEl);\n let eventRange = this.eventRange = subjectSeg.eventRange;\n let eventInstanceId = eventRange.instance.instanceId;\n this.relevantEvents = getRelevantEvents(initialContext.getCurrentData().eventStore, eventInstanceId);\n dragging.minDistance = ev.isTouch ? 0 : options.eventDragMinDistance;\n dragging.delay =\n // only do a touch delay if touch and this event hasn't been selected yet\n (ev.isTouch && eventInstanceId !== component.props.eventSelection) ?\n getComponentTouchDelay(component) :\n null;\n if (options.fixedMirrorParent) {\n mirror.parentNode = options.fixedMirrorParent;\n }\n else {\n mirror.parentNode = elementClosest(origTarget, '.fc');\n }\n mirror.revertDuration = options.dragRevertDuration;\n let isValid = component.isValidSegDownEl(origTarget) &&\n !elementClosest(origTarget, '.fc-event-resizer'); // NOT on a resizer\n dragging.setIgnoreMove(!isValid);\n // disable dragging for elements that are resizable (ie, selectable)\n // but are not draggable\n this.isDragging = isValid &&\n ev.subjectEl.classList.contains('fc-event-draggable');\n };\n this.handleDragStart = (ev) => {\n let initialContext = this.component.context;\n let eventRange = this.eventRange;\n let eventInstanceId = eventRange.instance.instanceId;\n if (ev.isTouch) {\n // need to select a different event?\n if (eventInstanceId !== this.component.props.eventSelection) {\n initialContext.dispatch({ type: 'SELECT_EVENT', eventInstanceId });\n }\n }\n else {\n // if now using mouse, but was previous touch interaction, clear selected event\n initialContext.dispatch({ type: 'UNSELECT_EVENT' });\n }\n if (this.isDragging) {\n initialContext.calendarApi.unselect(ev); // unselect *date* selection\n initialContext.emitter.trigger('eventDragStart', {\n el: this.subjectEl,\n event: new EventImpl(initialContext, eventRange.def, eventRange.instance),\n jsEvent: ev.origEvent,\n view: initialContext.viewApi,\n });\n }\n };\n this.handleHitUpdate = (hit, isFinal) => {\n if (!this.isDragging) {\n return;\n }\n let relevantEvents = this.relevantEvents;\n let initialHit = this.hitDragging.initialHit;\n let initialContext = this.component.context;\n // states based on new hit\n let receivingContext = null;\n let mutation = null;\n let mutatedRelevantEvents = null;\n let isInvalid = false;\n let interaction = {\n affectedEvents: relevantEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n };\n if (hit) {\n receivingContext = hit.context;\n let receivingOptions = receivingContext.options;\n if (initialContext === receivingContext ||\n (receivingOptions.editable && receivingOptions.droppable)) {\n mutation = computeEventMutation(initialHit, hit, receivingContext.getCurrentData().pluginHooks.eventDragMutationMassagers);\n if (mutation) {\n mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, receivingContext.getCurrentData().eventUiBases, mutation, receivingContext);\n interaction.mutatedEvents = mutatedRelevantEvents;\n if (!isInteractionValid(interaction, hit.dateProfile, receivingContext)) {\n isInvalid = true;\n mutation = null;\n mutatedRelevantEvents = null;\n interaction.mutatedEvents = createEmptyEventStore();\n }\n }\n }\n else {\n receivingContext = null;\n }\n }\n this.displayDrag(receivingContext, interaction);\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n if (initialContext === receivingContext && // TODO: write test for this\n isHitsEqual(initialHit, hit)) {\n mutation = null;\n }\n this.dragging.setMirrorNeedsRevert(!mutation);\n // render the mirror if no already-rendered mirror\n // TODO: wish we could somehow wait for dispatch to guarantee render\n this.dragging.setMirrorIsVisible(!hit || !this.subjectEl.getRootNode().querySelector('.fc-event-mirror'));\n // assign states based on new hit\n this.receivingContext = receivingContext;\n this.validMutation = mutation;\n this.mutatedRelevantEvents = mutatedRelevantEvents;\n }\n };\n this.handlePointerUp = () => {\n if (!this.isDragging) {\n this.cleanup(); // because handleDragEnd won't fire\n }\n };\n this.handleDragEnd = (ev) => {\n if (this.isDragging) {\n let initialContext = this.component.context;\n let initialView = initialContext.viewApi;\n let { receivingContext, validMutation } = this;\n let eventDef = this.eventRange.def;\n let eventInstance = this.eventRange.instance;\n let eventApi = new EventImpl(initialContext, eventDef, eventInstance);\n let relevantEvents = this.relevantEvents;\n let mutatedRelevantEvents = this.mutatedRelevantEvents;\n let { finalHit } = this.hitDragging;\n this.clearDrag(); // must happen after revert animation\n initialContext.emitter.trigger('eventDragStop', {\n el: this.subjectEl,\n event: eventApi,\n jsEvent: ev.origEvent,\n view: initialView,\n });\n if (validMutation) {\n // dropped within same calendar\n if (receivingContext === initialContext) {\n let updatedEventApi = new EventImpl(initialContext, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null);\n initialContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents,\n });\n let eventChangeArg = {\n oldEvent: eventApi,\n event: updatedEventApi,\n relatedEvents: buildEventApis(mutatedRelevantEvents, initialContext, eventInstance),\n revert() {\n initialContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents, // the pre-change data\n });\n },\n };\n let transformed = {};\n for (let transformer of initialContext.getCurrentData().pluginHooks.eventDropTransformers) {\n Object.assign(transformed, transformer(validMutation, initialContext));\n }\n initialContext.emitter.trigger('eventDrop', Object.assign(Object.assign(Object.assign({}, eventChangeArg), transformed), { el: ev.subjectEl, delta: validMutation.datesDelta, jsEvent: ev.origEvent, view: initialView }));\n initialContext.emitter.trigger('eventChange', eventChangeArg);\n // dropped in different calendar\n }\n else if (receivingContext) {\n let eventRemoveArg = {\n event: eventApi,\n relatedEvents: buildEventApis(relevantEvents, initialContext, eventInstance),\n revert() {\n initialContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents,\n });\n },\n };\n initialContext.emitter.trigger('eventLeave', Object.assign(Object.assign({}, eventRemoveArg), { draggedEl: ev.subjectEl, view: initialView }));\n initialContext.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: relevantEvents,\n });\n initialContext.emitter.trigger('eventRemove', eventRemoveArg);\n let addedEventDef = mutatedRelevantEvents.defs[eventDef.defId];\n let addedEventInstance = mutatedRelevantEvents.instances[eventInstance.instanceId];\n let addedEventApi = new EventImpl(receivingContext, addedEventDef, addedEventInstance);\n receivingContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents,\n });\n let eventAddArg = {\n event: addedEventApi,\n relatedEvents: buildEventApis(mutatedRelevantEvents, receivingContext, addedEventInstance),\n revert() {\n receivingContext.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: mutatedRelevantEvents,\n });\n },\n };\n receivingContext.emitter.trigger('eventAdd', eventAddArg);\n if (ev.isTouch) {\n receivingContext.dispatch({\n type: 'SELECT_EVENT',\n eventInstanceId: eventInstance.instanceId,\n });\n }\n receivingContext.emitter.trigger('drop', Object.assign(Object.assign({}, buildDatePointApiWithContext(finalHit.dateSpan, receivingContext)), { draggedEl: ev.subjectEl, jsEvent: ev.origEvent, view: finalHit.context.viewApi }));\n receivingContext.emitter.trigger('eventReceive', Object.assign(Object.assign({}, eventAddArg), { draggedEl: ev.subjectEl, view: finalHit.context.viewApi }));\n }\n }\n else {\n initialContext.emitter.trigger('_noEventDrop');\n }\n }\n this.cleanup();\n };\n let { component } = this;\n let { options } = component.context;\n let dragging = this.dragging = new FeaturefulElementDragging(settings.el);\n dragging.pointer.selector = EventDragging.SELECTOR;\n dragging.touchScrollAllowed = false;\n dragging.autoScroller.isEnabled = options.dragScroll;\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsStore);\n hitDragging.useSubjectCenter = settings.useEventCenter;\n hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n hitDragging.emitter.on('dragstart', this.handleDragStart);\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n hitDragging.emitter.on('pointerup', this.handlePointerUp);\n hitDragging.emitter.on('dragend', this.handleDragEnd);\n }\n destroy() {\n this.dragging.destroy();\n }\n // render a drag state on the next receivingCalendar\n displayDrag(nextContext, state) {\n let initialContext = this.component.context;\n let prevContext = this.receivingContext;\n // does the previous calendar need to be cleared?\n if (prevContext && prevContext !== nextContext) {\n // does the initial calendar need to be cleared?\n // if so, don't clear all the way. we still need to to hide the affectedEvents\n if (prevContext === initialContext) {\n prevContext.dispatch({\n type: 'SET_EVENT_DRAG',\n state: {\n affectedEvents: state.affectedEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n },\n });\n // completely clear the old calendar if it wasn't the initial\n }\n else {\n prevContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n }\n if (nextContext) {\n nextContext.dispatch({ type: 'SET_EVENT_DRAG', state });\n }\n }\n clearDrag() {\n let initialCalendar = this.component.context;\n let { receivingContext } = this;\n if (receivingContext) {\n receivingContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n // the initial calendar might have an dummy drag state from displayDrag\n if (initialCalendar !== receivingContext) {\n initialCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n }\n cleanup() {\n this.subjectSeg = null;\n this.isDragging = false;\n this.eventRange = null;\n this.relevantEvents = null;\n this.receivingContext = null;\n this.validMutation = null;\n this.mutatedRelevantEvents = null;\n }\n}\n// TODO: test this in IE11\n// QUESTION: why do we need it on the resizable???\nEventDragging.SELECTOR = '.fc-event-draggable, .fc-event-resizable';\nfunction computeEventMutation(hit0, hit1, massagers) {\n let dateSpan0 = hit0.dateSpan;\n let dateSpan1 = hit1.dateSpan;\n let date0 = dateSpan0.range.start;\n let date1 = dateSpan1.range.start;\n let standardProps = {};\n if (dateSpan0.allDay !== dateSpan1.allDay) {\n standardProps.allDay = dateSpan1.allDay;\n standardProps.hasEnd = hit1.context.options.allDayMaintainDuration;\n if (dateSpan1.allDay) {\n // means date1 is already start-of-day,\n // but date0 needs to be converted\n date0 = startOfDay(date0);\n }\n }\n let delta = diffDates(date0, date1, hit0.context.dateEnv, hit0.componentId === hit1.componentId ?\n hit0.largeUnit :\n null);\n if (delta.milliseconds) { // has hours/minutes/seconds\n standardProps.allDay = false;\n }\n let mutation = {\n datesDelta: delta,\n standardProps,\n };\n for (let massager of massagers) {\n massager(mutation, hit0, hit1);\n }\n return mutation;\n}\nfunction getComponentTouchDelay(component) {\n let { options } = component.context;\n let delay = options.eventLongPressDelay;\n if (delay == null) {\n delay = options.longPressDelay;\n }\n return delay;\n}\n\nclass EventResizing extends Interaction {\n constructor(settings) {\n super(settings);\n // internal state\n this.draggingSegEl = null;\n this.draggingSeg = null; // TODO: rename to resizingSeg? subjectSeg?\n this.eventRange = null;\n this.relevantEvents = null;\n this.validMutation = null;\n this.mutatedRelevantEvents = null;\n this.handlePointerDown = (ev) => {\n let { component } = this;\n let segEl = this.querySegEl(ev);\n let seg = getElSeg(segEl);\n let eventRange = this.eventRange = seg.eventRange;\n this.dragging.minDistance = component.context.options.eventDragMinDistance;\n // if touch, need to be working with a selected event\n this.dragging.setIgnoreMove(!this.component.isValidSegDownEl(ev.origEvent.target) ||\n (ev.isTouch && this.component.props.eventSelection !== eventRange.instance.instanceId));\n };\n this.handleDragStart = (ev) => {\n let { context } = this.component;\n let eventRange = this.eventRange;\n this.relevantEvents = getRelevantEvents(context.getCurrentData().eventStore, this.eventRange.instance.instanceId);\n let segEl = this.querySegEl(ev);\n this.draggingSegEl = segEl;\n this.draggingSeg = getElSeg(segEl);\n context.calendarApi.unselect();\n context.emitter.trigger('eventResizeStart', {\n el: segEl,\n event: new EventImpl(context, eventRange.def, eventRange.instance),\n jsEvent: ev.origEvent,\n view: context.viewApi,\n });\n };\n this.handleHitUpdate = (hit, isFinal, ev) => {\n let { context } = this.component;\n let relevantEvents = this.relevantEvents;\n let initialHit = this.hitDragging.initialHit;\n let eventInstance = this.eventRange.instance;\n let mutation = null;\n let mutatedRelevantEvents = null;\n let isInvalid = false;\n let interaction = {\n affectedEvents: relevantEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n };\n if (hit) {\n let disallowed = hit.componentId === initialHit.componentId\n && this.isHitComboAllowed\n && !this.isHitComboAllowed(initialHit, hit);\n if (!disallowed) {\n mutation = computeMutation(initialHit, hit, ev.subjectEl.classList.contains('fc-event-resizer-start'), eventInstance.range);\n }\n }\n if (mutation) {\n mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, context.getCurrentData().eventUiBases, mutation, context);\n interaction.mutatedEvents = mutatedRelevantEvents;\n if (!isInteractionValid(interaction, hit.dateProfile, context)) {\n isInvalid = true;\n mutation = null;\n mutatedRelevantEvents = null;\n interaction.mutatedEvents = null;\n }\n }\n if (mutatedRelevantEvents) {\n context.dispatch({\n type: 'SET_EVENT_RESIZE',\n state: interaction,\n });\n }\n else {\n context.dispatch({ type: 'UNSET_EVENT_RESIZE' });\n }\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n if (mutation && isHitsEqual(initialHit, hit)) {\n mutation = null;\n }\n this.validMutation = mutation;\n this.mutatedRelevantEvents = mutatedRelevantEvents;\n }\n };\n this.handleDragEnd = (ev) => {\n let { context } = this.component;\n let eventDef = this.eventRange.def;\n let eventInstance = this.eventRange.instance;\n let eventApi = new EventImpl(context, eventDef, eventInstance);\n let relevantEvents = this.relevantEvents;\n let mutatedRelevantEvents = this.mutatedRelevantEvents;\n context.emitter.trigger('eventResizeStop', {\n el: this.draggingSegEl,\n event: eventApi,\n jsEvent: ev.origEvent,\n view: context.viewApi,\n });\n if (this.validMutation) {\n let updatedEventApi = new EventImpl(context, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null);\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents,\n });\n let eventChangeArg = {\n oldEvent: eventApi,\n event: updatedEventApi,\n relatedEvents: buildEventApis(mutatedRelevantEvents, context, eventInstance),\n revert() {\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents, // the pre-change events\n });\n },\n };\n context.emitter.trigger('eventResize', Object.assign(Object.assign({}, eventChangeArg), { el: this.draggingSegEl, startDelta: this.validMutation.startDelta || createDuration(0), endDelta: this.validMutation.endDelta || createDuration(0), jsEvent: ev.origEvent, view: context.viewApi }));\n context.emitter.trigger('eventChange', eventChangeArg);\n }\n else {\n context.emitter.trigger('_noEventResize');\n }\n // reset all internal state\n this.draggingSeg = null;\n this.relevantEvents = null;\n this.validMutation = null;\n // okay to keep eventInstance around. useful to set it in handlePointerDown\n };\n let { component } = settings;\n let dragging = this.dragging = new FeaturefulElementDragging(settings.el);\n dragging.pointer.selector = '.fc-event-resizer';\n dragging.touchScrollAllowed = false;\n dragging.autoScroller.isEnabled = component.context.options.dragScroll;\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsToStore(settings));\n hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n hitDragging.emitter.on('dragstart', this.handleDragStart);\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n hitDragging.emitter.on('dragend', this.handleDragEnd);\n }\n destroy() {\n this.dragging.destroy();\n }\n querySegEl(ev) {\n return elementClosest(ev.subjectEl, '.fc-event');\n }\n}\nfunction computeMutation(hit0, hit1, isFromStart, instanceRange) {\n let dateEnv = hit0.context.dateEnv;\n let date0 = hit0.dateSpan.range.start;\n let date1 = hit1.dateSpan.range.start;\n let delta = diffDates(date0, date1, dateEnv, hit0.largeUnit);\n if (isFromStart) {\n if (dateEnv.add(instanceRange.start, delta) < instanceRange.end) {\n return { startDelta: delta };\n }\n }\n else if (dateEnv.add(instanceRange.end, delta) > instanceRange.start) {\n return { endDelta: delta };\n }\n return null;\n}\n\nclass UnselectAuto {\n constructor(context) {\n this.context = context;\n this.isRecentPointerDateSelect = false; // wish we could use a selector to detect date selection, but uses hit system\n this.matchesCancel = false;\n this.matchesEvent = false;\n this.onSelect = (selectInfo) => {\n if (selectInfo.jsEvent) {\n this.isRecentPointerDateSelect = true;\n }\n };\n this.onDocumentPointerDown = (pev) => {\n let unselectCancel = this.context.options.unselectCancel;\n let downEl = getEventTargetViaRoot(pev.origEvent);\n this.matchesCancel = !!elementClosest(downEl, unselectCancel);\n this.matchesEvent = !!elementClosest(downEl, EventDragging.SELECTOR); // interaction started on an event?\n };\n this.onDocumentPointerUp = (pev) => {\n let { context } = this;\n let { documentPointer } = this;\n let calendarState = context.getCurrentData();\n // touch-scrolling should never unfocus any type of selection\n if (!documentPointer.wasTouchScroll) {\n if (calendarState.dateSelection && // an existing date selection?\n !this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp?\n ) {\n let unselectAuto = context.options.unselectAuto;\n if (unselectAuto && (!unselectAuto || !this.matchesCancel)) {\n context.calendarApi.unselect(pev);\n }\n }\n if (calendarState.eventSelection && // an existing event selected?\n !this.matchesEvent // interaction DIDN'T start on an event\n ) {\n context.dispatch({ type: 'UNSELECT_EVENT' });\n }\n }\n this.isRecentPointerDateSelect = false;\n };\n let documentPointer = this.documentPointer = new PointerDragging(document);\n documentPointer.shouldIgnoreMove = true;\n documentPointer.shouldWatchScroll = false;\n documentPointer.emitter.on('pointerdown', this.onDocumentPointerDown);\n documentPointer.emitter.on('pointerup', this.onDocumentPointerUp);\n /*\n TODO: better way to know about whether there was a selection with the pointer\n */\n context.emitter.on('select', this.onSelect);\n }\n destroy() {\n this.context.emitter.off('select', this.onSelect);\n this.documentPointer.destroy();\n }\n}\n\nconst OPTION_REFINERS = {\n fixedMirrorParent: identity,\n};\nconst LISTENER_REFINERS = {\n dateClick: identity,\n eventDragStart: identity,\n eventDragStop: identity,\n eventDrop: identity,\n eventResizeStart: identity,\n eventResizeStop: identity,\n eventResize: identity,\n drop: identity,\n eventReceive: identity,\n eventLeave: identity,\n};\n\n/*\nGiven an already instantiated draggable object for one-or-more elements,\nInterprets any dragging as an attempt to drag an events that lives outside\nof a calendar onto a calendar.\n*/\nclass ExternalElementDragging {\n constructor(dragging, suppliedDragMeta) {\n this.receivingContext = null;\n this.droppableEvent = null; // will exist for all drags, even if create:false\n this.suppliedDragMeta = null;\n this.dragMeta = null;\n this.handleDragStart = (ev) => {\n this.dragMeta = this.buildDragMeta(ev.subjectEl);\n };\n this.handleHitUpdate = (hit, isFinal, ev) => {\n let { dragging } = this.hitDragging;\n let receivingContext = null;\n let droppableEvent = null;\n let isInvalid = false;\n let interaction = {\n affectedEvents: createEmptyEventStore(),\n mutatedEvents: createEmptyEventStore(),\n isEvent: this.dragMeta.create,\n };\n if (hit) {\n receivingContext = hit.context;\n if (this.canDropElOnCalendar(ev.subjectEl, receivingContext)) {\n droppableEvent = computeEventForDateSpan(hit.dateSpan, this.dragMeta, receivingContext);\n interaction.mutatedEvents = eventTupleToStore(droppableEvent);\n isInvalid = !isInteractionValid(interaction, hit.dateProfile, receivingContext);\n if (isInvalid) {\n interaction.mutatedEvents = createEmptyEventStore();\n droppableEvent = null;\n }\n }\n }\n this.displayDrag(receivingContext, interaction);\n // show mirror if no already-rendered mirror element OR if we are shutting down the mirror (?)\n // TODO: wish we could somehow wait for dispatch to guarantee render\n dragging.setMirrorIsVisible(isFinal || !droppableEvent || !document.querySelector('.fc-event-mirror'));\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n dragging.setMirrorNeedsRevert(!droppableEvent);\n this.receivingContext = receivingContext;\n this.droppableEvent = droppableEvent;\n }\n };\n this.handleDragEnd = (pev) => {\n let { receivingContext, droppableEvent } = this;\n this.clearDrag();\n if (receivingContext && droppableEvent) {\n let finalHit = this.hitDragging.finalHit;\n let finalView = finalHit.context.viewApi;\n let dragMeta = this.dragMeta;\n receivingContext.emitter.trigger('drop', Object.assign(Object.assign({}, buildDatePointApiWithContext(finalHit.dateSpan, receivingContext)), { draggedEl: pev.subjectEl, jsEvent: pev.origEvent, view: finalView }));\n if (dragMeta.create) {\n let addingEvents = eventTupleToStore(droppableEvent);\n receivingContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: addingEvents,\n });\n if (pev.isTouch) {\n receivingContext.dispatch({\n type: 'SELECT_EVENT',\n eventInstanceId: droppableEvent.instance.instanceId,\n });\n }\n // signal that an external event landed\n receivingContext.emitter.trigger('eventReceive', {\n event: new EventImpl(receivingContext, droppableEvent.def, droppableEvent.instance),\n relatedEvents: [],\n revert() {\n receivingContext.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: addingEvents,\n });\n },\n draggedEl: pev.subjectEl,\n view: finalView,\n });\n }\n }\n this.receivingContext = null;\n this.droppableEvent = null;\n };\n let hitDragging = this.hitDragging = new HitDragging(dragging, interactionSettingsStore);\n hitDragging.requireInitial = false; // will start outside of a component\n hitDragging.emitter.on('dragstart', this.handleDragStart);\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n hitDragging.emitter.on('dragend', this.handleDragEnd);\n this.suppliedDragMeta = suppliedDragMeta;\n }\n buildDragMeta(subjectEl) {\n if (typeof this.suppliedDragMeta === 'object') {\n return parseDragMeta(this.suppliedDragMeta);\n }\n if (typeof this.suppliedDragMeta === 'function') {\n return parseDragMeta(this.suppliedDragMeta(subjectEl));\n }\n return getDragMetaFromEl(subjectEl);\n }\n displayDrag(nextContext, state) {\n let prevContext = this.receivingContext;\n if (prevContext && prevContext !== nextContext) {\n prevContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n if (nextContext) {\n nextContext.dispatch({ type: 'SET_EVENT_DRAG', state });\n }\n }\n clearDrag() {\n if (this.receivingContext) {\n this.receivingContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n }\n canDropElOnCalendar(el, receivingContext) {\n let dropAccept = receivingContext.options.dropAccept;\n if (typeof dropAccept === 'function') {\n return dropAccept.call(receivingContext.calendarApi, el);\n }\n if (typeof dropAccept === 'string' && dropAccept) {\n return Boolean(elementMatches(el, dropAccept));\n }\n return true;\n }\n}\n// Utils for computing event store from the DragMeta\n// ----------------------------------------------------------------------------------------------------\nfunction computeEventForDateSpan(dateSpan, dragMeta, context) {\n let defProps = Object.assign({}, dragMeta.leftoverProps);\n for (let transform of context.pluginHooks.externalDefTransforms) {\n Object.assign(defProps, transform(dateSpan, dragMeta));\n }\n let { refined, extra } = refineEventDef(defProps, context);\n let def = parseEventDef(refined, extra, dragMeta.sourceId, dateSpan.allDay, context.options.forceEventDuration || Boolean(dragMeta.duration), // hasEnd\n context);\n let start = dateSpan.range.start;\n // only rely on time info if drop zone is all-day,\n // otherwise, we already know the time\n if (dateSpan.allDay && dragMeta.startTime) {\n start = context.dateEnv.add(start, dragMeta.startTime);\n }\n let end = dragMeta.duration ?\n context.dateEnv.add(start, dragMeta.duration) :\n getDefaultEventEnd(dateSpan.allDay, start, context);\n let instance = createEventInstance(def.defId, { start, end });\n return { def, instance };\n}\n// Utils for extracting data from element\n// ----------------------------------------------------------------------------------------------------\nfunction getDragMetaFromEl(el) {\n let str = getEmbeddedElData(el, 'event');\n let obj = str ?\n JSON.parse(str) :\n { create: false }; // if no embedded data, assume no event creation\n return parseDragMeta(obj);\n}\nconfig.dataAttrPrefix = '';\nfunction getEmbeddedElData(el, name) {\n let prefix = config.dataAttrPrefix;\n let prefixedName = (prefix ? prefix + '-' : '') + name;\n return el.getAttribute('data-' + prefixedName) || '';\n}\n\n/*\nMakes an element (that is *external* to any calendar) draggable.\nCan pass in data that determines how an event will be created when dropped onto a calendar.\nLeverages FullCalendar's internal drag-n-drop functionality WITHOUT a third-party drag system.\n*/\nclass ExternalDraggable {\n constructor(el, settings = {}) {\n this.handlePointerDown = (ev) => {\n let { dragging } = this;\n let { minDistance, longPressDelay } = this.settings;\n dragging.minDistance =\n minDistance != null ?\n minDistance :\n (ev.isTouch ? 0 : BASE_OPTION_DEFAULTS.eventDragMinDistance);\n dragging.delay =\n ev.isTouch ? // TODO: eventually read eventLongPressDelay instead vvv\n (longPressDelay != null ? longPressDelay : BASE_OPTION_DEFAULTS.longPressDelay) :\n 0;\n };\n this.handleDragStart = (ev) => {\n if (ev.isTouch &&\n this.dragging.delay &&\n ev.subjectEl.classList.contains('fc-event')) {\n this.dragging.mirror.getMirrorEl().classList.add('fc-event-selected');\n }\n };\n this.settings = settings;\n let dragging = this.dragging = new FeaturefulElementDragging(el);\n dragging.touchScrollAllowed = false;\n if (settings.itemSelector != null) {\n dragging.pointer.selector = settings.itemSelector;\n }\n if (settings.appendTo != null) {\n dragging.mirror.parentNode = settings.appendTo; // TODO: write tests\n }\n dragging.emitter.on('pointerdown', this.handlePointerDown);\n dragging.emitter.on('dragstart', this.handleDragStart);\n new ExternalElementDragging(dragging, settings.eventData); // eslint-disable-line no-new\n }\n destroy() {\n this.dragging.destroy();\n }\n}\n\n/*\nDetects when a *THIRD-PARTY* drag-n-drop system interacts with elements.\nThe third-party system is responsible for drawing the visuals effects of the drag.\nThis class simply monitors for pointer movements and fires events.\nIt also has the ability to hide the moving element (the \"mirror\") during the drag.\n*/\nclass InferredElementDragging extends ElementDragging {\n constructor(containerEl) {\n super(containerEl);\n this.shouldIgnoreMove = false;\n this.mirrorSelector = '';\n this.currentMirrorEl = null;\n this.handlePointerDown = (ev) => {\n this.emitter.trigger('pointerdown', ev);\n if (!this.shouldIgnoreMove) {\n // fire dragstart right away. does not support delay or min-distance\n this.emitter.trigger('dragstart', ev);\n }\n };\n this.handlePointerMove = (ev) => {\n if (!this.shouldIgnoreMove) {\n this.emitter.trigger('dragmove', ev);\n }\n };\n this.handlePointerUp = (ev) => {\n this.emitter.trigger('pointerup', ev);\n if (!this.shouldIgnoreMove) {\n // fire dragend right away. does not support a revert animation\n this.emitter.trigger('dragend', ev);\n }\n };\n let pointer = this.pointer = new PointerDragging(containerEl);\n pointer.emitter.on('pointerdown', this.handlePointerDown);\n pointer.emitter.on('pointermove', this.handlePointerMove);\n pointer.emitter.on('pointerup', this.handlePointerUp);\n }\n destroy() {\n this.pointer.destroy();\n }\n setIgnoreMove(bool) {\n this.shouldIgnoreMove = bool;\n }\n setMirrorIsVisible(bool) {\n if (bool) {\n // restore a previously hidden element.\n // use the reference in case the selector class has already been removed.\n if (this.currentMirrorEl) {\n this.currentMirrorEl.style.visibility = '';\n this.currentMirrorEl = null;\n }\n }\n else {\n let mirrorEl = this.mirrorSelector\n // TODO: somehow query FullCalendars WITHIN shadow-roots\n ? document.querySelector(this.mirrorSelector)\n : null;\n if (mirrorEl) {\n this.currentMirrorEl = mirrorEl;\n mirrorEl.style.visibility = 'hidden';\n }\n }\n }\n}\n\n/*\nBridges third-party drag-n-drop systems with FullCalendar.\nMust be instantiated and destroyed by caller.\n*/\nclass ThirdPartyDraggable {\n constructor(containerOrSettings, settings) {\n let containerEl = document;\n if (\n // wish we could just test instanceof EventTarget, but doesn't work in IE11\n containerOrSettings === document ||\n containerOrSettings instanceof Element) {\n containerEl = containerOrSettings;\n settings = settings || {};\n }\n else {\n settings = (containerOrSettings || {});\n }\n let dragging = this.dragging = new InferredElementDragging(containerEl);\n if (typeof settings.itemSelector === 'string') {\n dragging.pointer.selector = settings.itemSelector;\n }\n else if (containerEl === document) {\n dragging.pointer.selector = '[data-event]';\n }\n if (typeof settings.mirrorSelector === 'string') {\n dragging.mirrorSelector = settings.mirrorSelector;\n }\n new ExternalElementDragging(dragging, settings.eventData); // eslint-disable-line no-new\n }\n destroy() {\n this.dragging.destroy();\n }\n}\n\nvar index = createPlugin({\n name: '@fullcalendar/interaction',\n componentInteractions: [DateClicking, DateSelecting, EventDragging, EventResizing],\n calendarInteractions: [UnselectAuto],\n elementDraggingImpl: FeaturefulElementDragging,\n optionRefiners: OPTION_REFINERS,\n listenerRefiners: LISTENER_REFINERS,\n});\n\nexport { ExternalDraggable as Draggable, ThirdPartyDraggable, index as default };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { Component, createRef, PureComponent } from 'react';\nimport { createPortal, flushSync } from 'react-dom';\nimport { Calendar, } from '@fullcalendar/core';\nimport { CustomRenderingStore, } from '@fullcalendar/core/internal';\nconst reactMajorVersion = parseInt(String(React.version).split('.')[0]);\nconst syncRenderingByDefault = reactMajorVersion < 18;\nexport default class FullCalendar extends Component {\n constructor() {\n super(...arguments);\n this.elRef = createRef();\n this.isUpdating = false;\n this.isUnmounting = false;\n this.state = {\n customRenderingMap: new Map()\n };\n this.requestResize = () => {\n if (!this.isUnmounting) {\n this.cancelResize();\n this.resizeId = requestAnimationFrame(() => {\n this.doResize();\n });\n }\n };\n }\n render() {\n const customRenderingNodes = [];\n for (const customRendering of this.state.customRenderingMap.values()) {\n customRenderingNodes.push(React.createElement(CustomRenderingComponent, { key: customRendering.id, customRendering: customRendering }));\n }\n return (React.createElement(\"div\", { ref: this.elRef }, customRenderingNodes));\n }\n componentDidMount() {\n const customRenderingStore = new CustomRenderingStore();\n this.handleCustomRendering = customRenderingStore.handle.bind(customRenderingStore);\n this.calendar = new Calendar(this.elRef.current, Object.assign(Object.assign({}, this.props), { handleCustomRendering: this.handleCustomRendering }));\n this.calendar.render();\n let lastRequestTimestamp;\n customRenderingStore.subscribe((customRenderingMap) => {\n const requestTimestamp = Date.now();\n const isMounting = !lastRequestTimestamp;\n const runFunc = (\n // don't call flushSync if React version already does sync rendering by default\n // guards against fatal errors:\n // https://github.com/fullcalendar/fullcalendar/issues/7448\n syncRenderingByDefault ||\n //\n isMounting ||\n this.isUpdating ||\n this.isUnmounting ||\n (requestTimestamp - lastRequestTimestamp) < 100 // rerendering frequently\n ) ? runNow // either sync rendering (first-time or React 16/17) or async (React 18)\n : flushSync; // guaranteed sync rendering\n runFunc(() => {\n this.setState({ customRenderingMap }, () => {\n lastRequestTimestamp = requestTimestamp;\n if (isMounting) {\n this.doResize();\n }\n else {\n this.requestResize();\n }\n });\n });\n });\n }\n componentDidUpdate() {\n this.isUpdating = true;\n this.calendar.resetOptions(Object.assign(Object.assign({}, this.props), { handleCustomRendering: this.handleCustomRendering }));\n this.isUpdating = false;\n }\n componentWillUnmount() {\n this.isUnmounting = true;\n this.cancelResize();\n this.calendar.destroy();\n }\n doResize() {\n this.calendar.updateSize();\n }\n cancelResize() {\n if (this.resizeId !== undefined) {\n cancelAnimationFrame(this.resizeId);\n this.resizeId = undefined;\n }\n }\n getApi() {\n return this.calendar;\n }\n}\nFullCalendar.act = runNow; // DEPRECATED. Not leveraged anymore\nclass CustomRenderingComponent extends PureComponent {\n render() {\n const { customRendering } = this.props;\n const { generatorMeta } = customRendering;\n const vnode = typeof generatorMeta === 'function' ?\n generatorMeta(customRendering.renderProps) :\n generatorMeta;\n return createPortal(vnode, customRendering.containerEl);\n }\n}\n// Util\n// -------------------------------------------------------------------------------------------------\nfunction runNow(f) {\n f();\n}\n//# sourceMappingURL=index.js.map","// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\nconst DATA_URL_DEFAULT_MIME_TYPE = 'text/plain';\nconst DATA_URL_DEFAULT_CHARSET = 'us-ascii';\n\nconst testParameter = (name, filters) => filters.some(filter => filter instanceof RegExp ? filter.test(name) : filter === name);\n\nconst supportedProtocols = new Set([\n\t'https:',\n\t'http:',\n\t'file:',\n]);\n\nconst hasCustomProtocol = urlString => {\n\ttry {\n\t\tconst {protocol} = new URL(urlString);\n\t\treturn protocol.endsWith(':') && !supportedProtocols.has(protocol);\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst normalizeDataURL = (urlString, {stripHash}) => {\n\tconst match = /^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(urlString);\n\n\tif (!match) {\n\t\tthrow new Error(`Invalid URL: ${urlString}`);\n\t}\n\n\tlet {type, data, hash} = match.groups;\n\tconst mediaType = type.split(';');\n\thash = stripHash ? '' : hash;\n\n\tlet isBase64 = false;\n\tif (mediaType[mediaType.length - 1] === 'base64') {\n\t\tmediaType.pop();\n\t\tisBase64 = true;\n\t}\n\n\t// Lowercase MIME type\n\tconst mimeType = mediaType.shift()?.toLowerCase() ?? '';\n\tconst attributes = mediaType\n\t\t.map(attribute => {\n\t\t\tlet [key, value = ''] = attribute.split('=').map(string => string.trim());\n\n\t\t\t// Lowercase `charset`\n\t\t\tif (key === 'charset') {\n\t\t\t\tvalue = value.toLowerCase();\n\n\t\t\t\tif (value === DATA_URL_DEFAULT_CHARSET) {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn `${key}${value ? `=${value}` : ''}`;\n\t\t})\n\t\t.filter(Boolean);\n\n\tconst normalizedMediaType = [\n\t\t...attributes,\n\t];\n\n\tif (isBase64) {\n\t\tnormalizedMediaType.push('base64');\n\t}\n\n\tif (normalizedMediaType.length > 0 || (mimeType && mimeType !== DATA_URL_DEFAULT_MIME_TYPE)) {\n\t\tnormalizedMediaType.unshift(mimeType);\n\t}\n\n\treturn `data:${normalizedMediaType.join(';')},${isBase64 ? data.trim() : data}${hash ? `#${hash}` : ''}`;\n};\n\nexport default function normalizeUrl(urlString, options) {\n\toptions = {\n\t\tdefaultProtocol: 'http',\n\t\tnormalizeProtocol: true,\n\t\tforceHttp: false,\n\t\tforceHttps: false,\n\t\tstripAuthentication: true,\n\t\tstripHash: false,\n\t\tstripTextFragment: true,\n\t\tstripWWW: true,\n\t\tremoveQueryParameters: [/^utm_\\w+/i],\n\t\tremoveTrailingSlash: true,\n\t\tremoveSingleSlash: true,\n\t\tremoveDirectoryIndex: false,\n\t\tremoveExplicitPort: false,\n\t\tsortQueryParameters: true,\n\t\t...options,\n\t};\n\n\t// Legacy: Append `:` to the protocol if missing.\n\tif (typeof options.defaultProtocol === 'string' && !options.defaultProtocol.endsWith(':')) {\n\t\toptions.defaultProtocol = `${options.defaultProtocol}:`;\n\t}\n\n\turlString = urlString.trim();\n\n\t// Data URL\n\tif (/^data:/i.test(urlString)) {\n\t\treturn normalizeDataURL(urlString, options);\n\t}\n\n\tif (hasCustomProtocol(urlString)) {\n\t\treturn urlString;\n\t}\n\n\tconst hasRelativeProtocol = urlString.startsWith('//');\n\tconst isRelativeUrl = !hasRelativeProtocol && /^\\.*\\//.test(urlString);\n\n\t// Prepend protocol\n\tif (!isRelativeUrl) {\n\t\turlString = urlString.replace(/^(?!(?:\\w+:)?\\/\\/)|^\\/\\//, options.defaultProtocol);\n\t}\n\n\tconst urlObject = new URL(urlString);\n\n\tif (options.forceHttp && options.forceHttps) {\n\t\tthrow new Error('The `forceHttp` and `forceHttps` options cannot be used together');\n\t}\n\n\tif (options.forceHttp && urlObject.protocol === 'https:') {\n\t\turlObject.protocol = 'http:';\n\t}\n\n\tif (options.forceHttps && urlObject.protocol === 'http:') {\n\t\turlObject.protocol = 'https:';\n\t}\n\n\t// Remove auth\n\tif (options.stripAuthentication) {\n\t\turlObject.username = '';\n\t\turlObject.password = '';\n\t}\n\n\t// Remove hash\n\tif (options.stripHash) {\n\t\turlObject.hash = '';\n\t} else if (options.stripTextFragment) {\n\t\turlObject.hash = urlObject.hash.replace(/#?:~:text.*?$/i, '');\n\t}\n\n\t// Remove duplicate slashes if not preceded by a protocol\n\t// NOTE: This could be implemented using a single negative lookbehind\n\t// regex, but we avoid that to maintain compatibility with older js engines\n\t// which do not have support for that feature.\n\tif (urlObject.pathname) {\n\t\t// TODO: Replace everything below with `urlObject.pathname = urlObject.pathname.replace(/(?<!\\b[a-z][a-z\\d+\\-.]{1,50}:)\\/{2,}/g, '/');` when Safari supports negative lookbehind.\n\n\t\t// Split the string by occurrences of this protocol regex, and perform\n\t\t// duplicate-slash replacement on the strings between those occurrences\n\t\t// (if any).\n\t\tconst protocolRegex = /\\b[a-z][a-z\\d+\\-.]{1,50}:\\/\\//g;\n\n\t\tlet lastIndex = 0;\n\t\tlet result = '';\n\t\tfor (;;) {\n\t\t\tconst match = protocolRegex.exec(urlObject.pathname);\n\t\t\tif (!match) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst protocol = match[0];\n\t\t\tconst protocolAtIndex = match.index;\n\t\t\tconst intermediate = urlObject.pathname.slice(lastIndex, protocolAtIndex);\n\n\t\t\tresult += intermediate.replace(/\\/{2,}/g, '/');\n\t\t\tresult += protocol;\n\t\t\tlastIndex = protocolAtIndex + protocol.length;\n\t\t}\n\n\t\tconst remnant = urlObject.pathname.slice(lastIndex, urlObject.pathname.length);\n\t\tresult += remnant.replace(/\\/{2,}/g, '/');\n\n\t\turlObject.pathname = result;\n\t}\n\n\t// Decode URI octets\n\tif (urlObject.pathname) {\n\t\ttry {\n\t\t\turlObject.pathname = decodeURI(urlObject.pathname);\n\t\t} catch {}\n\t}\n\n\t// Remove directory index\n\tif (options.removeDirectoryIndex === true) {\n\t\toptions.removeDirectoryIndex = [/^index\\.[a-z]+$/];\n\t}\n\n\tif (Array.isArray(options.removeDirectoryIndex) && options.removeDirectoryIndex.length > 0) {\n\t\tlet pathComponents = urlObject.pathname.split('/');\n\t\tconst lastComponent = pathComponents[pathComponents.length - 1];\n\n\t\tif (testParameter(lastComponent, options.removeDirectoryIndex)) {\n\t\t\tpathComponents = pathComponents.slice(0, -1);\n\t\t\turlObject.pathname = pathComponents.slice(1).join('/') + '/';\n\t\t}\n\t}\n\n\tif (urlObject.hostname) {\n\t\t// Remove trailing dot\n\t\turlObject.hostname = urlObject.hostname.replace(/\\.$/, '');\n\n\t\t// Remove `www.`\n\t\tif (options.stripWWW && /^www\\.(?!www\\.)[a-z\\-\\d]{1,63}\\.[a-z.\\-\\d]{2,63}$/.test(urlObject.hostname)) {\n\t\t\t// Each label should be max 63 at length (min: 1).\n\t\t\t// Source: https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names\n\t\t\t// Each TLD should be up to 63 characters long (min: 2).\n\t\t\t// It is technically possible to have a single character TLD, but none currently exist.\n\t\t\turlObject.hostname = urlObject.hostname.replace(/^www\\./, '');\n\t\t}\n\t}\n\n\t// Remove query unwanted parameters\n\tif (Array.isArray(options.removeQueryParameters)) {\n\t\t// eslint-disable-next-line unicorn/no-useless-spread -- We are intentionally spreading to get a copy.\n\t\tfor (const key of [...urlObject.searchParams.keys()]) {\n\t\t\tif (testParameter(key, options.removeQueryParameters)) {\n\t\t\t\turlObject.searchParams.delete(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!Array.isArray(options.keepQueryParameters) && options.removeQueryParameters === true) {\n\t\turlObject.search = '';\n\t}\n\n\t// Keep wanted query parameters\n\tif (Array.isArray(options.keepQueryParameters) && options.keepQueryParameters.length > 0) {\n\t\t// eslint-disable-next-line unicorn/no-useless-spread -- We are intentionally spreading to get a copy.\n\t\tfor (const key of [...urlObject.searchParams.keys()]) {\n\t\t\tif (!testParameter(key, options.keepQueryParameters)) {\n\t\t\t\turlObject.searchParams.delete(key);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Sort query parameters\n\tif (options.sortQueryParameters) {\n\t\turlObject.searchParams.sort();\n\n\t\t// Calling `.sort()` encodes the search parameters, so we need to decode them again.\n\t\ttry {\n\t\t\turlObject.search = decodeURIComponent(urlObject.search);\n\t\t} catch {}\n\t}\n\n\tif (options.removeTrailingSlash) {\n\t\turlObject.pathname = urlObject.pathname.replace(/\\/$/, '');\n\t}\n\n\t// Remove an explicit port number, excluding a default port number, if applicable\n\tif (options.removeExplicitPort && urlObject.port) {\n\t\turlObject.port = '';\n\t}\n\n\tconst oldUrlString = urlString;\n\n\t// Take advantage of many of the Node `url` normalizations\n\turlString = urlObject.toString();\n\n\tif (!options.removeSingleSlash && urlObject.pathname === '/' && !oldUrlString.endsWith('/') && urlObject.hash === '') {\n\t\turlString = urlString.replace(/\\/$/, '');\n\t}\n\n\t// Remove ending `/` unless removeSingleSlash is false\n\tif ((options.removeTrailingSlash || urlObject.pathname === '/') && urlObject.hash === '' && options.removeSingleSlash) {\n\t\turlString = urlString.replace(/\\/$/, '');\n\t}\n\n\t// Restore relative protocol, if applicable\n\tif (hasRelativeProtocol && !options.normalizeProtocol) {\n\t\turlString = urlString.replace(/^http:\\/\\//, '//');\n\t}\n\n\t// Remove http/https\n\tif (options.stripProtocol) {\n\t\turlString = urlString.replace(/^(?:https?:)?\\/\\//, '');\n\t}\n\n\treturn urlString;\n}\n","// Even though the browser version is a no-op, we wrap it to ensure consistent behavior.\nexport default function functionTimeout(function_) {\n\tconst wrappedFunction = (...arguments_) => function_(...arguments_);\n\n\tObject.defineProperty(wrappedFunction, 'name', {\n\t\tvalue: `functionTimeout(${function_.name || '<anonymous>'})`,\n\t\tconfigurable: true,\n\t});\n\n\treturn wrappedFunction;\n}\n\nexport function isTimeoutError() {\n\treturn false;\n}\n","export default function timeSpan() {\n\tconst start = performance.now();\n\n\tconst end = () => performance.now() - start;\n\tend.rounded = () => Math.round(end());\n\tend.seconds = () => end() / 1000;\n\tend.nanoseconds = () => end() * 1000000;\n\n\treturn end;\n}\n","const {toString} = Object.prototype;\n\nexport default function isRegexp(value) {\n\treturn toString.call(value) === '[object RegExp]';\n}\n","import isRegexp from 'is-regexp';\n\nconst flagMap = {\n\tglobal: 'g',\n\tignoreCase: 'i',\n\tmultiline: 'm',\n\tdotAll: 's',\n\tsticky: 'y',\n\tunicode: 'u'\n};\n\nexport default function clonedRegexp(regexp, options = {}) {\n\tif (!isRegexp(regexp)) {\n\t\tthrow new TypeError('Expected a RegExp instance');\n\t}\n\n\tconst flags = Object.keys(flagMap).map(flag => (\n\t\t(typeof options[flag] === 'boolean' ? options[flag] : regexp[flag]) ? flagMap[flag] : ''\n\t)).join('');\n\n\tconst clonedRegexp = new RegExp(options.source || regexp.source, flags);\n\n\tclonedRegexp.lastIndex = typeof options.lastIndex === 'number' ?\n\t\toptions.lastIndex :\n\t\tregexp.lastIndex;\n\n\treturn clonedRegexp;\n}\n","import functionTimeout, {isTimeoutError} from 'function-timeout';\nimport timeSpan from 'time-span';\nimport cloneRegexp from 'clone-regexp'; // TODO: Use `structuredClone` instead when targeting Node.js 18.\n\nconst resultToMatch = result => ({\n\tmatch: result[0],\n\tindex: result.index,\n\tgroups: result.slice(1),\n\tnamedGroups: result.groups ?? {},\n\tinput: result.input,\n});\n\nexport function isMatch(regex, string, {timeout} = {}) {\n\ttry {\n\t\treturn functionTimeout(() => cloneRegexp(regex).test(string), {timeout})();\n\t} catch (error) {\n\t\tif (isTimeoutError(error)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n\nexport function firstMatch(regex, string, {timeout} = {}) {\n\ttry {\n\t\tconst result = functionTimeout(() => cloneRegexp(regex).exec(string), {timeout})();\n\n\t\tif (result === null) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn resultToMatch(result);\n\t} catch (error) {\n\t\tif (isTimeoutError(error)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n\nexport function matches(regex, string, {timeout = Number.POSITIVE_INFINITY, matchTimeout = Number.POSITIVE_INFINITY} = {}) {\n\tif (!regex.global) {\n\t\tthrow new Error('The regex must have the global flag, otherwise, use `firstMatch()` instead');\n\t}\n\n\treturn {\n\t\t* [Symbol.iterator]() {\n\t\t\ttry {\n\t\t\t\tconst matches = string.matchAll(regex); // The regex is only executed when iterated over.\n\n\t\t\t\twhile (true) {\n\t\t\t\t\tconst nextMatch = functionTimeout(() => matches.next(), {timeout: (timeout !== Number.POSITIVE_INFINITY || matchTimeout !== Number.POSITIVE_INFINITY) ? Math.min(timeout, matchTimeout) : undefined}); // `matches.next` must be called within an arrow function so that it doesn't loose its context.\n\n\t\t\t\t\tconst end = timeSpan();\n\t\t\t\t\tconst {value, done} = nextMatch();\n\t\t\t\t\ttimeout -= Math.ceil(end());\n\n\t\t\t\t\tif (done) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tyield resultToMatch(value);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (!isTimeoutError(error)) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t};\n}\n","import urlRegex from 'url-regex-safe';\nimport normalizeUrl from 'normalize-url';\nimport {isMatch, matches} from 'super-regex';\n\nconst getUrlsFromQueryParameters = url => {\n\tconst returnValue = new Set();\n\tconst {searchParams} = (new URL(url.replace(/^(?:\\/\\/|(?:www\\.))/i, 'http://$2')));\n\n\tfor (const [, value] of searchParams) {\n\t\tif (isMatch(urlRegex({exact: true}), value, {timeout: 500})) {\n\t\t\treturnValue.add(value);\n\t\t}\n\t}\n\n\treturn returnValue;\n};\n\nexport default function getUrls(text, options = {}) {\n\tif (typeof text !== 'string') {\n\t\tthrow new TypeError(`The \\`text\\` argument should be a string, got ${typeof text}`);\n\t}\n\n\tif (options.exclude !== undefined && !Array.isArray(options.exclude)) {\n\t\tthrow new TypeError('The `exclude` option must be an array');\n\t}\n\n\tconst returnValue = new Set();\n\n\tconst add = url => {\n\t\ttry {\n\t\t\treturnValue.add(normalizeUrl(url.trim().replace(/\\.+$/, ''), options));\n\t\t} catch {}\n\t};\n\n\tconst results = matches(\n\t\turlRegex(options.requireSchemeOrWww === undefined ? undefined : {\n\t\t\tre2: false,\n\t\t\tstrict: options.requireSchemeOrWww,\n\t\t\tparens: true,\n\t\t}),\n\t\ttext,\n\t\t{\n\t\t\tmatchTimeout: 500,\n\t\t},\n\t);\n\n\tfor (const {match: url} of results) {\n\t\tadd(url);\n\n\t\tif (options.extractFromQueryString) {\n\t\t\tconst queryStringUrls = getUrlsFromQueryParameters(url);\n\t\t\tfor (const queryStringUrl of queryStringUrls) {\n\t\t\t\tadd(queryStringUrl);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const excludedItem of options.exclude ?? []) {\n\t\tconst regex = new RegExp(excludedItem);\n\n\t\tfor (const item of returnValue) {\n\t\t\tif (isMatch(regex, item, {timeout: 500})) {\n\t\t\t\treturnValue.delete(item);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn returnValue;\n}\n","const hexCharacters = 'a-f\\\\d';\nconst match3or4Hex = `#?[${hexCharacters}]{3}[${hexCharacters}]?`;\nconst match6or8Hex = `#?[${hexCharacters}]{6}([${hexCharacters}]{2})?`;\nconst nonHexChars = new RegExp(`[^#${hexCharacters}]`, 'gi');\nconst validHexSize = new RegExp(`^${match3or4Hex}$|^${match6or8Hex}$`, 'i');\n\nexport default function hexRgb(hex, options = {}) {\n\tif (typeof hex !== 'string' || nonHexChars.test(hex) || !validHexSize.test(hex)) {\n\t\tthrow new TypeError('Expected a valid hex string');\n\t}\n\n\thex = hex.replace(/^#/, '');\n\tlet alphaFromHex = 1;\n\n\tif (hex.length === 8) {\n\t\talphaFromHex = Number.parseInt(hex.slice(6, 8), 16) / 255;\n\t\thex = hex.slice(0, 6);\n\t}\n\n\tif (hex.length === 4) {\n\t\talphaFromHex = Number.parseInt(hex.slice(3, 4).repeat(2), 16) / 255;\n\t\thex = hex.slice(0, 3);\n\t}\n\n\tif (hex.length === 3) {\n\t\thex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n\t}\n\n\tconst number = Number.parseInt(hex, 16);\n\tconst red = number >> 16;\n\tconst green = (number >> 8) & 255;\n\tconst blue = number & 255;\n\tconst alpha = typeof options.alpha === 'number' ? options.alpha : alphaFromHex;\n\n\tif (options.format === 'array') {\n\t\treturn [red, green, blue, alpha];\n\t}\n\n\tif (options.format === 'css') {\n\t\tconst alphaString = alpha === 1 ? '' : ` / ${Number((alpha * 100).toFixed(2))}%`;\n\t\treturn `rgb(${red} ${green} ${blue}${alphaString})`;\n\t}\n\n\treturn {red, green, blue, alpha};\n}\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","/**\n * @name codsen-utils\n * @fileoverview Various utility functions\n * @version 1.6.4\n * @author Roy Revelt, Codsen Ltd\n * @license MIT\n * {@link https://codsen.com/os/codsen-utils/}\n */\n\nvar s=\"1.6.4\";import p from\"rfdc\";var l=p(),k=s,a=\"\\u2018\",f=\"\\u2019\",d=\"\\u201C\",m=\"\\u201D\",S=\"\\u2013\",O=\"\\u2014\",C=\"\\xA0\",N=\"\\u2026\",A=\"\\u200A\",j=\"\\u2009\",E=\"\\u2032\",T=\"\\u2033\",J=\"\\\\\",R=\"\\uFFFD\",$=\"`\",L=\"\\xD7\",D=[\".\",\",\",\";\",\"!\",\"?\"];function U(t){return r(t)&&t.charCodeAt(0)>=48&&t.charCodeAt(0)<=57}function x(t){return r(t)&&\"\\u060B$\\u20BC\\u17DB\\xA5\\u20A1\\u20B1\\xA3\\u20AC\\xA2\\u20B9\\uFDFC\\u20AA\\u20A9\\u20AD\\u20A8\\u20AE\\u20A6\\u20BD\\u20AB\\u0E3F\\u20A9\\u20BA\\u20B4\".includes(t)}function F(t){let e=new Set([\"$U\",\"$b\",\"B/.\",\"BZ$\",\"Br\",\"Bs\",\"C$\",\"CHF\",\"Ft\",\"Gs\",\"J$\",\"KM\",\"K\\u010D\",\"L\",\"MT\",\"NT$\",\"P\",\"Q\",\"R\",\"R$\",\"RD$\",\"RM\",\"Rp\",\"S\",\"S/.\",\"TT$\",\"Z$\",\"kn\",\"kr\",\"lei\",\"z\\u0142\",\"\\u0192\",\"\\u0414\\u0438\\u043D.\",\"\\u0434\\u0435\\u043D\",\"\\u043B\\u0432\",\"\\u062F.\\u0625\",\"Lek\"]);return r(t)&&!!t.trim()&&(x(t)||e.has(t))}function i(t){return r(t)&&t.length===1&&t.toUpperCase()!==t.toLowerCase()}function I(t){return!!(t&&r(t)&&(t.charCodeAt(0)>64&&t.charCodeAt(0)<91||t.charCodeAt(0)>96&&t.charCodeAt(0)<123))}function P(t){return r(t)&&(t==='\"'||t===\"'\"||t===a||t===f||t===d||t===m)}function M(t){return!r(t)||!i(t)?!1:t===t.toLowerCase()&&t!==t.toUpperCase()}function Q(t){return!r(t)||!i(t)?!1:t===t.toUpperCase()&&t!==t.toLowerCase()}function V(t){return!r(t)||!t?!1:!t[0].trim()}var B=t=>r(t)&&t.length&&t.endsWith(\"/\")?t.slice(0,-1).trim():t;function u(t){if(t==null||typeof t!=\"object\")return!1;let e=Object.getPrototypeOf(t);return e!==null&&e!==Object.prototype&&Object.getPrototypeOf(e)!==null?!1:!(Symbol.iterator in t)&&!(Symbol.toStringTag in t)}function K(t=\"\",e=0,n=0,o=\"\"){return e<0&&(e+=t.length,e<0&&(e=0)),t.slice(0,e)+(o||\"\")+t.slice(e+n)}function r(t){return typeof t==\"string\"}function W(t){return Number.isFinite(t)}function q(t){return Number.isSafeInteger(t)&&t>=0}function H(t){return typeof t==\"boolean\"}function Z(t){return t===null}function b(t){return t instanceof RegExp}function _(t,e){if(!r(t)||!r(e))return[];let n=[],o=-1;for(;(o=t.indexOf(e,o+1))>=0;)n.push(o);return n}function z(t=[],e=[]){return!t||!Array.isArray(t)||!t.length?[]:!e||!Array.isArray(e)||!e.length?t:t.filter(n=>!e.includes(n))}function G(t){return t!=null}function X(t){return[...new Set(t)]}function g(t){if(!(typeof t!=\"string\"||!t)){if(t.includes(`\\r\n`))return`\\r\n`;if(t.includes(`\n`))return`\n`;if(t.includes(\"\\r\"))return\"\\r\"}}function Y(t,e,n=`\n`){if(![`\\r\n`,\"\\r\",`\n`].includes(n))throw new Error(`codsen-utils/resolveEolSetting(): the input argument defaultEolChar should be one of EOL values: \"\\\\n\", \"\\\\r\", or \"\\\\r\\\\n\", but it was given as ${JSON.stringify(n,null,0)}`);return e===\"crlf\"?`\\r\n`:e===\"cr\"?\"\\r\":e===\"lf\"?`\n`:g(t)||n}function v(t,e){return u(t)&&r(e)&&e in t}function tt(t,e){return t.localeCompare(e)}var et=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"],nt=new Set([\"a\",\"abbr\",\"acronym\",\"audio\",\"b\",\"bdi\",\"bdo\",\"big\",\"br\",\"button\",\"canvas\",\"cite\",\"code\",\"data\",\"datalist\",\"del\",\"dfn\",\"em\",\"embed\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"label\",\"map\",\"mark\",\"meter\",\"noscript\",\"object\",\"output\",\"picture\",\"progress\",\"q\",\"ruby\",\"s\",\"samp\",\"script\",\"select\",\"slot\",\"small\",\"span\",\"strong\",\"sub\",\"sup\",\"svg\",\"template\",\"textarea\",\"time\",\"u\",\"tt\",\"var\",\"video\",\"wbr\"]);function rt(t,e){return!Array.isArray(t)||!t.length?!1:t.some(n=>b(n)&&e.match(n)||typeof n==\"string\"&&e===n)}function ot(t=[],e=[]){return!t||!e?[]:Array.from(new Set(Array.from(t).filter(n=>new Set(e).has(n))))}function st(t,e=[]){if(!t)return t;if(!u(t))throw new Error(`codsen-utils/omit(): [THROW_ID_01] Input must be a plain object! It was given as ${JSON.stringify(t,null,4)} (typeof is \"${typeof t}\")`);let n=l(t);return e.forEach(o=>{delete n[o]}),n}export{J as backslash,$ as backtick,tt as compareFn,g as detectEol,T as doublePrime,N as ellipsis,G as existy,_ as findAllIdx,A as hairspace,v as hasOwnProp,rt as includes,nt as inlineTags,ot as intersection,H as isBool,x as isCurrencyChar,F as isCurrencySymbol,q as isInt,I as isLatinLetter,i as isLetter,M as isLowercaseLetter,Z as isNull,W as isNum,U as isNumberChar,u as isPlainObject,P as isQuote,b as isRegExp,r as isStr,Q as isUppercaseLetter,V as isWhitespaceChar,d as leftDoubleQuote,a as leftSingleQuote,L as multiplicationSign,st as omit,z as pullAll,D as punctuationChars,O as rawMDash,S as rawNDash,C as rawNbsp,R as rawReplacementMark,B as removeTrailingSlash,Y as resolveEolSetting,m as rightDoubleQuote,f as rightSingleQuote,E as singlePrime,K as stringSplice,j as thinSpace,X as uniq,k as version,et as voidTags};\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import baseDifference from './_baseDifference.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\nvar without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n});\n\nexport default without;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\nfunction charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nexport default charsEndIndex;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\nfunction charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nexport default charsStartIndex;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","import baseToString from './_baseToString.js';\nimport baseTrim from './_baseTrim.js';\nimport castSlice from './_castSlice.js';\nimport charsEndIndex from './_charsEndIndex.js';\nimport charsStartIndex from './_charsStartIndex.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\nfunction trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return baseTrim(string);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n}\n\nexport default trim;\n","/**\n * @name ranges-sort\n * @fileoverview Sort string index ranges\n * @version 6.0.11\n * @author Roy Revelt, Codsen Ltd\n * @license MIT\n * {@link https://codsen.com/os/ranges-sort/}\n */\n\nvar l=\"6.0.11\";var y=l,d={strictlyTwoElementsInRangeArrays:!1,progressFn:null};function g(t,u){if(!Array.isArray(t)||!t.length)return t;let n={...d,...u},s,o;if(n.strictlyTwoElementsInRangeArrays&&!t.every((e,r)=>!Array.isArray(e)||e.length!==2?(s=r,o=e.length,!1):!0))throw new TypeError(`ranges-sort: [THROW_ID_03] The first argument should be an array and must consist of arrays which are natural number indexes representing TWO string index ranges. However, ${s}th range (${JSON.stringify(t[s],null,4)}) has not two but ${o} elements!`);if(!t.every((e,r)=>!Array.isArray(e)||!Number.isInteger(e[0])||e[0]<0||!Number.isInteger(e[1])||e[1]<0?(s=r,!1):!0))throw new TypeError(`ranges-sort: [THROW_ID_04] The first argument should be an array and must consist of arrays which are natural number indexes representing string index ranges. However, ${s}th range (${JSON.stringify(t[s],null,4)}) does not consist of only natural numbers!`);let p=t.length**2,i=0;return Array.from(t).sort((e,r)=>(n.progressFn&&(i+=1,n.progressFn(Math.floor(i*100/p))),e[0]===r[0]?e[1]<r[1]?-1:e[1]>r[1]?1:0:e[0]<r[0]?-1:1))}export{d as defaults,g as rSort,y as version};\n","/**\n * @name ranges-merge\n * @fileoverview Merge and sort string index ranges\n * @version 9.0.15\n * @author Roy Revelt, Codsen Ltd\n * @license MIT\n * {@link https://codsen.com/os/ranges-merge/}\n */\n\nimport{rSort as p}from\"ranges-sort\";var u=\"9.0.15\";var y=u,d={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function b(i,r){function l(e){return!!e&&typeof e==\"object\"&&!Array.isArray(e)}if(!Array.isArray(i)||!i.length)return null;let n;if(r)if(l(r)){if(n={...d,...r},n.progressFn&&l(n.progressFn)&&!Object.keys(n.progressFn).length)n.progressFn=null;else if(n.progressFn&&typeof n.progressFn!=\"function\")throw new Error(`ranges-merge: [THROW_ID_01] opts.progressFn must be a function! It was given of a type: \"${typeof n.progressFn}\", equal to ${JSON.stringify(n.progressFn,null,4)}`);if(![1,2,\"1\",\"2\"].includes(n.mergeType))throw new Error(`ranges-merge: [THROW_ID_02] opts.mergeType was customised to a wrong thing! It was given of a type: \"${typeof n.mergeType}\", equal to ${JSON.stringify(n.mergeType,null,4)}`);if(typeof n.joinRangesThatTouchEdges!=\"boolean\")throw new Error(`ranges-merge: [THROW_ID_04] opts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: \"${typeof n.joinRangesThatTouchEdges}\", equal to ${JSON.stringify(n.joinRangesThatTouchEdges,null,4)}`)}else throw new Error(`emlint: [THROW_ID_03] the second input argument must be a plain object. It was given as:\n${JSON.stringify(r,null,4)} (type ${typeof r})`);else n={...d};let g=i.filter(e=>Array.isArray(e)).map(e=>[...e]).filter(e=>e[2]!==void 0||e[0]!==e[1]),s,o,t;n.progressFn?s=p(g,{progressFn:e=>{t=Math.floor(e/5),t!==o&&(o=t,n.progressFn(t))}}):s=p(g);let a=s.length-1;for(let e=a;e>0;e--)n.progressFn&&(t=Math.floor((1-e/a)*78)+21,t!==o&&t>o&&(o=t,n.progressFn(t))),(s[e][0]<=s[e-1][0]||!n.joinRangesThatTouchEdges&&s[e][0]<s[e-1][1]||n.joinRangesThatTouchEdges&&s[e][0]<=s[e-1][1])&&(s[e-1][0]=Math.min(s[e][0],s[e-1][0]),s[e-1][1]=Math.max(s[e][1],s[e-1][1]),s[e][2]!==void 0&&(s[e-1][0]>=s[e][0]||s[e-1][1]<=s[e][1])&&s[e-1][2]!==null&&(s[e][2]===null&&s[e-1][2]!==null?s[e-1][2]=null:s[e-1][2]!=null?+n.mergeType==2&&s[e-1][0]===s[e][0]?s[e-1][2]=s[e][2]:s[e-1][2]+=s[e][2]:s[e-1][2]=s[e][2]),s.splice(e,1),e=s.length);return s.length?s:null}export{d as defaults,b as rMerge,y as version};\n","/**\n * @name ranges-apply\n * @fileoverview Take an array of string index ranges, delete/replace the string according to them\n * @version 7.0.16\n * @author Roy Revelt, Codsen Ltd\n * @license MIT\n * {@link https://codsen.com/os/ranges-apply/}\n */\n\nimport{rMerge as b}from\"ranges-merge\";import w from\"tiny-invariant\";var m=\"7.0.16\";var T=m;function _(s,n,r){let t=0,p=0;if(arguments.length===0)throw new Error(\"ranges-apply: [THROW_ID_01] inputs missing!\");if(typeof s!=\"string\")throw new TypeError(`ranges-apply: [THROW_ID_02] first input argument must be a string! Currently it's: ${typeof s}, equal to: ${JSON.stringify(s,null,4)}`);if(n&&!Array.isArray(n))throw new TypeError(`ranges-apply: [THROW_ID_03] second input argument must be an array (or null)! Currently it's: ${typeof n}, equal to: ${JSON.stringify(n,null,4)}`);if(r&&typeof r!=\"function\")throw new TypeError(`ranges-apply: [THROW_ID_04] the third input argument must be a function (or falsey)! Currently it's: ${typeof r}, equal to: ${JSON.stringify(r,null,4)}`);if(!n?.filter(e=>e).length)return s;let i;Array.isArray(n)&&Number.isInteger(n[0])&&Number.isInteger(n[1])?i=[Array.from(n)]:i=Array.from(n);let f=i.length,c=0;i.filter(e=>e).forEach((e,a)=>{if(r&&(t=Math.floor(c/f*10),t!==p&&(p=t,r(t))),!Array.isArray(e))throw new TypeError(`ranges-apply: [THROW_ID_05] ranges array, second input arg., has ${a}th element not an array: ${JSON.stringify(e,null,4)}, which is ${typeof e}`);if(!Number.isInteger(e[0])){if(!Number.isInteger(+e[0])||+e[0]<0)throw new TypeError(`ranges-apply: [THROW_ID_06] ranges array, second input arg. has ${a}th element, array ${JSON.stringify(e,null,0)}. Its first element is not an integer, string index, but ${typeof e[0]}, equal to: ${JSON.stringify(e[0],null,4)}.`);i[a][0]=+i[a][0]}if(!Number.isInteger(e[1])){if(!Number.isInteger(+e[1])||+e[1]<0)throw new TypeError(`ranges-apply: [THROW_ID_07] ranges array, second input arg. has ${a}th element, array ${JSON.stringify(e,null,0)}. Its second element is not an integer, string index, but ${typeof e[1]}, equal to: ${JSON.stringify(e[1],null,4)}.`);i[a][1]=+i[a][1]}c+=1});let o=b(i,{progressFn:e=>{r&&(t=10+Math.floor(e/10),t!==p&&(p=t,r(t)))}});w(o);let u=o.length;if(u>0){let e=s.slice(o[u-1][1]);s=o.reduce((a,$,l,y)=>{r&&(t=20+Math.floor(l/u*80),t!==p&&(p=t,r(t)));let g=l===0?0:y[l-1][1],d=y[l][0];return`${a}${s.slice(g,d)}${y[l][2]||\"\"}`},\"\"),s+=e}return s}export{_ as rApply,T as version};\n","/**\n * @name string-collapse-leading-whitespace\n * @fileoverview Collapse the leading and trailing whitespace of a string\n * @version 7.0.7\n * @author Roy Revelt, Codsen Ltd\n * @license MIT\n * {@link https://codsen.com/os/string-collapse-leading-whitespace/}\n */\n\nvar a=\"7.0.7\";var E=a;function D(n,u=1){let $=\"\\xA0\";function g(e){return Array.from(e).reverse().join(\"\")}function p(e,s,r){let t=r?`\n`:\"\\r\",i=r?\"\\r\":`\n`;if(!e)return e;let m=0,c=0,o=\"\";for(let l=0,f=e.length;l<f;l++)(e[l]===t||e[l]===i&&e[l-1]!==t)&&c++,`\\r\n`.includes(e[l])||e[l]===$?(m=0,e[l]===$?o+=e[l]:e[l]===t?c<=s&&(o+=e[l],e[l+1]===i&&(o+=e[l+1],l++)):e[l]===i&&e?.[l-1]!==t&&c<=s&&(o+=e[l])):(m++,!e[l+1]&&!c&&(o+=\" \"));return o}if(typeof n==\"string\"&&n.length){let e=1;typeof+u==\"number\"&&Number.isInteger(+u)&&+u>=0&&(e=+u);let s=\"\",r=\"\";if(!n.trim())s=n;else if(!n[0].trim()){for(let t=0,i=n.length;t<i;t++)if(n[t].trim()){s=n.slice(0,t);break}}if(n.trim()&&(n.slice(-1).trim()===\"\"||n.slice(-1)===$)){for(let t=n.length;t--;)if(n[t].trim()){r=n.slice(t+1);break}}return`${p(s,e,!1)}${n.trim()}${g(p(g(r),e,!0))}`}return n}export{D as collWhitespace,E as version};\n","/**\n * @name ranges-push\n * @fileoverview Gather string index ranges\n * @version 7.0.15\n * @author Roy Revelt, Codsen Ltd\n * @license MIT\n * {@link https://codsen.com/os/ranges-push/}\n */\n\nimport{collWhitespace as m}from\"string-collapse-leading-whitespace\";import{existy as a,isStr as u,isInt as g}from\"codsen-utils\";import{rSort as c}from\"ranges-sort\";var d=\"7.0.15\";var f={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function $(p,t){function r(e){return!!e&&typeof e==\"object\"&&!Array.isArray(e)}if(!Array.isArray(p)||!p.length)return null;let s;if(t)if(r(t)){if(s={...f,...t},s.progressFn&&r(s.progressFn)&&!Object.keys(s.progressFn).length)s.progressFn=null;else if(s.progressFn&&typeof s.progressFn!=\"function\")throw new Error(`ranges-merge: [THROW_ID_01] resolvedOpts.progressFn must be a function! It was given of a type: \"${typeof s.progressFn}\", equal to ${JSON.stringify(s.progressFn,null,4)}`);if(![1,2,\"1\",\"2\"].includes(s.mergeType))throw new Error(`ranges-merge: [THROW_ID_02] resolvedOpts.mergeType was customised to a wrong thing! It was given of a type: \"${typeof s.mergeType}\", equal to ${JSON.stringify(s.mergeType,null,4)}`);if(typeof s.joinRangesThatTouchEdges!=\"boolean\")throw new Error(`ranges-merge: [THROW_ID_04] resolvedOpts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: \"${typeof s.joinRangesThatTouchEdges}\", equal to ${JSON.stringify(s.joinRangesThatTouchEdges,null,4)}`)}else throw new Error(`emlint: [THROW_ID_03] the second input argument must be a plain object. It was given as:\n${JSON.stringify(t,null,4)} (type ${typeof t})`);else s={...f};let i=p.filter(e=>Array.isArray(e)).map(e=>[...e]).filter(e=>e[2]!==void 0||e[0]!==e[1]),n,o,l;s.progressFn?n=c(i,{progressFn:e=>{l=Math.floor(e/5),l!==o&&(o=l,s.progressFn(l))}}):n=c(i);let h=n.length-1;for(let e=h;e>0;e--)s.progressFn&&(l=Math.floor((1-e/h)*78)+21,l!==o&&l>o&&(o=l,s.progressFn(l))),(n[e][0]<=n[e-1][0]||!s.joinRangesThatTouchEdges&&n[e][0]<n[e-1][1]||s.joinRangesThatTouchEdges&&n[e][0]<=n[e-1][1])&&(n[e-1][0]=Math.min(n[e][0],n[e-1][0]),n[e-1][1]=Math.max(n[e][1],n[e-1][1]),n[e][2]!==void 0&&(n[e-1][0]>=n[e][0]||n[e-1][1]<=n[e][1])&&n[e-1][2]!==null&&(n[e][2]===null&&n[e-1][2]!==null?n[e-1][2]=null:n[e-1][2]!=null?+s.mergeType==2&&n[e-1][0]===n[e][0]?n[e-1][2]=n[e][2]:n[e-1][2]+=n[e][2]:n[e-1][2]=n[e][2]),n.splice(e,1),e=n.length);return n.length?n:null}var v=d,R={limitToBeAddedWhitespace:!1,limitLinebreaksCount:1,mergeType:1},y=class{constructor(t){let r={...R,...t};if(r.mergeType&&r.mergeType!==1&&r.mergeType!==2)if(u(r.mergeType)&&r.mergeType.trim()===\"1\")r.mergeType=1;else if(u(r.mergeType)&&r.mergeType.trim()===\"2\")r.mergeType=2;else throw new Error(`ranges-push: [THROW_ID_02] opts.mergeType was customised to a wrong thing! It was given of a type: \"${typeof r.mergeType}\", equal to ${JSON.stringify(r.mergeType,null,4)}`);this.opts=r,this.ranges=[]}ranges;opts;add(t,r,s){if(t==null&&r==null)return;if(a(t)&&!a(r)){if(Array.isArray(t)){if(t.length){if(t.some(o=>Array.isArray(o))){t.forEach(o=>{Array.isArray(o)&&this.add(...o)});return}t.length&&g(+t[0])&&g(+t[1])&&this.add(...t)}return}throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_12] the first input argument, \"from\" is set (${JSON.stringify(t,null,0)}) but second-one, \"to\" is not (${JSON.stringify(r,null,0)})`)}else if(!a(t)&&a(r))throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_13] the second input argument, \"to\" is set (${JSON.stringify(r,null,0)}) but first-one, \"from\" is not (${JSON.stringify(t,null,0)})`);let i=+t,n=+r;if(g(s)&&(s=String(s)),g(i)&&g(n)){if(a(s)&&!u(s)&&!g(s))throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_08] The third argument, the value to add, was given not as string but ${typeof s}, equal to:\n${JSON.stringify(s,null,4)}`);if(a(this.ranges)&&Array.isArray(this.last())&&i===this.last()[1]){if(this.last()[1]=n,this.last()[2],this.last()[2]!==null&&a(s)){let o=this.last()[2]&&this.last()[2].length&&(!this.opts?.mergeType||this.opts.mergeType===1)?`${this.last()[2]}${s}`:s;this.opts.limitToBeAddedWhitespace&&(o=m(o,this.opts.limitLinebreaksCount)),u(o)&&!o.length||(this.last()[2]=o)}}else{this.ranges||(this.ranges=[]);let o=s!==void 0&&!(u(s)&&!s.length)?[i,n,s&&this.opts.limitToBeAddedWhitespace?m(s,this.opts.limitLinebreaksCount):s]:[i,n];this.ranges.push(o)}}else throw g(i)&&i>=0?new TypeError(`ranges-push/Ranges/add(): [THROW_ID_10] \"to\" value, the second input argument, must be a natural number or zero! Currently it's of a type \"${typeof n}\" equal to: ${JSON.stringify(n,null,4)}`):new TypeError(`ranges-push/Ranges/add(): [THROW_ID_09] \"from\" value, the first input argument, must be a natural number or zero! Currently it's of a type \"${typeof i}\" equal to: ${JSON.stringify(i,null,4)}`)}push(t,r,s){this.add(t,r,s)}current(){return Array.isArray(this.ranges)&&this.ranges.length?(this.ranges=$(this.ranges,{mergeType:this.opts.mergeType}),this.ranges&&this.opts.limitToBeAddedWhitespace?this.ranges.map(t=>a(t[2])?[t[0],t[1],m(t[2],this.opts.limitLinebreaksCount)]:t):this.ranges):null}wipe(){this.ranges=[]}replace(t){if(Array.isArray(t)&&t.length)if(Array.isArray(t[0])&&g(t[0][0]))this.ranges=Array.from(t);else throw new Error(`ranges-push/Ranges/replace(): [THROW_ID_11] Single range was given but we expected array of arrays! The first element, ${JSON.stringify(t[0],null,4)} should be an array and its first element should be an integer, a string index.`);else this.ranges=[]}last(){return Array.isArray(this.ranges)&&this.ranges.length?this.ranges[this.ranges.length-1]:null}};export{y as Ranges,R as defaults,v as version};\n","/**\n * @name string-left-right\n * @fileoverview Looks up the first non-whitespace character to the left/right of a given index\n * @version 6.0.17\n * @author Roy Revelt, Codsen Ltd\n * @license MIT\n * {@link https://codsen.com/os/string-left-right/}\n */\n\nimport{isPlainObject as p,isStr as b,isInt as R}from\"codsen-utils\";import I from\"rfdc\";var S=\"6.0.17\";var $=I(),j=S,c=\"\\xA0\";function J(n){let e={value:n,hungry:!1,optional:!1};return(e.value.endsWith(\"?*\")||e.value.endsWith(\"*?\"))&&e.value.length>2?(e.value=e.value.slice(0,e.value.length-2),e.optional=!0,e.hungry=!0):e.value.endsWith(\"?\")&&e.value.length>1?(e.value=e.value.slice(0,~-e.value.length),e.optional=!0):e.value.endsWith(\"*\")&&e.value.length>1&&(e.value=e.value.slice(0,~-e.value.length),e.hungry=!0),e}function D({str:n,idx:e=0,stopAtNewlines:l=!1,stopAtRawNbsp:o=!1}){if(typeof n!=\"string\"||!n.length||((!e||typeof e!=\"number\")&&(e=0),!n[e+1]))return null;if(n[e+1]&&(n[e+1].trim()||l&&`\n\\r`.includes(n[e+1])||o&&n[e+1]===c))return e+1;if(n[e+2]&&(n[e+2].trim()||l&&`\n\\r`.includes(n[e+2])||o&&n[e+2]===c))return e+2;for(let t=e+1,m=n.length;t<m;t++)if(n[t].trim()||l&&`\n\\r`.includes(n[t])||o&&n[t]===c)return t;return null}function E(n,e=0){return D({str:n,idx:e,stopAtNewlines:!1,stopAtRawNbsp:!1})}function k(n,e){return D({str:n,idx:e,stopAtNewlines:!0,stopAtRawNbsp:!1})}function M(n,e){return D({str:n,idx:e,stopAtNewlines:!1,stopAtRawNbsp:!0})}function V({str:n,idx:e,stopAtNewlines:l,stopAtRawNbsp:o}){if(typeof n!=\"string\"||!n.length||((!e||typeof e!=\"number\")&&(e=0),e<1))return null;if(n[~-e]&&(n[~-e].trim()||l&&`\n\\r`.includes(n[~-e])||o&&n[~-e]===c))return~-e;if(n[e-2]&&(n[e-2].trim()||l&&`\n\\r`.includes(n[e-2])||o&&n[e-2]===c))return e-2;for(let t=e;t--;)if(n[t]&&(n[t].trim()||l&&`\n\\r`.includes(n[t])||o&&n[t]===c))return t;return null}function y(n,e=0){return V({str:n,idx:e,stopAtNewlines:!1,stopAtRawNbsp:!1})}function W(n,e){return V({str:n,idx:e,stopAtNewlines:!0,stopAtRawNbsp:!1})}function _(n,e){return V({str:n,idx:e,stopAtNewlines:!1,stopAtRawNbsp:!0})}function O(n,e,l,o,t){if(typeof e!=\"string\"||!e.length||(typeof l!=\"number\"&&(l=0),n===\"right\"&&!e[l+1]||n===\"left\"&&!e[~-l]))return null;let m=l,u=[],f,i,s,r=0;for(;r<t.length;){if(!b(t[r])||!t[r].length){r+=1;continue}let{value:a,optional:w,hungry:T}=J(t[r]),g=n===\"right\"?E(e,m):y(e,m);if(o.i&&e[g].toLowerCase()===a.toLowerCase()||!o.i&&e[g]===a){let N=n===\"right\"?E(e,g):y(e,g);T&&(o.i&&e[N].toLowerCase()===a.toLowerCase()||!o.i&&e[N]===a)?s=!0:r+=1,typeof g==\"number\"&&n===\"right\"&&g>m+1?u.push([m+1,g]):n===\"left\"&&typeof g==\"number\"&&g<~-m&&u.unshift([g+1,m]),m=g,n===\"right\"?(f===void 0&&(f=g),i=g):(i===void 0&&(i=g),f=g)}else if(w){r+=1;continue}else if(s){r+=1,s=void 0;continue}else return null}return f===void 0||i===void 0?null:{gaps:u,leftmostChar:f,rightmostChar:i}}var d={i:!1};function L(n,e,...l){if(!l?.length)throw new Error(\"string-left-right/leftSeq(): only two input arguments were passed! Did you intend to use left() method instead?\");let o;return p(l[0])?o={...d,...l.shift()}:o=d,O(\"left\",n,e,o,Array.from(l).reverse())}function A(n,e,...l){if(!l?.length)throw new Error(\"string-left-right/rightSeq(): only two input arguments were passed! Did you intend to use right() method instead?\");let o;return p(l[0])?o={...d,...l.shift()}:o=d,O(\"right\",n,e,o,l)}function h(n,e,l,o,t=[]){if(typeof e!=\"string\"||!e.length||((!l||typeof l!=\"number\")&&(l=0),n===\"right\"&&!e[l+1]||n===\"left\"&&+l==0))return null;let m=null,u=null;do m=n===\"right\"?A(e,typeof u==\"number\"?u:l,...t):L(e,typeof u==\"number\"?u:l,...t),m!==null&&(u=n===\"right\"?m.rightmostChar:m.leftmostChar);while(m);if(u!=null&&n===\"right\"&&(u+=1),u===null)return null;if(n===\"right\"){if(e[u]?.trim())return u;let i=E(e,u);if(!o||o.mode===0){if(i===u+1)return u;if(e.slice(u,i||e.length).trim()||e.slice(u,i||e.length).includes(`\n`)||e.slice(u,i||e.length).includes(\"\\r\")){for(let s=u,r=e.length;s<r;s++)if(`\n\\r`.includes(e[s]))return s}else return i?~-i:e.length}else{if(o.mode===1)return u;if(o.mode===2){let s=e.slice(u);if(s.trim()||s.includes(`\n`)||s.includes(\"\\r\")){for(let r=u,a=e.length;r<a;r++)if(e[r].trim()||`\n\\r`.includes(e[r]))return r}return e.length}}return i||e.length}if(e[u]&&e[~-u]?.trim())return u;let f=y(e,u);if(!o||o.mode===0){if(f===u-2)return u;if(e.slice(0,u).trim()||e.slice(0,u).includes(`\n`)||e.slice(0,u).includes(\"\\r\")){for(let i=u;i--;)if(`\n\\r`.includes(e[i])||e[i].trim())return i+1+(e[i].trim()?1:0)}return 0}if(o.mode===1)return u;if(o.mode===2){let i=e.slice(0,u);if(i.trim()||i.includes(`\n`)||i.includes(\"\\r\")){for(let s=u;s--;)if(e[s].trim()||`\n\\r`.includes(e[s]))return s+1}return 0}return f!==null?f+1:0}function H(n,e,...l){if(!l.length||l.length===1&&p(l[0]))return null;let o={mode:0};if(p(l[0])){let t={...o,...$(l[0])};if(!t.mode)t.mode=0;else if(b(t.mode)&&t.mode.length===1&&\"0123\".includes(t.mode))t.mode=+t.mode;else if(!R(t.mode))throw new Error(`string-left-right/chompLeft(): [THROW_ID_01] the opts.mode is wrong! It should be 0, 1, 2 or 3. It was given as ${t.mode} (type ${typeof t.mode})`);return h(\"left\",n,e,t,$(l).slice(1))}return b(l[0])?h(\"left\",n,e,o,$(l)):h(\"left\",n,e,o,$(l).slice(1))}function P(n,e,...l){if(!l.length||l.length===1&&p(l[0]))return null;let o={mode:0};if(p(l[0])){let t={...o,...$(l[0])};if(!t.mode)t.mode=0;else if(b(t.mode)&&\"0123\".includes(t.mode))t.mode=Number.parseInt(t.mode,10);else if(!R(t.mode))throw new Error(`string-left-right/chompRight(): [THROW_ID_02] the opts.mode is wrong! It should be 0, 1, 2 or 3. It was given as ${t.mode} (type ${typeof t.mode})`);return h(\"right\",n,e,t,$(l).slice(1))}return b(l[0])?h(\"right\",n,e,o,$(l)):h(\"right\",n,e,o,$(l).slice(1))}export{H as chompLeft,P as chompRight,y as left,L as leftSeq,W as leftStopAtNewLines,_ as leftStopAtRawNbsp,E as right,A as rightSeq,k as rightStopAtNewLines,M as rightStopAtRawNbsp,j as version};\n","/**\n * @name string-strip-html\n * @fileoverview Strip HTML tags from strings. No parser, accepts mixed sources.\n * @version 13.4.8\n * @author Roy Revelt, Codsen Ltd\n * @license MIT\n * {@link https://codsen.com/os/string-strip-html/}\n */\n\nimport{isPlainObject as se,hasOwnProp as me}from\"codsen-utils\";import{trim as oe,without as ce}from\"lodash-es\";import{decode as ie}from\"html-entities\";import{rApply as be}from\"ranges-apply\";import{Ranges as pe}from\"ranges-push\";import{right as T}from\"string-left-right\";function ee(t){return/[-_A-Za-z0-9]/.test(t)}function G(t,m){if(!t)return[];if(Array.isArray(t))return t.filter(y=>typeof y==\"string\"&&y.trim());if(typeof t==\"string\")return t.trim()?[t]:[];throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_05] ${m} must be array containing zero or more strings or something falsey. Currently it's equal to: ${t}, that a type of ${typeof t}.`)}function j(t,m,y,c){for(let f=m,b=t.length;f<b;f++){if(t.startsWith(y,f))return!0;if(t.startsWith(c,f))return!1}return!1}function Y(t,m,y){let c=!t?.quotes,f=!!t?.quotes?.value&&!j(m,y+1,t.quotes.value,\">\"),b=t?.quotes?.next!==-1,$=!j(m,t?.quotes?.next-1,t?.quotes?.value,\">\");return!t?.quotes||!j(m,y+1,t.quotes.value,\">\")&&t?.quotes?.next!==-1&&j(m,t?.quotes?.next-1,t?.quotes?.value,\">\")}function ne(t,m){return(m.match(new RegExp(t,\"g\"))||[]).length}var P=new Set([\"!doctype\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"base\",\"bdi\",\"bdo\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"doctype\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"math\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"param\",\"picture\",\"pre\",\"progress\",\"rb\",\"rp\",\"rt\",\"rtc\",\"ruby\",\"samp\",\"script\",\"section\",\"select\",\"slot\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"svg\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"ul\",\"var\",\"video\",\"wbr\",\"xml\"]),x=new Set([\"a\",\"b\",\"i\",\"p\",\"q\",\"s\",\"u\"]),q=new Set([\".\",\",\",\";\",\"!\",\"?\"]),Q=new Set([\".\",\",\",\"?\",\";\",\")\",\"\\u2026\",'\"',\"\\xBB\"]),te=new Set([\"a\",\"abbr\",\"acronym\",\"audio\",\"b\",\"bdi\",\"bdo\",\"big\",\"button\",\"canvas\",\"cite\",\"code\",\"data\",\"datalist\",\"del\",\"dfn\",\"em\",\"embed\",\"i\",\"iframe\",\"input\",\"ins\",\"kbd\",\"label\",\"map\",\"mark\",\"meter\",\"noscript\",\"object\",\"output\",\"picture\",\"progress\",\"q\",\"ruby\",\"s\",\"samp\",\"select\",\"slot\",\"small\",\"span\",\"strong\",\"sub\",\"sup\",\"svg\",\"template\",\"textarea\",\"time\",\"u\",\"tt\",\"var\",\"video\",\"wbr\"]);var le=\"13.4.8\";var Ne=le,ae={ignoreTags:[],ignoreTagsWithTheirContents:[],onlyStripTags:[],stripTogetherWithTheirContents:[\"script\",\"style\",\"xml\"],skipHtmlDecoding:!1,trimOnlySpaces:!1,stripRecognisedHTMLOnly:!1,dumpLinkHrefsNearby:{enabled:!1,putOnNewLine:!1,wrapHeads:\"\",wrapTails:\"\"},ignoreIndentations:!1,cb:null,reportProgressFunc:null,reportProgressFuncFrom:0,reportProgressFuncTo:100};function fe(t,m){let y=Date.now(),c=[],f=[],b=[],$=[],n={};function re(){n={attributes:[]}}re();let V=null,w=null,N=null,J=!1,o={},d={tagName:\"\",hrefValue:\"\",openingTagEnds:void 0},E=\"\",C=!1,B=null,F=!0;function v(e,s,a){if(Array.isArray(s.stripTogetherWithTheirContents)&&(s.stripTogetherWithTheirContents.includes(n.name)||s.stripTogetherWithTheirContents.includes(\"*\")))if(n.slashPresent&&Array.isArray(c)&&c.some(i=>i.name===n.name)){for(let i=c.length;i--;)if(c[i].name===n.name){$=$.filter(([u,p])=>(u<c[i].lastOpeningBracketAt||u>=e+1)&&(p<=c[i].lastOpeningBracketAt||p>e+1));let g=e+1;n.lastClosingBracketAt&&(g=n.lastClosingBracketAt+1),$.push([c[i].lastOpeningBracketAt,g]),Q.has(t[e])&&s.cb?s.cb({tag:n,deleteFrom:c[i].lastOpeningBracketAt,deleteTo:e+1,insert:null,rangesArr:a,proposedReturn:[c[i].lastOpeningBracketAt,e,null]}):s.cb&&s.cb({tag:n,deleteFrom:c[i].lastOpeningBracketAt,deleteTo:e,insert:\"\",rangesArr:a,proposedReturn:[c[i].lastOpeningBracketAt,e,\"\"]}),c.splice(i,1);break}}else n.slashPresent||c.push(n);else Array.isArray(s.ignoreTagsWithTheirContents)&&M(e,s,n)&&(F=!1)}function L(e,s,a,i,g,u){if(Array.isArray(r.current())&&typeof a==\"number\"&&r.current()[0][0]===0&&r.current()[0][1]>=a)return\"\";if(t.length===i&&u&&!l?.dumpLinkHrefsNearby?.enabled)return null;let p=\"\";if(Number.isInteger(a)&&a<g&&(p+=e.slice(a,g)),Number.isInteger(i)&&i>u+1){let D=e.slice(u+1,i);i&&!T(t,i-1)&&(D=D.trimEnd()),D.includes(`\n`)&&S(i,e)?p+=\" \":p+=D}let W=!Q.has(e[s]),Z=e[i-1]!==\">\"||!e[a].trim(),X=!['\"',\"(\"].includes(e[g-1]),ge=![\";\",\".\",\":\",\"!\"].includes(e[s]);if((W||Z&&X&&ge)&&(Z||X)&&e[s]!==\"!\"&&(!te.has(n.name)||typeof a==\"number\"&&a<g||typeof i==\"number\"&&i>u+1)){let D=p.match(/\\n/g);return Array.isArray(D)&&D.length?D.length===1?`\n`:D.length===2?`\n\n`:`\n\n\n`:\" \"}return\"\"}function U(e,s){if(e.dumpLinkHrefsNearby?.enabled&&d.tagName&&d.tagName===n.name&&n.lastOpeningBracketAt&&(d.openingTagEnds&&n.lastOpeningBracketAt>d.openingTagEnds||!d.openingTagEnds)&&(C=!0),C){let a=e.dumpLinkHrefsNearby?.putOnNewLine?`\n\n`:\"\";E=`${a}${d.hrefValue}`,(typeof s!=\"number\"||T(t,s-1))&&(E+=a)}}function S(e,s){return s?s[e]===\"<\"&&s[e+1]!==\"%\":t[e]===\"<\"&&t[e+1]!==\"%\"}function A(e){return t[e]===\">\"&&t[e-1]!==\"%\"}function M(e,s,a){if(s.ignoreTagsWithTheirContents.includes(\"*\"))return!0;let i=t.indexOf(`<${a.name}`,e),g=t.indexOf(`</${a.name}`,e);return!a.slashPresent&&g===-1||a.slashPresent&&!f.some(u=>u.name===a.name)||g>-1&&i>-1&&i<g?!1:s.ignoreTagsWithTheirContents.includes(a.name)}if(typeof t!=\"string\")throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_01] Input must be string! Currently it's: ${(typeof t).toLowerCase()}, equal to:\n${JSON.stringify(t,null,4)}`);if(m)if(se(m)){if(m.reportProgressFunc&&typeof m.reportProgressFunc!=\"function\")throw new Error(`string-strip-html/stripHtml(): [THROW_ID_03] The Optional Options Object's key reportProgressFunc, callback function, should be a function but it was given as type ${typeof m.reportProgressFunc}, equal to ${JSON.stringify(m.reportProgressFunc,null,4)}`);if(typeof m.dumpLinkHrefsNearby==\"boolean\"&&m.dumpLinkHrefsNearby!=null)throw new Error(`string-strip-html/stripHtml(): [THROW_ID_04] The Optional Options Object's key should be a plain object but it was given as type ${typeof m.dumpLinkHrefsNearby}, equal to ${JSON.stringify(m.dumpLinkHrefsNearby,null,4)}`)}else throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_02] Optional Options Object must be a plain object! Currently it's: ${(typeof m).toLowerCase()}, equal to:\n${JSON.stringify(m,null,4)}`);function _(){C&&(d={tagName:\"\",hrefValue:\"\",openingTagEnds:void 0},C=!1)}let l={...ae,...m,dumpLinkHrefsNearby:Object.assign({},ae.dumpLinkHrefsNearby,m?.dumpLinkHrefsNearby)};if(me(l,\"returnRangesOnly\"))throw new TypeError(\"string-strip-html/stripHtml(): [THROW_ID_05] The Optional Options Object's key returnRangesOnly has been removed from the API since v.5 release.\");if(l.reportProgressFunc){if(typeof l.reportProgressFuncFrom!=\"number\")throw new Error(`string-strip-html/stripHtml(): [THROW_ID_06] The Optional Options Object's key reportProgressFuncFrom, callback function's \"from\" range, should be a number but it was given as type ${typeof l.reportProgressFuncFrom}, equal to ${JSON.stringify(l.reportProgressFuncFrom,null,4)}`);if(typeof l.reportProgressFuncTo!=\"number\")throw new Error(`string-strip-html/stripHtml(): [THROW_ID_07] The Optional Options Object's key reportProgressFuncTo, callback function's \"to\" range, should be a number but it was given as type ${typeof l.reportProgressFuncTo}, equal to ${JSON.stringify(l.reportProgressFuncTo,null,4)}`)}l.ignoreTags=G(l.ignoreTags,\"resolvedOpts.ignoreTags\"),l.onlyStripTags=G(l.onlyStripTags,\"resolvedOpts.onlyStripTags\");let z=!!l.onlyStripTags.length;l.onlyStripTags.length&&l.ignoreTags.length&&(l.onlyStripTags=ce(l.onlyStripTags,...l.ignoreTags)),l.stripTogetherWithTheirContents?typeof l.stripTogetherWithTheirContents==\"string\"&&l.stripTogetherWithTheirContents.length&&(l.stripTogetherWithTheirContents=[l.stripTogetherWithTheirContents]):l.stripTogetherWithTheirContents=[];let I={};if(l.stripTogetherWithTheirContents&&Array.isArray(l.stripTogetherWithTheirContents)&&l.stripTogetherWithTheirContents.length&&!l.stripTogetherWithTheirContents.every((e,s)=>typeof e!=\"string\"?(I.el=e,I.i=s,!1):!0))throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_08] Optional Options Object's key stripTogetherWithTheirContents was set to contain not just string elements! For example, element at index ${I.i} has a value ${I.el} which is not string but ${(typeof I.el).toLowerCase()}.`);l.cb||(l.cb=({rangesArr:e,proposedReturn:s})=>{s&&e.push(...s)});let r=new pe({limitToBeAddedWhitespace:!0,limitLinebreaksCount:2});if(!l.skipHtmlDecoding)for(;t!==ie(t,{scope:\"strict\"});)t=ie(t,{scope:\"strict\"});let R=!1,k=!1,H=0,K=0,h=t.length,ue=Math.floor(h/2);for(let e=0;e<h;e++){if(l.reportProgressFunc&&(h>1e3&&h<2e3?e===ue&&l.reportProgressFunc(Math.floor((l.reportProgressFuncTo-l.reportProgressFuncFrom)/2)):h>=2e3&&(H=l.reportProgressFuncFrom+Math.floor(e/h*(l.reportProgressFuncTo-l.reportProgressFuncFrom)),H!==K&&(K=H,l.reportProgressFunc(H)))),Object.keys(n).length>1&&n.lastClosingBracketAt&&n.lastClosingBracketAt<e&&t[e]!==\" \"&&B===null&&(B=e),!R&&t[e]===\"%\"&&t[e-1]===\"{\"&&t.includes(\"%}\",e+1)){N=null;let s=t.indexOf(\"%}\",e)-1;if(s>e){e=s;continue}}if(!R&&A(e)&&(!n||Object.keys(n).length<2)&&e>1){for(let s=e;s--;)if(t[s-1]===void 0||A(s)){let a=t[s-1]===void 0?s:s+1,i=t.slice(a,e+1)||\"\";if((i.includes(\"/>\")||i.includes(\"/ >\")||i.includes('=\"')||i.includes(\"='\"))&&t!==`<${oe(i.trim(),\"/>\")}>`&&[...P].some(g=>oe(i.trim().split(/\\s+/).filter(u=>u.trim()).filter((u,p)=>p===0),\"/>\").toLowerCase()===g)&&fe(`<${i.trim()}>`,l).result===\"\"){(!b.length||b[b.length-1][0]!==n.lastOpeningBracketAt)&&b.push([a,e+1]),(!$.length||$[$.length-1][0]!==n.lastOpeningBracketAt)&&$.push([a,e+1]);let g=L(t,e,a,e+1,a,e+1),u=e+1;if(t[u]&&!t[u].trim()){for(let p=u;p<h;p++)if(t[p].trim()){u=p;break}}l.cb({tag:n,deleteFrom:a,deleteTo:u,insert:g,rangesArr:r,proposedReturn:[a,u,g]})}break}}if(!k&&t[e]===\"/\"&&!n.quotes?.value&&Number.isInteger(n.lastOpeningBracketAt)&&!Number.isInteger(n.lastClosingBracketAt)&&(n.slashPresent=e),t[e]==='\"'||t[e]===\"'\")if(!k&&n.nameStarts&&n?.quotes?.value===t[e])if(o.valueStarts===void 0)o={},delete n.quotes;else{o.valueEnds=e,o.value=t.slice(o.valueStarts,e),n.attributes.push(o),o={},delete n.quotes;let s;l.dumpLinkHrefsNearby?.enabled&&!c.length&&n.attributes.some(a=>{if(typeof a.name==\"string\"&&a.name.toLowerCase()===\"href\")return s=`${l.dumpLinkHrefsNearby?.wrapHeads||\"\"}${a.value}${l.dumpLinkHrefsNearby?.wrapTails||\"\"}`,!0})&&(d={tagName:n.name,hrefValue:s,openingTagEnds:void 0})}else!k&&!n.quotes&&n.nameStarts&&(n.quotes={},n.quotes.value=t[e],n.quotes.start=e,n.quotes.next=t.indexOf(t[e],e+1),o.nameStarts&&o.nameEnds&&o.nameEnds<e&&o.nameStarts<e&&!o.valueStarts&&(o.name=t.slice(o.nameStarts,o.nameEnds)));if(n.nameStarts!==void 0&&n.nameEnds===void 0&&(!t[e].trim()||!ee(t[e]))){if(n.nameEnds=e,n.name=t.slice(n.nameStarts,n.nameEnds+(!A(e)&&t[e]!==\"/\"&&t[e+1]===void 0?1:0)),t[n.nameStarts-1]!==\"!\"&&!n.name.replace(/-/g,\"\").length||/^\\d+$/.test(n.name[0])){n={};continue}if(typeof n.name==\"string\"&&n.name.toLowerCase()===\"doctype\"&&(k=!0),S(e)){U(l);let s=L(t,e,n.leftOuterWhitespace,e,n.lastOpeningBracketAt,e);(l.stripTogetherWithTheirContents.includes(n.name)||l.stripTogetherWithTheirContents.includes(\"*\"))&&($=$.filter(([a,i])=>!(a===n.leftOuterWhitespace&&i===e))),l.cb({tag:n,deleteFrom:n.leftOuterWhitespace,deleteTo:e,insert:`${s}${E}${s}`,rangesArr:r,proposedReturn:[n.leftOuterWhitespace,e,`${s}${E}${s}`]}),_(),v(e,l,r)}}if(n.quotes?.start&&n.quotes.start<e&&!n.quotes.end&&o.nameEnds&&o.equalsAt&&!o.valueStarts&&(o.valueStarts=e),!n.quotes&&o.nameEnds&&t[e]===\"=\"&&!o.valueStarts&&!o.equalsAt&&(o.equalsAt=e),!n.quotes&&o.nameStarts&&o.nameEnds&&!o.valueStarts&&t[e].trim()&&t[e]!==\"=\"&&(n.attributes.push(o),o={}),!n.quotes&&o.nameStarts&&!o.nameEnds&&(k&&`'\"`.includes(t[o.nameStarts])?o.nameStarts<e&&t[e]===t[o.nameStarts]&&(o.nameEnds=e+1,o.name=t.slice(o.nameStarts,o.nameEnds)):t[e].trim()?t[e]===\"=\"?o.equalsAt||(o.nameEnds=e,o.equalsAt=e,o.name=t.slice(o.nameStarts,o.nameEnds)):t[e]===\"/\"||A(e)?(o.nameEnds=e,o.name=t.slice(o.nameStarts,o.nameEnds),n.attributes.push(o),o={}):S(e)&&(o.nameEnds=e,o.name=t.slice(o.nameStarts,o.nameEnds),n.attributes.push(o),o={}):(o.nameEnds=e,o.name=t.slice(o.nameStarts,o.nameEnds))),!n.quotes&&n.nameEnds<e&&!t[e-1].trim()&&t[e].trim()&&!\"<>/!\".includes(t[e])&&!o.nameStarts&&!n.lastClosingBracketAt&&(o.nameStarts=e),n.lastOpeningBracketAt!==null&&n.lastOpeningBracketAt<e&&t[e]===\"/\"&&n.onlyPlausible&&(n.onlyPlausible=!1),n.lastOpeningBracketAt!==null&&n.lastOpeningBracketAt<e&&t[e]!==\"/\"&&(n.onlyPlausible===void 0&&((!t[e].trim()||S(e))&&!n.slashPresent?n.onlyPlausible=!0:n.onlyPlausible=!1),t[e].trim()&&n.nameStarts===void 0&&!S(e)&&t[e]!==\"/\"&&!A(e)&&t[e]!==\"!\"&&(n.nameStarts=e,n.nameContainsLetters=!1)),n.nameStarts&&!n.quotes&&typeof t[e]==\"string\"&&t[e].toLowerCase()!==t[e].toUpperCase()&&(n.nameContainsLetters=!0),A(e)&&(Y(n,t,e)||n.quotes.value&&typeof n.lastOpeningBracketAt==\"number\"&&ne(n.quotes.value,t.slice(n.lastOpeningBracketAt,e))%2===1&&!t.slice(n.lastOpeningBracketAt+1,e).includes(\"<\")&&!t.slice(n.lastOpeningBracketAt+1,e).includes(\">\"))&&n.lastOpeningBracketAt!==void 0&&(n.lastClosingBracketAt=e,B=null,Object.keys(o).length&&(n.attributes.push(o),o={}),l.dumpLinkHrefsNearby?.enabled&&d.tagName&&!d.openingTagEnds&&(d.openingTagEnds=e)),(!k||t[e]===\">\")&&n.lastOpeningBracketAt!==void 0){if(n.lastClosingBracketAt===void 0){if(n.lastOpeningBracketAt<e&&!S(e)&&(t[e+1]===void 0||S(e+1)&&!n?.quotes?.value)&&n.nameContainsLetters&&typeof n.nameStarts==\"number\"){if(n.name=t.slice(n.nameStarts,n.nameEnds||e+1).toLowerCase(),(!b.length||b[b.length-1][0]!==n.lastOpeningBracketAt)&&b.push([n.lastOpeningBracketAt,e+1]),l.ignoreTags.includes(n.name)||M(e,l,n)||!P.has(n.name)&&(n.onlyPlausible||l.stripRecognisedHTMLOnly)){n={},o={};continue}if((P.has(n.name)||x.has(n.name))&&(n.onlyPlausible===!1||n.onlyPlausible===!0&&n.attributes.length)||t[e+1]===void 0){U(l);let s=L(t,e,n.leftOuterWhitespace,e+1,n.lastOpeningBracketAt,n.lastClosingBracketAt);R&&n.name===\"script\"&&n.slashPresent&&(R=!1);let a;s===null||E===null?a=null:a=`${s}${E}${s}`,l.cb({tag:n,deleteFrom:n.leftOuterWhitespace,deleteTo:e+1,insert:a,rangesArr:r,proposedReturn:[n.leftOuterWhitespace,e+1,a]}),_(),v(e,l,r)}if(!$.length||$[$.length-1][0]!==n.lastOpeningBracketAt&&$[$.length-1][1]!==e+1)if(l.stripTogetherWithTheirContents.includes(n.name)||l.stripTogetherWithTheirContents.includes(\"*\")){let s;for(let a=c.length;a--;)c[a].name===n.name&&(s=c[a]);s?($=$.filter(([a])=>a!==s.lastOpeningBracketAt),$.push([s.lastOpeningBracketAt,e+1])):$.push([n.lastOpeningBracketAt,e+1])}else $.push([n.lastOpeningBracketAt,e+1])}}else if(e>n.lastClosingBracketAt&&t[e].trim()||t[e+1]===void 0||l.ignoreIndentations&&`\\r\n`.includes(t[e])){let s=n.lastClosingBracketAt===e?e+1:e;l.trimOnlySpaces&&s===h-1&&B!==null&&B<e&&(s=B),(!b.length||b[b.length-1][0]!==n.lastOpeningBracketAt)&&b.push([n.lastOpeningBracketAt,n.lastClosingBracketAt+1]);let a=l.ignoreTags.includes(n.name),i=M(e,l,n);if(!F||l.stripRecognisedHTMLOnly&&typeof n.name==\"string\"&&!P.has(n.name.toLowerCase())&&!x.has(n.name.toLowerCase())||!z&&(a||i)||z&&!l.onlyStripTags.includes(n.name)||l.ignoreTagsWithTheirContents.includes(n.name)){if(i)if(n.slashPresent){for(let g=f.length;g--;)if(f[g].name===n.name){f.splice(g,1);break}f.length||(F=!0)}else F&&(F=!1),f.push(n);l.cb({tag:n,deleteFrom:null,deleteTo:null,insert:null,rangesArr:r,proposedReturn:null}),n={},o={}}else if(!n.onlyPlausible||n.attributes.length===0&&n.name&&(P.has(n.name.toLowerCase())||x.has(n.name.toLowerCase()))||n.attributes?.some(g=>g.equalsAt)){(!$.length||$[$.length-1][0]!==n.lastOpeningBracketAt)&&$.push([n.lastOpeningBracketAt,n.lastClosingBracketAt+1]);let g=L(t,e,n.leftOuterWhitespace,s,n.lastOpeningBracketAt,n.lastClosingBracketAt);E=\"\",C=!1,U(l,s);let u;typeof E==\"string\"&&E.length?(u=`${g}${E}${g===`\n\n`?`\n`:g}`,s===n.lastClosingBracketAt+1&&(!t[s]||!q.has(t[s]))&&(u+=\" \"),n.leftOuterWhitespace===n.lastOpeningBracketAt&&r.last()&&r.last()[1]<n.lastOpeningBracketAt&&(!l?.dumpLinkHrefsNearby?.putOnNewLine||!q.has(t[s]))&&(u=\" \"+u)):u=g,u!==null&&(n.leftOuterWhitespace===0||!T(t,s-1))&&(!l.dumpLinkHrefsNearby?.enabled||n.name!==\"a\")&&(u=void 0);let p=0;if(C&&q.has(t[s])){l.dumpLinkHrefsNearby?.putOnNewLine&&(u=`${t[s]}${u||\"\"}`);let W=T(t,s);W&&u?.endsWith(`\n`)?p+=W-e:(!W||W>e)&&p++}l.cb({tag:n,deleteFrom:n.leftOuterWhitespace,deleteTo:s+p,insert:u,rangesArr:r,proposedReturn:[n.leftOuterWhitespace,s+p,u]}),_(),v(e,l,r)}else n={};A(e)||(n={})}k&&(k=!1)}if((!R||t[e]===\"<\"&&T(t,T(t,e))&&t[T(t,e)]===\"/\"&&t.startsWith(\"script\",T(t,T(t,e))))&&S(e)&&!S(e-1)&&!`'\"`.includes(t[e+1])&&(!`'\"`.includes(t[e+2])||/\\w/.test(t[e+1]))&&!(t[e+1]===\"c\"&&t[e+2]===\":\")&&!(t[e+1]===\"f\"&&t[e+2]===\"m\"&&t[e+3]===\"t\"&&t[e+4]===\":\")&&!(t[e+1]===\"s\"&&t[e+2]===\"q\"&&t[e+3]===\"l\"&&t[e+4]===\":\")&&!(t[e+1]===\"x\"&&t[e+2]===\":\")&&!(t[e+1]===\"f\"&&t[e+2]===\"n\"&&t[e+3]===\":\")&&Y(n,t,e)){if(A(T(t,e)))continue;if(n.nameEnds&&n.nameEnds<e&&!n.lastClosingBracketAt&&(n.onlyPlausible===!0&&n.attributes?.length||n.onlyPlausible===!1)){let s=L(t,e,n.leftOuterWhitespace,e,n.lastOpeningBracketAt,e);l.cb({tag:n,deleteFrom:n.leftOuterWhitespace,deleteTo:e,insert:s,rangesArr:r,proposedReturn:[n.leftOuterWhitespace,e,s]}),v(e,l,r),n={},o={}}if(n.lastOpeningBracketAt!==void 0&&n.onlyPlausible&&n.name&&!n.quotes&&(n.lastOpeningBracketAt=void 0,n.name=void 0,n.onlyPlausible=!1),(n.lastOpeningBracketAt===void 0||!n.onlyPlausible)&&!n.quotes&&(n.lastOpeningBracketAt=e,n.slashPresent=!1,n.attributes=[],V===null?n.leftOuterWhitespace=e:l.trimOnlySpaces&&V===0?n.leftOuterWhitespace=w||e:n.leftOuterWhitespace=V,`${t[e+1]}${t[e+2]}${t[e+3]}`==\"!--\"||`${t[e+1]}${t[e+2]}${t[e+3]}${t[e+4]}${t[e+5]}${t[e+6]}${t[e+7]}${t[e+8]}`==\"![CDATA[\")){let s=!0;t[e+2]===\"-\"&&(s=!1);let a;for(let i=e;i<h;i++)if((!a&&s&&`${t[i-2]}${t[i-1]}${t[i]}`==\"]]>\"||!s&&`${t[i-2]}${t[i-1]}${t[i]}`==\"-->\")&&(a=i),a&&(a<i&&t[i].trim()||t[i+1]===void 0)){let g=i;(t[i+1]===void 0&&!t[i].trim()||t[i]===\">\")&&(g+=1),(!b.length||b[b.length-1][0]!==n.lastOpeningBracketAt)&&b.push([n.lastOpeningBracketAt,a+1]),(!$.length||$[$.length-1][0]!==n.lastOpeningBracketAt)&&$.push([n.lastOpeningBracketAt,a+1]);let u=L(t,i,n.leftOuterWhitespace,g,n.lastOpeningBracketAt,a);l.cb({tag:n,deleteFrom:n.leftOuterWhitespace,deleteTo:g,insert:u,rangesArr:r,proposedReturn:[n.leftOuterWhitespace,g,u]}),e=i-1,t[i]===\">\"&&(e=i),n={},o={};break}}}!t[e].trim()||t[e].charCodeAt(0)===847?(V===null&&(V=e,n.lastOpeningBracketAt!==void 0&&n.lastOpeningBracketAt<e&&n.nameStarts&&n.nameStarts<n.lastOpeningBracketAt&&e===n.lastOpeningBracketAt+1&&!c.some(s=>s.name===n.name)&&(n.onlyPlausible=!0,n.name=void 0,n.nameStarts=void 0)),(t[e]===`\n`||t[e]===\"\\r\")&&(N=e,J&&(J=!1))):(V!==null&&(!n.quotes&&o.equalsAt>V-1&&o.nameEnds&&o.equalsAt>o.nameEnds&&t[e]!=='\"'&&t[e]!==\"'\"&&(se(o)&&n.attributes.push(o),o={},n.equalsSpottedAt=void 0),V=null),J||(J=!0,F&&!R&&typeof N==\"number\"&&e&&N<e-1&&(t.slice(N+1,e).trim()?N=null:l.ignoreIndentations||r.push([N+1,e])))),t[e]===\" \"?w===null&&(w=e):w!==null&&(w=null),n.name===\"script\"&&(R=!n.slashPresent)}if(t&&!l.ignoreIndentations&&(l.trimOnlySpaces&&t[0]===\" \"||!l.trimOnlySpaces&&!t[0].trim()))for(let e=0;e<h;e++)if(l.trimOnlySpaces&&t[e]!==\" \"||!l.trimOnlySpaces&&t[e].trim()){r.push([0,e]);break}else t[e+1]||r.push([0,e+1]);if(t&&(l.trimOnlySpaces&&t[~-t.length]===\" \"||!l.trimOnlySpaces&&!t[~-t.length].trim())){for(let e=t.length;e--;)if(l.trimOnlySpaces&&t[e]!==\" \"||!l.trimOnlySpaces&&t[e].trim()){r.push([e+1,h]);break}}let O=r.current();if(!m?.cb&&O){if(O[0]&&!O[0][0]){let e=O[0][1];r.ranges[0]=[r.ranges[0][0],r.ranges[0][1]]}if(O[O.length-1]&&O[O.length-1][1]===t.length){let e=O[O.length-1][0];if(r.ranges){let s=r.ranges[r.ranges.length-1][0];t[s-1]&&(l.trimOnlySpaces&&t[s-1]===\" \"||!l.trimOnlySpaces&&!t[s-1].trim())&&(s-=1);let a=r.ranges[r.ranges.length-1][2];r.ranges[r.ranges.length-1]=[s,r.ranges[r.ranges.length-1][1]],a?.trim()&&r.ranges[r.ranges.length-1].push(a.trimEnd())}}}return{log:{timeTakenInMilliseconds:Date.now()-y},result:be(t,r.current()),ranges:r.current(),allTagLocations:b,filteredTagLocations:$}}export{ae as defaults,fe as stripHtml,Ne as version};\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)\n * are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,\n * as-is, to `callback` when the throttled-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds\n * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed\n * one final time after the last throttled-function call. (After the throttled-function has not been called for\n * `delay` milliseconds, the internal counter is reset).\n * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback\n * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that\n * callback will never executed if both noLeading = true and noTrailing = true.\n * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is\n * false (at end), schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nfunction throttle (delay, callback, options) {\n var _ref = options || {},\n _ref$noTrailing = _ref.noTrailing,\n noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,\n _ref$noLeading = _ref.noLeading,\n noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,\n _ref$debounceMode = _ref.debounceMode,\n debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n\n\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel(options) {\n var _ref2 = options || {},\n _ref2$upcomingOnly = _ref2.upcomingOnly,\n upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;\n\n clearExistingTimeout();\n cancelled = !upcomingOnly;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {\n arguments_[_key] = arguments[_key];\n }\n\n var self = this;\n var elapsed = Date.now() - lastExec;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, arguments_);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (!noLeading && debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`\n * and noLeading != true.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n if (noLeading) {\n /*\n * In throttle mode with noLeading, if `delay` time has\n * been exceeded, update `lastExec` and schedule `callback`\n * to execute after `delay` ms.\n */\n lastExec = Date.now();\n\n if (!noTrailing) {\n timeoutID = setTimeout(debounceMode ? clear : exec, delay);\n }\n } else {\n /*\n * In throttle mode without noLeading, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n }\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n *\n * @returns {Function} A new, debounced function.\n */\n\nfunction debounce (delay, callback, options) {\n var _ref = options || {},\n _ref$atBegin = _ref.atBegin,\n atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;\n\n return throttle(delay, callback, {\n debounceMode: atBegin !== false\n });\n}\n\nexport { debounce, throttle };\n//# sourceMappingURL=index.js.map\n"],"names":["aliases","unicode","svgPathData","exports","prefix","iconName","icon","obj","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","_react","_react2","__esModule","default","_ref","_ref$fill","fill","undefined","_ref$width","width","_ref$height","height","_ref$style","style","props","keys","indexOf","_objectWithoutProperties","createElement","viewBox","d","LexicalDragon","module","g","registerDragonSupport","m","t","window","location","origin","r","l","h","getRootElement","document","activeElement","data","a","JSON","parse","k","protocol","type","payload","functionId","args","n","p","q","u","update","f","$getSelection","$isRangeSelection","e","anchor","b","getNode","c","$isTextNode","setTextNodeRange","insertRawText","getTextContentSize","stopImmediatePropagation","addEventListener","removeEventListener","LexicalHistory","x","z","Date","now","has","size","_selection","isCollapsed","_nodeMap","get","push","$isRootNode","__key","__text","offset","__mode","y","isComposing","v","editor","Array","from","w","focus","__type","__detail","__style","__format","__parent","createEmptyHistoryState","current","redoStack","undoStack","registerHistory","editorState","prevEditorState","dirtyLeaves","dirtyElements","tags","dispatchCommand","CAN_REDO_COMMAND","CAN_UNDO_COMMAND","mergeRegister","registerCommand","UNDO_COMMAND","pop","setEditorState","tag","COMMAND_PRIORITY_EDITOR","REDO_COMMAND","CLEAR_EDITOR_COMMAND","CLEAR_HISTORY_COMMAND","registerUpdateListener","LexicalLink","Set","ElementNode","static","__url","rel","__rel","__target","title","__title","constructor","super","this","createDOM","href","sanitizeUrl","addClassNamesToElement","theme","link","updateDOM","removeAttribute","conversion","priority","url","setFormat","format","setIndent","indent","setDirection","direction","URL","exportJSON","getRel","getTarget","getTitle","getURL","version","getLatest","setURL","getWritable","setTarget","setRel","setTitle","insertNewAfter","insertAfter","canInsertTextBefore","canInsertTextAfter","canBeEmpty","isInline","extractWithChild","isParentOf","getTextContent","isHTMLAnchorElement","textContent","children","getAttribute","node","$applyNodeReplacement","getParentOrThrow","$isElementNode","append","createCommand","$createAutoLinkNode","$createLinkNode","$isAutoLinkNode","$isLinkNode","AutoLinkNode","LinkNode","TOGGLE_LINK_COMMAND","toggleLink","extract","forEach","getParent","getChildren","insertBefore","remove","is","getPreviousSibling","LexicalList","URLSearchParams","Error","filter","getFirstChild","concat","getChildrenSize","C","splice","D","getNextSibling","getFormatType","getIndent","getListType","getFirstChildOrThrow","E","replace","F","G","getLastChild","getValue","getStart","getPreviousSiblings","setValue","H","isEmpty","getNextSiblings","I","__value","__checked","J","value","K","getChecked","setChecked","li","L","checked","exportDOM","_config","textAlign","element","canMergeWith","__first","getKey","__last","collapseAtStart","$createParagraphNode","select","set","toggleChecked","__indent","add","canInsertAfter","canReplaceWith","$isParagraphNode","isParentRequired","createParentElementNode","list","listitem","nested","split","listitemUnchecked","listitemChecked","some","removeClassNamesFromElement","setAttribute","isHTMLElement","M","__listType","O","__tag","__start","getTag","setListType","String","__lexicalListType","P","ol","Q","ul","listType","start","canIndent","$createTextNode","A","N","B","checklist","R","nodeName","toLowerCase","after","S","T","U","V","$createListItemNode","$createListNode","$getListDepth","$handleListInsertParagraph","$isRootOrShadowRoot","$isListItemNode","$isListNode","INSERT_CHECK_LIST_COMMAND","INSERT_ORDERED_LIST_COMMAND","INSERT_UNORDERED_LIST_COMMAND","ListItemNode","ListNode","REMOVE_LIST_COMMAND","insertList","getNodes","getStartEndPoints","$isLeafNode","removeList","$getNearestNodeOfType","LexicalComposer","useLayoutEffect","useEffect","initialConfig","useMemo","namespace","editor__DEPRECATED","nodes","onError","html","createLexicalComposerContext","createEditor","editable","$getRoot","parseEditorState","setEditable","LexicalComposerContext","Provider","createContext","getTheme","useLexicalComposerContext","useContext","LexicalContentEditable","bind","apply","ContentEditable","ariaActiveDescendant","ariaAutoComplete","ariaControls","ariaDescribedBy","ariaExpanded","ariaLabel","ariaLabelledBy","ariaMultiline","ariaOwns","ariaRequired","autoCapitalize","className","id","role","spellCheck","tabIndex","useState","useCallback","setRootElement","isEditable","registerEditableListener","contentEditable","ref","LexicalEditorRefPlugin","EditorRefPlugin","editorRef","LexicalErrorBoundary","setPrototypeOf","__proto__","error","state","resetErrorBoundary","onReset","reset","create","getDerivedStateFromError","setState","componentDidCatch","componentDidUpdate","resetKeys","onResetKeysChange","render","fallbackRender","FallbackComponent","fallback","isValidElement","Component","border","color","padding","LexicalHistoryPlugin","history","HistoryPlugin","externalHistoryState","LexicalLinkPlugin","LinkPlugin","validateUrl","hasNodes","COMMAND_PRIORITY_LOW","PASTE_COMMAND","ClipboardEvent","clipboardData","getData","preventDefault","LexicalListPlugin","ListPlugin","INSERT_PARAGRAPH_COMMAND","LexicalOnChangePlugin","OnChangePlugin","ignoreHistoryMergeTagChange","ignoreSelectionChange","onChange","LexicalRichTextPlugin","getEditorState","read","$canShowPlaceholderCurry","content","RichTextPlugin","placeholder","ErrorBoundary","getDecorators","registerDecoratorListener","flushSync","_onError","Suspense","getElementByKey","createPortal","registerRichText","Fragment","useLexicalEditable","initialValueFn","subscribe","useRef","LexicalRichText","caretRangeFromPoint","startContainer","startOffset","caretPositionFromPoint","offsetNode","documentMode","test","navigator","platform","userAgent","InputEvent","MSStream","quote","blockquote","getDirection","dir","heading","h1","h2","h3","h4","h5","h6","firstChild","span","fontSize","DragEvent","dataTransfer","types","includes","files","$getNearestBlockElementAncestorOrThrow","$getNearestNodeFromDOMNode","$isDecoratorNode","$createHeadingNode","$createQuoteNode","$isHeadingNode","$isQuoteNode","DRAG_DROP_PASTE","HeadingNode","QuoteNode","eventFiles","CLICK_COMMAND","$isNodeSelection","clear","DELETE_CHARACTER_COMMAND","deleteCharacter","DELETE_WORD_COMMAND","deleteWord","DELETE_LINE_COMMAND","deleteLine","CONTROLLED_TEXT_INSERTION_COMMAND","insertText","$insertDataTransferForRichText","REMOVE_TEXT_COMMAND","removeText","FORMAT_TEXT_COMMAND","formatText","FORMAT_ELEMENT_COMMAND","$findMatchingParent","INSERT_LINE_BREAK_COMMAND","insertLineBreak","insertParagraph","INSERT_TAB_COMMAND","$insertNodes","$createTabNode","INDENT_CONTENT_COMMAND","OUTDENT_CONTENT_COMMAND","KEY_ARROW_UP_COMMAND","selectPrevious","$getAdjacentNode","shiftKey","isIsolated","KEY_ARROW_DOWN_COMMAND","selectNext","KEY_ARROW_LEFT_COMMAND","$shouldOverrideDefaultCharacterSelection","$moveCharacter","KEY_ARROW_RIGHT_COMMAND","KEY_BACKSPACE_COMMAND","KEY_DELETE_COMMAND","KEY_ENTER_COMMAND","KEY_ESCAPE_COMMAND","blur","DROP_COMMAND","clientX","clientY","$createRangeSelection","getIndexWithinParent","$normalizeSelection__EXPERIMENTAL","$setSelection","DRAGSTART_COMMAND","DRAGOVER_COMMAND","SELECT_ALL_COMMAND","$selectAll","COPY_COMMAND","copyToClipboard","objectKlassEquals","CUT_COMMAND","async","isSelectionCapturedInDecoratorInput","KeyboardEvent","LexicalText","trim","$canShowPlaceholder","$findTextIntersectionFromCharacters","$isRootTextContentEmpty","$isRootTextContentEmptyCurry","$rootTextContent","registerLexicalTextEntity","getFormat","registerNodeTransform","TextNode","isSimpleText","end","slice","setTextContent","markDirty","isTextEntity","splitText","cx","cy","Context","TabContext","idPrefix","setId","Math","round","random","useUniquePrefix","context","useTabContext","getPanelId","getTabId","TabList","childrenProp","other","TypeError","child","isArray","o","getTabPanelUtilityClass","slot","generateUtilityClass","TabPanelRoot","styled","name","overridesResolver","styles","root","spacing","inProps","useThemeProps","keepMounted","ownerState","classes","hidden","slots","composeClasses","useUtilityClasses","tabId","getAccordionActionsUtilityClass","generateUtilityClasses","AccordionActionsRoot","disableSpacing","display","alignItems","justifyContent","variants","marginLeft","clsx","getAlertUtilityClass","createSvgIcon","AlertRoot","Paper","variant","capitalize","severity","memoTheme","getColor","palette","mode","getBackgroundColor","typography","body2","backgroundColor","entries","createSimplePaletteValueFilter","map","colorSeverity","vars","Alert","light","main","fontWeight","fontWeightMedium","dark","getContrastText","AlertIcon","marginRight","opacity","AlertMessage","message","minWidth","overflow","AlertAction","action","defaultIconMapping","success","SuccessOutlined","warning","ReportProblemOutlined","ErrorOutline","info","InfoOutlined","closeText","components","componentsProps","iconMapping","onClose","slotProps","externalForwardedProps","closeButton","CloseButton","closeIcon","CloseIcon","RootSlot","rootSlotProps","useSlot","shouldForwardComponentProp","elementType","additionalProps","elevation","IconSlot","iconSlotProps","MessageSlot","messageSlotProps","ActionSlot","actionSlotProps","CloseButtonSlot","closeButtonProps","IconButton","CloseIconSlot","closeIconProps","Close","onClick","getAlertTitleUtilityClass","AlertTitleRoot","Typography","marginTop","gutterBottom","component","parameters","badgeContent","badgeContentProp","invisible","invisibleProp","max","maxProp","showZero","prevProps","usePreviousProps","displayValue","Number","getBadgeUtilityClass","BadgeRoot","position","verticalAlign","flexShrink","BadgeBadge","badge","anchorOrigin","vertical","horizontal","overlap","flexDirection","flexWrap","alignContent","boxSizing","fontFamily","pxToRem","RADIUS_STANDARD","lineHeight","borderRadius","zIndex","transition","transitions","easing","easeInOut","duration","enteringScreen","contrastText","RADIUS_DOT","top","right","transform","transformOrigin","bottom","left","leavingScreen","getAnchorOrigin","anchorOriginProp","classesProp","overlapProp","colorProp","variantProp","invisibleFromHook","displayValueFromHook","anchorOriginPropProp","Root","BadgeSlot","Badge","badgeSlotProps","rootProps","useSlotProps","externalSlotProps","as","badgeProps","BreadcrumbCollapsedButton","ButtonBase","grey","boxShadow","shadows","BreadcrumbCollapsedIcon","MoreHoriz","otherProps","focusRipple","CollapsedIcon","collapsedIcon","getBreadcrumbsUtilityClass","BreadcrumbsRoot","BreadcrumbsOl","margin","listStyle","BreadcrumbsSeparator","separator","userSelect","insertSeparators","items","reduce","acc","index","expandText","itemsAfterCollapse","itemsBeforeCollapse","maxItems","expanded","setExpanded","collapsedIconSlotProps","listRef","allItems","focusable","querySelector","renderItemsBeforeAndAfter","getCardActionAreaUtilityClass","CardActionAreaRoot","hoverOpacity","focusOpacity","CardActionAreaFocusHighlight","focusHighlight","pointerEvents","short","focusVisibleClassName","focusVisible","getCardActionsUtilityClass","CardActionsRoot","getDialogContentTextUtilityClass","DialogContentTextRoot","shouldForwardProp","prop","rootShouldForwardProp","composedClasses","DialogTitleRoot","flex","DialogTitle","idProp","titleId","getDrawerUtilityClass","docked","modal","DrawerRoot","Modal","drawer","DrawerDockedRoot","skipVariantsResolver","DrawerPaper","paper","overflowY","WebkitOverflowScrolling","outline","maxHeight","borderRight","divider","borderBottom","borderLeft","borderTop","oppositeDirection","useTheme","isRtl","defaultTransitionDuration","enter","exit","anchorProp","BackdropProps","hideBackdrop","ModalProps","BackdropPropsProp","open","PaperProps","SlideProps","TransitionComponent","Slide","transitionDuration","mounted","anchorInvariant","isHorizontal","getAnchor","square","slidingDrawer","in","timeout","appear","getLinearProgressUtilityClass","indeterminate1Keyframe","indeterminate1Animation","indeterminate2Keyframe","indeterminate2Animation","bufferKeyframe","bufferAnimation","getColorShade","LinearProgress","LinearProgressRoot","colorAdjust","LinearProgressDashed","dashed","backgroundSize","backgroundPosition","backgroundImage","animation","LinearProgressBar1","bar","bar1","bar1Indeterminate","bar1Determinate","bar1Buffer","LinearProgressBar2","bar2","bar2Indeterminate","bar2Buffer","valueBuffer","inlineStyles","getListItemAvatarUtilityClass","ListItemAvatarRoot","alignItemsFlexStart","ListContext","ListItemButtonRoot","dense","disableGutters","gutters","flexGrow","textDecoration","paddingTop","paddingBottom","shortest","hover","primary","mainChannel","selectedOpacity","disabledOpacity","backgroundClip","paddingLeft","paddingRight","ListItemButton","autoFocus","selected","childContext","listItemRef","disabled","handleRef","to","getPaginationUtilityClass","getPaginationItemUtilityClass","shape","rounded","page","ellipsis","previousNext","firstLast","PaginationItemEllipsis","text","PaginationItemPage","selectedChannel","common","onBackgroundChannel","borderColor","disabledBackground","activatedOpacity","PaginationItemPageIcon","first","last","previous","next","PreviousSlot","previousSlotProps","NavigateBefore","NextSlot","nextSlotProps","NavigateNext","FirstSlot","firstSlotProps","FirstPage","LastSlot","lastSlotProps","LastPage","rtlAwareType","PaginationRoot","PaginationUl","defaultGetAriaLabel","boundaryCount","count","defaultPage","getItemAriaLabel","hideNextButton","hidePrevButton","renderItem","item","showFirstButton","showLastButton","siblingCount","componentName","handleChange","pageProp","setPageState","useControlled","controlled","handleClick","event","range","_","startPages","min","endPages","siblingsStart","siblingsEnd","itemList","buttonPage","usePagination","defaultTheme","createTheme","defaultCreateStyledComponent","useThemePropsDefault","joinChildren","childrenArray","Boolean","output","values","breakpoints","propValue","transformer","base","breakpoint","directionValues","spacingValues","previousDirectionValue","styleFromPropValue","useFlexGap","gap","row","column","deepmerge","Stack","options","createStyledComponent","StackRoot","themeProps","extendSxProp","createStack","getTableUtilityClass","TableRoot","stickyHeader","borderCollapse","borderSpacing","secondary","captionSide","defaultComponent","table","TableContext","Tablelvl2Context","getTableBodyUtilityClass","TableBodyRoot","tablelvl2","getTableCellUtilityClass","TableCellRoot","align","TableCell","background","componentProp","paddingProp","scope","scopeProp","sizeProp","sortDirection","isHeadCell","ariaSort","getTableContainerUtilityClass","TableContainerRoot","overflowX","getTableHeadUtilityClass","TableHeadRoot","_InputBase","backIconButtonProps","nextIconButtonProps","onPageChange","rowsPerPage","FirstButton","firstButton","LastButton","lastButton","NextButton","nextButton","PreviousButton","previousButton","FirstButtonIcon","firstButtonIcon","LastButtonIcon","lastButtonIcon","NextButtonIcon","nextButtonIcon","KeyboardArrowRight","PreviousButtonIcon","previousButtonIcon","KeyboardArrowLeft","FirstButtonSlot","PreviousButtonSlot","NextButtonSlot","LastButtonSlot","firstButtonSlotProps","previousButtonSlotProps","nextButtonSlotProps","lastButtonSlotProps","ceil","TablePaginationRoot","TablePaginationToolbar","Toolbar","tablePaginationClasses","actions","toolbar","minHeight","up","TablePaginationSpacer","spacer","TablePaginationSelectLabel","selectLabel","TablePaginationSelect","Select","selectIcon","input","selectRoot","textAlignLast","TablePaginationMenuItem","MenuItem","menuItem","TablePaginationDisplayedRows","displayedRows","defaultLabelDisplayedRows","ActionsComponent","colSpan","colSpanProp","labelDisplayedRows","labelRowsPerPage","onRowsPerPageChange","rowsPerPageOptions","SelectProps","selectProps","MenuItemComponent","native","selectId","useId","labelId","ToolbarSlot","toolbarSlotProps","SpacerSlot","spacerSlotProps","SelectLabelSlot","selectLabelSlotProps","SelectSlot","selectSlotProps","MenuItemSlot","menuItemSlotProps","DisplayedRows","displayedRowsProps","InputBase","rowsPerPageOption","label","getTablePaginationUtilityClass","getTableRowUtilityClass","TableRowRoot","head","footer","isValueSelected","candidate","ToggleButtonRoot","button","active","toggleButtonClasses","primaryChannel","fullWidth","contextValue","contextProps","ToggleButtonGroupContext","toggleButtonGroupButtonContextPositionClassName","ToggleButtonGroupButtonContext","resolvedProps","resolveProps","disableFocusRipple","positionClassName","defaultPrevented","getToggleButtonUtilityClass","getToggleButtonGroupUtilityClass","ToggleButtonGroupRoot","grouped","orientation","middleButton","borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius","exclusive","buttonValue","newValue","handleExclusiveChange","validChildren","getValidReactChildren","childrenCount","getButtonPositionClassName","isFirstButton","isLastButton","A100","A200","A400","A700","defaultTrigger","store","disableHysteresis","threshold","pageYOffset","scrollTop","defaultTarget","useScrollTrigger","getTrigger","trigger","setTrigger","handleScroll","passive","stringify","parseInt","forwardRef","reactMajor","displayName","getDataGridUtilityClass","gridClasses","fastObjectShallowCompare","aLength","bLength","isOutputSelector","selector","acceptsApiRef","applySelector","apiRef","defaultCompare","objectShallowCompare","createRefs","equals","useGridSelector","refs","didInit","newState","GridPrivateApiContext","useGridPrivateApiContext","privateApiRef","join","gridDimensionsSelector","dimensions","columnHeaderStyles","visibility","separatorIconDragStyles","rx","GridRootStyles","autoHeight","aggregationColumnHeader","aggregationColumnHeaderLabel","autosizing","editBooleanCell","cell","cellCheckbox","cellSkeleton","checkboxInput","columnHeader","headerFilterRow","columnHeaderCheckbox","columnHeaderDraggableContainer","columnHeaderTitleContainer","columnSeparator","filterIcon","iconSeparator","menuIcon","menuIconButton","menuOpen","menuList","rowReorderCellPlaceholder","rowReorderCell","sortIcon","withBorderColor","treeDataGroupingCell","treeDataGroupingCellToggle","treeDataGroupingCellLoadingContainer","groupingCriteriaCellLoadingContainer","detailPanelToggleCell","radius","containerBackground","mixins","MuiDataGrid","pinnedBackground","overlayBackground","defaultChannel","hoverColor","selectedHoverOpacity","selectedBackground","selectedHoverBackground","blendFn","blendCssVars","blend","getPinnedBackgroundStyles","pinnedHoverStyles","pinnedSelectedBackgroundColor","pinnedSelectedStyles","pinnedSelectedHoverStyles","selectedStyles","borderWidth","borderStyle","overflowAnchor","whiteSpace","maxWidth","WebkitTapHighlightColor","outlineOffset","focusOutlineWidth","hasScrollX","hasScrollY","scrollbarSize","shorter","borderBottomWidth","borderBottomStyle","cursor","columnSeparatorOffset","touchAction","breakInside","textOverflow","borderTopColor","gridGap","borderLeftColor","borderLeftWidth","borderLeftStyle","borderRightColor","borderRightWidth","borderRightStyle","alignSelf","overlay","gamma","overlayColor","rgb","GridRootPropsContext","useGridRootProps","NOT_FOUND","Symbol","assertIsFunction","func","errorMessage","ensureIsArray","getDependencies","createSelectorArgs","dependencies","array","every","itemTypes","assertIsArrayOfFunctions","collectInputSelectorResults","inputSelectorArgs","inputSelectorResults","getPrototypeOf","referenceEqualityCheck","createCacheKeyComparator","equalityCheck","prev","lruMemoize","equalityCheckOrOptions","providedOptions","maxSize","resultEqualityCheck","comparator","resultsCount","cache","entry","put","getEntries","createSingletonCache","cacheIndex","findIndex","unshift","createLruCache","memoized","matchingEntry","find","clearCache","resetResultsCount","Ref","WeakRef","deref","weakMapMemoize","fnNode","s","lastResult","cacheNode","arg","objectCache","WeakMap","objectNode","primitiveCache","Map","primitiveNode","terminatedNode","result","lastResultValue","createSelectorCreator","memoizeOrOptions","memoizeOptionsFromArgs","createSelectorCreatorOptions","memoize","memoizeOptions","createSelector2","recomputations","dependencyRecomputations","directlyPassedOptions","resultFunc","combinedOptions","argsMemoize","argsMemoizeOptions","devModeChecks","finalMemoizeOptions","finalArgsMemoizeOptions","memoizedResultFunc","resetDependencyRecomputations","resetRecomputations","withTypes","createSelector","createStructuredSelector","inputSelectorsObject","selectorCreator","object","assertIsObject","inputSelectorKeys","composition","reselectCreateSelector","checkIsAPIRef","DEFAULT_INSTANCE_ID","stateOrApiRef","instanceIdParam","isAPIRef","instanceId","va","vb","vc","vd","ve","createSelectorMemoized","cacheKey","cacheArgsInit","cacheArgs","cacheFn","fn","DENSITY_FACTORS","compact","comfortable","standard","gridDensitySelector","density","gridDensityFactorSelector","_excluded","GridRoot","rootElementRef","useForkRef","showCellVerticalBorder","mountedState","setMountedState","useEnhancedEffect","GridPinnedColumnPosition","EMPTY_PINNED_COLUMN_FIELDS","gridColumnsStateSelector","columns","gridColumnFieldsSelector","columnsState","orderedFields","gridColumnLookupSelector","lookup","gridColumnDefinitionsSelector","allFields","field","gridColumnVisibilityModelSelector","columnVisibilityModel","gridVisibleColumnDefinitionsSelector","gridVisibleColumnFieldsSelector","visibleColumns","gridVisiblePinnedColumnDefinitionsSelector","pinnedColumns","model","visibleColumnFields","visiblePinnedFields","invert","newPinnedColumns","remainingColumns","leftPinnedColumns","columnsWithoutLeftPinnedColumns","rightPinnedColumns","filterVisibleColumns","gridColumnPositionsSelector","positions","currentPosition","computedWidth","gridColumnsTotalWidthSelector","colCount","gridFilterableColumnDefinitionsSelector","col","filterable","gridFilterableColumnLookupSelector","gridHasColSpanSelector","gridPreferencePanelStateSelector","preferencePanel","GridPreferencePanelsValue","GridApiContext","useGridApiContext","GridPreferencesPanel","preferencePanelState","panelContent","unstable_applyPipeProcessors","openedPanelValue","filters","panel","basePopper","panelId","GridHeader","fastMemo","TimerBasedCleanupTracking","timeouts","cleanupTimeout","register","unsubscribe","unregisterToken","setTimeout","delete","cleanupToken","unregister","clearTimeout","FinalizationRegistryBasedCleanupTracking","registry","FinalizationRegistry","GridSignature","ObjectToBeRetainedByReact","registryContainer","useGridApiEventHandler","cleanupTokensCounter","eventName","handler","objectRetainedByReact","subscription","handlerRef","cleanupTokenRef","enhancedHandler","params","details","defaultMuiPrevented","subscribeEvent","createUseGridApiEventHandler","optionsSubscriberOptions","isFirst","useGridApiOptionHandler","GridEditInputCellRoot","editInputCell","GridEditInputCell","colDef","hasFocus","debounceMs","isProcessingProps","onValueChange","inputRef","valueState","setValueState","getColumn","parsedValue","valueParser","getRow","setEditCellValue","unstable_skipValueParser","meta","unstable_getEditCellMeta","changeReason","endAdornment","loadIcon","sanitizeSortModel","disableMultipleColumnsSorting","mergeStateWithSortModel","sortModel","sorting","getNextGridSortDirection","sortingOrder","currentIdx","gridNillComparator","v1","v2","collator","Intl","Collator","gridNumberComparator","value1","value2","nillResult","gridDateComparator","GridFilterInputValue","applyValue","focusElementRef","clearButton","InputProps","others","filterTimeout","useTimeout","filterValueState","setFilterValueState","sanitizeFilterItemValue","applying","setIsApplying","onFilterChange","filterDebounceMs","newItem","isNaN","fromInput","baseTextField","getLocaleText","inputProps","InputLabelProps","shrink","isFunction","isObject","escapeRegExp","clamp","isDeepEqual","entriesA","entryA","ArrayBuffer","isView","RegExp","flags","valueOf","toString","deepClone","structuredClone","_excluded2","GridFilterInputMultipleValue","helperText","TextFieldProps","itemValue","filterItemValue","Autocomplete","multiple","freeSolo","filterOptions","inputValue","renderTags","getTagProps","option","_getTagProps","tagProps","baseChip","renderInput","GridLogicOperator","getDefaultGridFilterModel","logicOperator","And","quickFilterValues","quickFilterLogicOperator","getPublicApiRef","getPublicApi","hasEval","cleanFilterItem","cleanItem","operator","filterOperators","sanitizeFilterModel","disableMultipleColumnsFiltering","hasSeveralItems","hasItemsWithoutIds","mergeStateWithFilterModel","filterModel","filteringState","removeDiacritics","normalize","getFilterCallbackFromItem","filterItem","parser","ignoreDiacritics","newFilterItem","filterOperator","publicApiRef","applyFilterOnRow","getApplyFilterFn","getRowValue","filterItemsApplierId","buildAggregatedFilterItemsApplier","disableEval","appliers","callback","Function","getHasEval","shouldApplyFilter","resultPerItemId","applier","filterItemCore","replaceAll","shouldApplyItem","shouldQuickFilterExcludeHiddenColumns","quickFilterExcludeHiddenColumns","buildAggregatedFilterApplier","isRowMatchingFilterItems","isRowMatchingQuickFilter","columnFields","appliersPerField","getApplyQuickFilterFn","quickFilterValue","outer","filterValue","buildAggregatedQuickFilterApplier","passingFilterItems","passingQuickFilterValues","isNotNull","passFilterLogic","allFilterItemResults","allQuickFilterResults","cleanedFilterItems","filterModelItems","cleanedFilterItemResults","cleanedQuickFilterResults","filterItemPredicate","filterItemResult","quickFilterValuePredicate","quickFilterValueResult","createContainsFilterFn","disableTrim","negate","trimmedValue","filterRegex","matches","createEqualityFilterFn","sensitivity","usage","isEqual","compare","createEmptyFilterFn","GRID_STRING_COL_DEF","Infinity","hideable","sortable","resizable","groupable","pinnable","aggregable","sortComparator","InputComponent","requiresFilterValue","val","getGridStringOperators","renderEditCell","columnValue","getRowFormattedValue","parseNumericValue","GRID_NUMERIC_COL_DEF","headerAlign","valueFormatter","isNumber","toLocaleString","InputComponentProps","convertFilterItemValueToInputValue","inputType","dateCopy","getTime","toISOString","substring","setMinutes","getMinutes","getTimezoneOffset","GridFilterInputDate","date","buildApplyFilterFn","compareFn","showTime","keepHours","setSeconds","setHours","time","getGridDateOperators","StyledInputBase","GridEditDateCell","valueProp","isDateTime","valueTransformed","parsedDate","formattedDate","substr","parsed","formatted","parseValueToDate","year","month","day","setFullYear","hours","minutes","newFormattedDate","newParsedDate","renderEditDateCell","throwIfNotDateObject","columnType","rowId","GRID_DATE_COL_DEF","getRowId","toLocaleDateString","pastedValueParser","GRID_DATETIME_COL_DEF","gridRowsStateSelector","rows","gridRowCountSelector","totalRowCount","gridRowsLoadingSelector","loading","gridTopLevelRowCountSelector","totalTopLevelRowCount","gridRowsLookupSelector","dataRowIdToModelLookup","gridRowsDataRowIdToIdLookupSelector","dataRowIdToIdLookup","gridRowTreeSelector","tree","gridRowGroupsToFetchSelector","groupsToFetch","gridRowGroupingNameSelector","groupingName","gridRowTreeDepthsSelector","treeDepths","gridRowMaximumTreeDepthSelector","nodeCount","depth","sort","gridDataRowIdsSelector","dataRowIds","gridPinnedRowsSelector","additionalRowGroups","rawPinnedRows","pinnedRows","rowEntry","gridPinnedRowsCountSelector","GRID_ROOT_GROUP_ID","GRID_ID_AUTOGENERATED","getRowIdFromRowModel","rowModel","detailErrorMessage","checkGridRowIdIsValid","createRowsInternalCache","rowCount","updates","rowsBeforePartialUpdates","loadingPropBeforePartialUpdates","rowCountPropBeforePartialUpdates","getTopLevelRowCount","rowCountProp","rootGroupNode","footerId","getRowsStateFromCache","loadingProp","previousTree","previousTreeDepths","previousGroupsToFetch","caches","unProcessedTree","unProcessedTreeDepths","unProcessedDataRowIds","applyStrategyProcessor","groupingParamsWithHydrateRows","insert","modify","idToActionLookup","isAutogeneratedRowNode","rowNode","isAutoGenerated","getTreeNodeDescendants","parentId","skipAutoGeneratedRows","validDescendants","childDescendants","j","updateCacheWithNewRows","previousCache","groupKeys","uniqueUpdates","partialUpdates","alreadyAppliedActionsToRemove","partialRow","actionAlreadyAppliedToRow","_action","oldRow","actionTypeWithActionsToRemove","actionType","idsToRemove","minimalContentHeight","computeRowsUpdates","nonPinnedRowsUpdates","getRowNode","pinnedRowsCache","prevModel","idLookup","getValidRowHeight","rowHeightProp","defaultRowHeight","warningMessage","GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD","GRID_DETAIL_PANEL_TOGGLE_FIELD","GridBooleanCellRaw","isServerSideRowGroupingRow","treeData","Icon","booleanCellTrueIcon","booleanCellFalseIcon","titleAccess","GridBooleanCell","GridEditBooleanCell","htmlFor","baseCheckbox","BooleanOperatorContainer","GridFilterInputBoolean","labelProp","baseSelectProps","baseSelect","isSelectNative","baseSelectOptionProps","baseSelectOption","baseFormControl","baseInputLabel","notched","displayEmpty","GRID_BOOLEAN_COL_DEF","renderCell","sanitizedValue","stringToBoolean","GridCellEditStartReasons","GridCellEditStopReasons","GridEditModes","GridCellModes","GridRowModes","isSingleSelectColDef","getValueOptions","additionalParams","valueOptions","getValueFromValueOptions","getOptionValue","optionValue","GridEditSingleSelectCell","initialOpen","editMode","Cell","setOpen","MenuProps","otherBaseSelectProps","getOptionLabel","formattedTargetValue","onOpen","isKeyboardEvent","reason","Row","getCellParams","publishEvent","escapeKeyDown","cellFocusOut","valueOption","renderSingleSelectOptions","OptionComponent","SingleSelectOperatorContainer","GridFilterInputSingleSelect","resolvedColumn","currentValueOptions","GridFilterInputMultipleSingleSelect","isOptionEqualToValue","resolvedValueOptions","filteredValues","resolvedValue","parseObjectValue","GRID_SINGLE_SELECT_COL_DEF","filterItemValues","GridMenuRoot","Popper","menu","GridMenu","onExited","savedFocusRef","HTMLElement","handleClickAway","contains","anchorEl","placement","TransitionProps","ClickAwayListener","onClickAway","mouseEvent","Grow","popperOnExited","GridActionsCell","focusedButtonIndex","setFocusedButtonIndex","rootRef","buttonRef","ignoreCallToFocus","touchRippleRefs","menuId","buttonId","getActions","hasActions","getRowParams","iconButtons","showInMenu","menuButtons","numberOfButtons","stop","preventScroll","focusableButtonIndex","hideMenu","handleTouchRippleRef","instance","handleButtonClick","actionsCell","onKeyDown","getNewIndex","indexMod","newIndex","stopPropagation","touchRippleRef","baseIconButton","moreActionsIcon","MenuList","autoFocusItem","closeMenu","GRID_ACTIONS_COLUMN_TYPE","GRID_ACTIONS_COL_DEF","headerName","disableColumnMenu","disableExport","gridHeaderFilteringStateSelector","headerFiltering","gridHeaderFilteringEnabledSelector","headerFilteringState","enabled","gridHeaderFilteringEditFieldSelector","editing","gridHeaderFilteringMenuSelector","gridColumnGroupingSelector","columnGrouping","gridColumnGroupsUnwrappedModelSelector","unwrappedGroupingModel","gridColumnGroupsLookupSelector","gridColumnGroupsHeaderStructureSelector","headerStructure","gridColumnGroupsHeaderMaxDepthSelector","maxDepth","COLUMNS_DIMENSION_PROPERTIES","COLUMN_TYPES","string","number","dateTime","boolean","singleSelect","custom","hydrateColumnsWidth","rawState","columnsLookup","totalFlexUnits","widthAllocatedBeforeFlex","flexColumns","columnField","isFlex","availableWidth","viewportOuterSize","initialFreeSpace","computedColumnWidths","uniqueFlexColumns","flexColumnsLookup","all","frozenFields","freeze","frozen","loopOverFlexItems","violationsLookup","remainingFreeSpace","flexUnits","totalViolation","computeFlexColumnsWidth","getDefaultColTypeDef","createColumnsState","columnsToUpsert","initialState","keepOnlyColumnsToUpsert","isInsideStateInitializer","currentState","columnsToKeep","columnsToUpsertLookup","newColumn","existingState","hasBeenResized","columnsStateWithPortableColumns","columnsWithUpdatedDimensions","orderedFieldsLookup","cleanOrderedFields","newOrderedFields","newColumnLookup","newColDef","applyInitialState","getRootDimensions","getTotalHeaderHeight","unstable_listView","densityFactor","isHeaderFilteringEnabled","floor","columnHeaderHeight","columnGroupHeaderHeight","headerFilterHeight","GridScrollAreaRawRoot","scrollArea","GridScrollArea","scrollDirection","columnsTotalWidth","scrollPosition","getCanScrollMore","maxScrollLeft","viewportInnerSize","dragging","setDragging","canScrollMore","setCanScrollMore","totalHeaderHeight","headerHeight","leftPinnedWidth","rightPinnedWidth","handleDragOver","useEventCallback","getBoundingClientRect","scroll","handleColumnHeaderDragStart","handleColumnHeaderDragEnd","newScrollPosition","onDragOver","noop","gridFocusStateSelector","gridFocusCellSelector","focusState","gridFocusColumnHeaderSelector","gridFocusColumnGroupHeaderSelector","columnHeaderFilter","columnGroupHeader","gridTabIndexStateSelector","gridTabIndexCellSelector","gridTabIndexColumnHeaderSelector","gridTabIndexColumnGroupHeaderSelector","gridSortingStateSelector","gridSortedRowIdsSelector","sortingState","sortedRows","gridSortedRowEntriesSelector","sortedIds","idRowsLookup","rowTree","gridSortModelSelector","gridSortColumnLookupSelector","res","sortItem","sortIndex","gridFilterStateSelector","gridFilterModelSelector","filterState","gridFilteredRowsLookupSelector","filteredRowsLookup","gridExpandedSortedRowEntriesSelector","filteredChildrenCountLookup","filteredDescendantCountLookup","visibleRowsLookup","gridExpandedSortedRowIdsSelector","visibleSortedRowEntries","gridFilteredSortedRowEntriesSelector","gridFilteredSortedRowIdsSelector","filteredSortedRowEntries","gridFilteredSortedTopLevelRowEntriesSelector","visibleSortedRowIds","depthPositionCounter","lastDepth","visibleSortedRows","rowTreeDepth","gridExpandedRowCountSelector","gridFilteredTopLevelRowCountSelector","visibleSortedTopLevelRows","gridFilteredRowCountSelector","gridFilterActiveItemsSelector","topLevelRowCount","columnLookup","gridFilterActiveItemsLookupSelector","activeFilters","getPageCount","pageSize","getDefaultGridPaginationModel","autoPageSize","throwIfPageSizeExceedsTheLimit","signatureProp","DataGrid","gridPaginationSelector","pagination","gridPaginationModelSelector","paginationModel","gridPaginationRowCountSelector","gridPaginationMetaSelector","gridPageSelector","gridPageSizeSelector","gridPageCountSelector","gridPaginationRowRangeSelector","visibleSortedTopLevelRowEntries","visibleTopLevelRowCount","topLevelFirstRowIndex","topLevelLastRowIndex","firstRowIndex","lastRowIndex","topLevelFirstRow","topLevelRowsInCurrentPageCount","topLevelRowAdded","gridPaginatedVisibleSortedGridRowEntriesSelector","paginationRange","gridPaginatedVisibleSortedGridRowIdsSelector","getVisibleRows","paginationMode","useGridVisibleRows","response","isFirefox","gridRowSelectionStateSelector","rowSelection","selectedGridRowsCountSelector","selection","selectedGridRowsSelector","selectedRows","rowsLookup","selectedIdsLookupSelector","gridRowsMetaSelector","rowsMeta","gridVirtualizationSelector","virtualization","gridVirtualizationColumnEnabledSelector","enabledForColumns","gridVirtualizationRowEnabledSelector","enabledForRows","gridRenderContextSelector","renderContext","gridRenderContextColumnsSelector","firstColumnIndex","lastColumnIndex","useGridApiMethod","apiMethods","isFirstRender","EMPTY_RENDER_CONTEXT","virtualizationStateInitializer","disableVirtualization","gridRowSpanningStateSelector","rowSpanning","gridRowSpanningHiddenCellsSelector","hiddenCells","gridRowSpanningSpannedCellsSelector","spannedCells","gridRowSpanningHiddenCellsOriginMapSelector","hiddenCellOriginMap","gridListColumnSelector","listViewColumn","ScrollDirection","EMPTY_SCROLL_POSITION","EMPTY_DETAIL_PANELS","isJSDOM","useGridVirtualScroller","listView","outerSize","pinnedColumnDefinitions","hasBottomPinnedRows","panels","setPanels","cellFocus","cellTabIndex","selectedRowsLookup","currentPage","gridRootRef","mainRef","mainElementRef","scrollerRef","virtualScrollerRef","scrollbarVerticalRef","virtualScrollbarVerticalRef","scrollbarHorizontalRef","virtualScrollbarHorizontalRef","contentHeight","contentSize","hasColSpan","previousSize","mainRefCallback","lastSize","roundDimensions","ResizeObserver","observer","newSize","contentRect","observe","disconnect","previousContextScrollPosition","previousRowContext","scrollTimeout","frozenContext","scrollCache","rowBufferPx","columnBufferPx","verticalBuffer","horizontalBuffer","NONE","buffer","bufferForDirection","createScrollCache","rowHeight","MINIMUM_COLUMN_WIDTH","focusedCell","rowIndex","columnIndex","updateRenderContext","nextRenderContext","context1","context2","areRenderContextsEqual","didRowsIntervalChange","isReady","triggerUpdateRenderContext","scroller","newScroll","scrollLeft","dx","dy","isScrolling","abs","DOWN","UP","RIGHT","LEFT","directionForDelta","rowScroll","columnScroll","didCrossThreshold","didChangeDirection","computeRenderContext","inputsSelector","forceUpdateRenderContext","currentTarget","handleWheel","handleTouchMove","needsHorizontalScrollbar","scrollerStyle","flexBasis","condition","effect","didRun","useRunOnce","initialRenderContext","getRows","baseRenderContext","isLastSection","isPinnedSection","rowIndexOffset","rowModels","firstRowToRender","lastRowToRender","rowIndexes","virtualRowIndex","rowProps","columnPositions","rowIndexInPage","minFirstColumn","maxLastColumn","calculateColSpan","baseRowHeight","rowHasAutoHeight","unstable_getRowHeight","isSelected","isRowSelectable","isFirstVisible","isLastVisible","isLastVisibleInSection","isNotVisible","tabbableCell","cellMode","currentRenderContext","offsetLeft","computeOffsetLeft","showBottomBorder","offsetTop","focusedColumnIndex","getInfiniteLoadingTriggerElement","lastRowId","getContainerProps","getScrollerProps","onScroll","onWheel","onTouchMove","getContentProps","getRenderZoneProps","getScrollbarVerticalProps","getScrollbarHorizontalProps","hiddenCellsOriginMap","at","lastColumn","viewportInnerWidth","viewportInnerHeight","lastRowHeight","lastColumnWidth","virtualizeColumnsWithAutoRowHeight","inputs","realLeft","getNearestIndexToRender","atStart","lastPosition","rowSpanHiddenCellOrigin","minSpannedRowIndex","hasRowWithAutoHeight","getIndexesToRender","firstIndex","lastIndex","minFirstIndex","maxLastIndex","bufferBefore","rowBefore","bufferAfter","rowAfter","binarySearch","actualRenderContext","initialFirstColumnToRender","lastColumnToRender","columnBefore","columnAfter","firstColumnToRender","visibleRows","firstNonSpannedColumnToRender","cellColSpanInfo","unstable_getCellColSpanInfo","spannedByColSpan","leftVisibleCellIndex","getFirstNonSpannedColumnToRender","deriveRenderContext","lastMeasuredIndexRelativeToAllRows","getLastMeasuredRowIndex","allRowsMeasured","lastMeasuredIndexRelativeToCurrentPage","interval","exponentialSearch","sliceStart","sliceEnd","pivot","isBefore","firstPosition","firstIndexPadded","lastIndexPadded","pinnedLeftLength","GridOverlayWrapperRoot","overlayWrapper","overlayType","loadingOverlayVariant","GridOverlayWrapperInner","overlayWrapperInner","GridOverlayWrapper","topContainerHeight","bottomContainerHeight","inner","GridOverlays","Overlay","overlayProps","gridColumnMenuSelector","columnMenu","MemoizedGridHeaders","filterColumnLookup","sortColumnLookup","columnHeaderTabIndexState","cellTabIndexState","columnGroupHeaderTabIndexState","columnHeaderFocus","columnGroupHeaderFocus","headerGroupingMaxDepth","columnMenuState","columnVisibility","columnGroupsHeaderStructure","hasOtherElementInTabSequence","columnsContainerRef","columnHeadersContainerRef","columnHeaders","GridConfigurationContext","useGridConfiguration","configuration","GridPanelAnchor","Element","GridMainContainer","ariaAttributes","hooks","useGridAriaAttributes","GridTopContainer","GridBottomContainer","VirtualScrollerContentRoot","virtualScrollerContent","GridVirtualScrollerContent","overflowedContent","Filler","Pinned","PinnedLeft","PinnedRight","Main","Memoized","rowsLength","minimumSize","needsLastRowBorder","filler","VirtualScrollerRenderZoneRoot","virtualScrollerRenderZone","GridVirtualScrollerRenderZone","Scrollbar","ScrollbarVertical","ScrollbarHorizontal","GridVirtualScrollbar","isLocked","scrollbarRef","contentRef","propertyDimension","propertyScroll","hasScroll","scrollbarInnerSize","onScrollerScroll","scrollbar","onScrollbarScroll","capture","setProperty","Container","Scroller","virtualScroller","scrollbarWidth","GridVirtualScroller","overlaysProps","visibleRowCount","pinnedRowsCount","noRows","loadingOverlay","useGridOverlays","detailPanels","GridFooterPlaceholder","hideFooter","getGridRowGroupSelectableDescendants","groupId","sortedRowIds","groupNode","descendants","isMultipleRowSelectionEnabled","signature","checkboxSelection","disableMultipleRowSelection","findRowsToSelect","selectedRow","autoSelectDescendants","autoSelectParents","addRow","filteredRows","selectedIdsLookup","selectedDescendants","checkAllDescendantsSelected","traverseParents","siblings","parent","childId","getFilteredRowNodeSiblings","findRowsToDeselect","deselectedRow","removeRow","allParents","parents","getRowNodeParents","descendant","GridContextProvider","forceDebug","localStorage","setItem","removeItem","err","localStorageAvailable","getItem","noopLogger","debug","warn","LOG_LEVELS","getAppender","logLevel","appender","console","minLogLevelIdx","loggerObj","method","idx","Store","_value","listeners","getSnapshot","SYMBOL_API_PRIVATE","globalId","useGridApiInitialization","inputApiRef","existingPrivateApi","privateApi","methods","methodName","currentPrivateMethod","spying","publicApi","currentPublicMethod","eventManager","EventManager","createPrivateAPI","createPublicAPI","isPropagationStopped","isSyntheticEvent","DataGridPro","DataGridPremium","api","emit","on","removeListener","GRID_DEFAULT_STRATEGY","GRID_STRATEGIES_PROCESSORS","rowTreeCreation","filtering","visibleRowsLookupCreation","useGridInitialization","useGridRefs","isFirstEffect","useGridIsRtl","getLogger","logger","useGridLoggerFactory","controlStateMapRef","rawForceUpdate","registerControlState","controlStateItem","stateId","ignoreSetState","updatedControlStateIds","controlState","oldSubState","stateSelector","newSubState","hasPropChanged","propModel","el","propOnChange","changeEvent","updateControlState","previousState","forceUpdate","privateStateApi","useGridStateInitialization","isRunning","runAppliers","groupCache","registerPipeProcessor","group","processor","processors","processorsAsArray","registerPipeApplier","_appliers","otherAppliers","requestPipeProcessorsApplication","preProcessingPublicApi","useGridPipeProcessing","availableStrategies","strategiesCache","registerStrategyProcessor","strategyName","processorName","cleanup","otherProcessors","groupPreProcessors","previousProcessor","getActiveStrategy","activeStrategy","strategyGroup","strategy","isAvailable","setStrategyAvailability","useGridStrategyProcessing","localeText","useGridLocaleText","useGridInitializeState","initializer","isInitialized","useGridLogger","newLogger","useGridNativeEventListener","added","setAdded","targetElement","wrapHandler","GridCellCheckboxForwardRef","checkboxElement","rippleRef","getCellElement","handleKeyDown","isSelectable","checkboxPropsSelector","rowSelectionPropagation","rowSelectionLookup","isIndeterminate","isChecked","selectableDescendantsCount","selectedDescendantsCount","indeterminateCheckboxAction","indeterminate","GridCellCheckboxRenderer","GridHeaderCheckbox","tabIndexState","visibleRowIds","paginatedVisibleRowIds","filteredSelection","keepNonExistentRowsSelected","selectionCandidates","checkboxSelectionVisibleOnly","currentSelectionSize","getColumnHeaderElement","handleSelectionChange","GRID_CHECKBOX_SELECTION_FIELD","GRID_CHECKBOX_SELECTION_COL_DEF","disableReorder","valueGetter","renderHeader","sanitizeCellValue","csvOptions","valueStr","shouldAppendQuotes","escapeFormulas","escapedValue","delimiter","serializeCellValue","cellParams","ignoreValueFormatter","formattedValue","CSVRow","rowString","addValue","getRowString","buildCSV","rowIds","CSVBody","serializeRow","includeHeaders","filteredColumns","headerRows","includeColumnGroupsHeaders","columnGroupLookup","getAllGroupDetails","maxColumnGroupsDepth","columnGroupPathsLookup","columnGroupPath","getColumnGroupPath","headerGroupRow","columnGroupId","columnGroup","mainHeaderRow","isPrintableKey","ctrlKey","metaKey","isNavigationKey","isHideMenuKey","isPasteShortcut","fromCharCode","keyCode","altKey","writeToClipboardPolyfill","body","appendChild","createRange","selectNode","getSelection","removeAllRanges","addRange","execCommand","removeChild","useGridClipboard","ignoreValueFormatterProp","ignoreValueFormatterDuringExport","clipboardExport","clipboardCopyCellDelimiter","handleCopy","isCopyShortcut","selectionEnd","selectionStart","textToCopy","getSelectedRows","getDataAsCsv","clipboard","writeText","catch","onClipboardCopy","columnMenuStateInitializer","useFirstRender","useGridRegisterPipeProcessor","registerPreProcessor","useGridRegisterPipeApplier","columnsStateInitializer","mergeColumnsState","densityStateInitializer","getColumnsToExport","fields","currentColumns","allColumns","defaultGetRowsToExport","filteredSortedRowIds","bodyRows","topPinnedRowsIds","bottomPinnedRowsIds","GridToolbarExportContainer","buttonProps","tooltipProps","tooltip","exportButtonId","exportMenuId","handleMenuClose","baseTooltip","enterDelay","baseButton","startIcon","exportIcon","prevOpen","_excluded3","GridCsvExportMenuItem","exportDataAsCsv","GridPrintExportMenuItem","exportDataAsPrint","printOptions","excelOptions","preProcessedButtons","useGridCsvExport","csvExport","getRowsToExport","csv","blob","extension","filename","fullName","HTMLAnchorElement","createObjectURL","download","click","revokeObjectURL","exportAs","Blob","utf8WithBom","Uint8Array","fileName","addExportMenuButtons","initialValue","disableToolbarButton","getDerivedPaginationModel","paginationState","paginationModelProp","pageCount","validPage","getValidPage","useGridPrintExport","hasRootReference","doc","previousGridState","previousColumnVisibility","previousRows","previousVirtualizationState","ownerDocument","updateGridColumnsForPrint","includeCheckboxes","Promise","resolve","exportedColumnFields","newColumnVisibilityModel","setColumnVisibilityModel","updateGridRowsForPrint","newRows","setRows","handlePrintWindowLoad","printWindow","normalizeOptions","copyStyles","hideToolbar","printDoc","contentDocument","gridRootElement","gridClone","cloneNode","contain","gridToolbarElementHeight","toolbarContainer","offsetHeight","gridFooterElementHeight","footerContainer","computedTotalHeight","currentPageTotalHeight","gridFooterElement","container","innerHTML","defaultPageStyle","pageStyle","styleElement","createTextNode","bodyClassName","classList","stylesheetLoadPromises","rootCandidate","getRootNode","headStyleElements","querySelectorAll","tagName","newHeadStyleElements","sheet","styleCSS","cssRules","cssText","attributes","attr","nodeValue","then","contentWindow","print","handlePrintWindowAfterPrint","restoreState","exportState","getSortedRows","requestAnimationFrame","iframeEl","buildPrintWindow","onload","matchMedia","mql","useGridRegisterStrategyProcessor","filterStateInitializer","getVisibleRowsLookup","getVisibleRowsLookupState","createMemoizedValues","focusStateInitializer","findParentElementFromClassName","elem","closest","escapeOperandAttributeSelector","operand","getGridRowElementSelector","isEventTargetInPortal","nodeType","findGridElement","klass","findPinnedCells","colIndex","filterFn","cells","queryRows","rowElement","currentColIndex","parseCellColIndex","findPinnedHeaders","elements","ariaColIndex","getLeftColumnIndex","firstColIndex","lastColIndex","getRightColumnIndex","useGridKeyboardNavigation","initialCurrentPageRows","currentPageRows","enrichPageRowsWithPinnedRows","headerFilteringEnabled","headerFilters","goToCell","closestColumnToUse","rowSpanScanDirection","nextCellColSpanInfo","rightVisibleCellIndex","nonRowSpannedRowId","rowSpanHiddenCells","nextRowIndex","nextRowId","findNonRowSpannedCell","rowIndexRelativeToAllRows","scrollToIndexes","setCellFocus","goToHeader","getVisibleColumns","setColumnHeaderFocus","goToHeaderFilter","setColumnHeaderFilterFocus","goToGroupHeader","setColumnGroupHeaderFocus","getRowIdFromIndex","handleColumnHeaderKeyDown","headerTitleNode","columnHeaderTitleContainerContent","viewportPageSize","getViewportPageSize","colIndexBefore","getColumnIndex","firstRowIndexInPage","lastRowIndexInPage","columnGroupMaxDepth","shouldPreventDefault","rightColIndex","leftColIndex","toggleColumnMenu","handleHeaderFilterKeyDown","isEditing","isHeaderMenuOpen","handleColumnGroupHeaderKeyDown","focusedColumnGroup","currentField","currentDepth","remainingRightColumns","remainingLeftColumns","handleCellKeyDown","Edit","getColumnIndexFn","rowIndexBefore","groupingColDefField","match","getRowGroupingCriteriaFromGroupingField","isGroupingColumn","checkIfCanStartEditing","paginationStateInitializer","paginationMeta","useGridPagination","onPaginationMetaChange","setPaginationMeta","newPaginationMeta","stateExportPreProcessing","prevState","exportedPaginationMeta","exportOnlyDirtyModels","stateRestorePreProcessing","restoredPaginationMeta","stateToRestore","useGridPaginationMeta","onPaginationModelChange","setPage","currentModel","setPaginationModel","setPageSize","handleUpdateAutoPageSize","maximumPageSizeWithoutScrollBar","handleRowCountChange","newRowCount","useGridPaginationModel","rowCountState","previousPageSize","onRowCountChange","setRowCount","exportedRowCount","restoredRowCount","handlePaginationModelChange","isLastPage","hasNextPage","useGridRowCount","preferencePanelStateInitializer","gridEditRowsStateSelector","editRows","getDefaultCellValue","GridRowEditStartReasons","GridRowEditStopReasons","editingStateInitializer","useGridEditing","cellModesModel","setCellModesModel","cellModesModelRef","prevCellModesModel","processRowUpdate","onProcessRowUpdateError","cellModesModelProp","onCellModesModelChange","runIfEditModeIsCell","throwIfNotEditable","isCellEditable","throwIfNotInMode","getCellMode","handleCellDoubleClick","newParams","cellDoubleClick","handleCellFocusOut","View","which","enterKeyDown","shiftTabKeyDown","tabKeyDown","printableKeyDown","pasteKeyDown","deleteKeyDown","handleCellEditStart","startCellEditModeParams","deleteValue","startCellEditMode","handleCellEditStop","cellToFocusAfter","runPendingEditCellValueMutation","ignoreModifications","stopCellEditMode","onCellEditStart","onCellEditStop","hasFieldErrors","editingState","updateCellModesModel","newModel","isNewModelDifferentFromProp","updateFieldInCellModesModel","newProps","_newModel$id","otherFields","updateOrDeleteFieldState","newEditingState","updateStateToStartCellEditMode","getCellValue","shouldProcessEditCellProps","preProcessEditCellProps","hasChanged","updateStateToStopCellEditMode","finishCellEditMode","moveFocusToRelativeCell","rowUpdate","getRowWithUpdatedValuesFromCellEditing","handleError","errorThrown","finalRowUpdate","updateRows","editingPrivateApi","setCellEditingEditCellValue","skipValueParser","valueSetter","idToIdLookup","copyOfPrevCellModes","prevMode","originalId","useGridCellEditing","rowModesModel","setRowModesModel","rowModesModelRef","prevRowModesModel","focusTimeout","nextFocusedCell","rowModesModelProp","onRowModesModelChange","runIfEditModeIsRow","getRowMode","hasFieldsWithErrors","fieldProps","rowParams","handleCellFocusIn","rowFocusOut","nextFieldToFocus","handleRowEditStart","startRowEditModeParams","fieldToFocus","startRowEditMode","handleRowEditStop","stopRowEditMode","onRowEditStart","onRowEditStop","updateRowModesModel","updateRowInRowModesModel","updateOrDeleteRowState","updateStateToStartRowEditMode","processedProps","updateStateToStopRowEditMode","focusedField","finishRowEditMode","getRowWithUpdatedValuesFromRowEditing","setRowEditingEditCellValue","promises","_editingState$id","otherFieldsProps","promise","thisField","fieldColumn","_editingState$id2","copyOfPrevRowModesModel","ids","useGridRowEditing","debounceMap","isCellEditableProp","debounces","runCallback","debouncedField","maybeDebounce","setEditCellValueToCall","getRowWithUpdatedValues","getEditCellMeta","editingSharedPrivateApi","rowsStateInitializer","isDataSourceAvailable","unstable_dataSource","flatRowTreeCreationMethod","groupingField","groupingKey","childrenFromPath","childrenExpanded","createFlatRowTree","idsToRemoveFromRootGroup","idToDelete","idToInsert","rootGroup","rootGroupChildren","updateFlatRowTree","MissingRowIdError","useGridParamsApi","getColumnHeaderParams","getAllColumns","rawValue","getGridColumnHeaderElement","getRowElement","getGridRowElement","getGridCellElement","getSelectionModelPropValue","selectionModelProp","prevSelectionModel","rowSelectionStateInitializer","rowSelectionModel","useGridRowSelection","runIfRowSelectionIsEnabled","applyAutoSelection","propRowSelectionModel","lastRowToggled","onRowSelectionModelChange","disableRowSelectionOnClick","propIsRowSelectable","canHaveMultipleSelection","isNestedData","expandMouseRowRangeSelection","endId","startId","isRowSelected","startIndex","endIndex","selectRowRange","setRowSelectionModel","selectRow","resetSelection","newSelection","selectRows","selectableIds","currentLookup","allPagesRowIds","rowsBetweenStartAndEnd","selectionPrivateApi","removeOutdatedSelection","sortModelUpdated","currentSelection","selectionLookup","filterMode","isNonExistent","shouldReapplyPropagation","handleSingleRowSelection","hasCtrlKey","isMultipleSelectionDisabled","handleRowClick","preventSelectionOnShift","handleRowSelectionCheckboxChange","nativeEvent","handleHeaderSelectionCheckboxChange","rowsToBeSelected","focusCell","isNextRowSelected","newRowIndex","getRowIndexRelativeToVisibleRows","previousRowIndex","getAllRowIds","isStateControlled","useGridRowSelectionPreProcessors","updateSelectionColumn","selectionColumn","cellClassName","headerClassName","shouldHaveSelectionColumn","haveSelectionColumn","sortingStateInitializer","scrollIntoView","containerSize","elementSize","elementOffset","elementEnd","DATA_GRID_PROPS_DEFAULT_VALUES","autosizeOnMount","disableAutosize","disableColumnFilter","disableColumnReorder","disableColumnResize","disableColumnSelector","disableColumnSorting","disableDensitySelector","hideFooterPagination","hideFooterRowCount","hideFooterSelectedRowCount","keepColumnPositionIfDraggedOutside","pageSizeOptions","resizeThrottleMs","rowPositionsDebounceMs","rowSpacingType","showColumnVerticalBorder","sortingMode","throttleRowsMs","unstable_rowSpanning","EMPTY_SIZE","EMPTY_DIMENSIONS","groupHeaderHeight","rowWidth","headersTotalHeight","dimensionsStateInitializer","useGridDimensions","errorShown","rootDimensionsRef","dimensionsState","validRowHeight","decimals","savedSize","setSavedSize","debouncedSetSavedSize","wait","lastArgs","later","throttled","throttle","setDimensions","resize","computedStyle","ownerWindow","getComputedStyle","parseFloat","areElementSizesEqual","getRowHeight","updateDimensions","rootElement","pinnedRowsHeight","calculatePinnedRowsHeight","scrollDiv","offsetWidth","clientWidth","measureScrollbarSize","hasScrollXIfNoYScrollBar","hasScrollYIfNoXScrollBar","newDimensions","prevDimensions","apiPrivate","isFirstSizing","handleResize","onResize","globalThis","unobserve","rowsMetaStateInitializer","heights","calculateCellColSpan","minFirstColumnIndex","maxLastColumnIndex","columnsLength","setCellColSpanInfo","cellProps","nextColumnIndex","isLeaf","recurrentUnwrapGroupingColumnModel","columnGroupNode","unwrappedGroupingModelToComplete","unwrapGroupingColumnModel","columnGroupingModel","unwrappedSubTree","getColumnGroupsHeaderStructure","orderedColumns","pinnedFields","getParents","groupingHeaderStructure","haveSameParents","field1","field2","depthStructure","structure","newField","lastGroup","prevField","createGroupLookup","groupLookup","groupParam","subTreeLookup","columnGroupsStateInitializer","DEFAULT_GRID_AUTOSIZE_OPTIONS","includeOutliers","outliersFactor","expand","disableColumnVirtualization","trackFinger","currentTouchId","changedTouches","touch","identifier","computeNewWidth","initialOffsetToSeparator","clickX","columnBounds","resizeDirection","newWidth","preventClick","useColumnVirtualizationDisabled","reject","_resolve","_reject","createControllablePromise","extractColumnWidths","widthByField","findGridCells","widths","filteredWidths","inputValues","factor","q1","q3","iqr","deviation","excludeOutliers","header","columnHeaderTitle","iconContainer","iconButtonContainer","menuContainer","paddingWidth","scrollWidth","hasColumnMin","hasColumnMax","maxContent","columnResizeStateInitializer","columnResize","resizingColumnField","createResizeRefs","initialColWidth","initialTotalWidth","previousMouseClickEvent","columnHeaderElement","headerFilterElement","groupHeaderElements","cellElements","leftPinnedCellsAfter","rightPinnedCellsBefore","fillerLeft","fillerRight","leftPinnedHeadersAfter","rightPinnedHeadersBefore","useGridColumnResize","stopResizeEventTimeout","touchId","updateWidth","prevWidth","widthDiff","columnWidthDiff","newTotalWidth","div","finalWidth","pinnedPosition","updateProperty","finishResize","stopListening","prevEvent","prevTimeStamp","timeStamp","prevClientX","prevClientY","setColumnWidth","storeReferences","xStart","findGroupHeaderElementsFromField","findGridCellElementsFromCol","findLeftPinnedCellsAfterCol","findRightPinnedCellsBeforeCol","findLeftPinnedHeadersAfterCol","findRightPinnedHeadersBeforeCol","side","flipResizeDirection","getResizeDirection","computeOffsetToSeparator","handleResizeMouseUp","handleResizeMouseMove","buttons","handleTouchEnd","finger","handleTouchStart","cellSeparator","removeProperty","handleResizeStart","handleResizeStop","handleColumnResizeMouseDown","handleColumnSeparatorDoubleClick","autosizeColumns","autosizeOptions","columnVirtualizationDisabled","isAutosizingRef","userOptions","unstable_setColumnVirtualization","newColumns","totalWidth","total","remainingWidth","widthPerColumn","updateColumns","onColumnResize","onColumnWidthChange","property","delta","isRowRangeUpdated","range1","range2","cellValue","rowSpanValueGetter","EMPTY_STATE","EMPTY_RANGE","skippedFields","computeRowSpanningState","colDefs","rangeToProcess","resetState","processedRange","spannedRowId","spannedRowIndex","rowSpan","backwardsHiddenCells","prevIndex","prevRowEntry","currentRow","hiddenCellIndex","relativeIndex","rowSpanningStateInitializer","isFilteringPending","listViewStateInitializer","unstable_listColumn","getListColumnWidth","useDataGridComponent","useGridRowsPreProcessors","previousColumnsProp","onColumnVisibilityModelChange","setGridColumnsState","useVisibleColumns","getColumnPosition","setColumnVisibility","isVisible","getColumnIndexRelativeToVisibleColumns","setColumnIndex","targetIndexPosition","oldIndexPosition","updatedColumns","fieldRemoved","targetIndex","oldIndex","columnReorderApi","columnsStateToExport","columnVisibilityModelToExport","colDefDimensions","propertyName","propertyValue","columnVisibilityModelToImport","preferencePanelPreProcessing","ColumnsPanel","columnsPanel","addColumnMenuItems","columnMenuItems","prevInnerWidth","hydrateColumns","useGridColumns","lastUpdateMs","lastRowCount","getRowIdProp","throttledRowsChange","run","throttleRemainingTimeMs","prevCache","updateServerRows","setLoading","getRowModels","dataRows","getRowsCount","setRowChildrenExpansion","isExpanded","currentNode","newNode","getRowGroupChildren","applySorting","applyFiltering","setRowIndex","allRows","updatedRows","rowApi","unstable_replaceRows","seenIds","removedRowId","rowTreeNodeConfig","rowProApi","rowProPrivateApi","groupRows","previousDataSource","handleStrategyProcessorChange","handleStrategyActivityChange","applyHydrateRowsProcessor","isRowCountPropUpdated","areNewRowsAlreadyInState","isNewLoadingAlreadyInState","isNewRowCountAlreadyInState","useGridRows","lastRange","updateRowSpanningState","isRowContextInitialized","testRange","getUnprocessedRange","newProcessedRange","newSpannedCellsCount","newHiddenCellsCount","currentSpannedCellsCount","currentHiddenCellsCount","prevRenderContext","shouldResetState","firstRender","useGridRowSpanning","resetColSpan","columnSpanningPrivateApi","useGridColumnSpanning","handleColumnIndexChange","updateColumnGroupingState","getPinnedColumns","useGridColumnGrouping","lastClickedCell","publishCellFocusOut","getColumnGroupHeaderFocus","columnIndexToFocus","rowIndexToFocus","rowToFocus","colSpanInfo","columnToFocus","handleColumnHeaderFocus","handleColumnGroupHeaderFocus","handleBlur","relatedTarget","handleCellMouseDown","handleDocumentClick","handleCellModeChange","handleRowSet","lastFocusedRowId","lastFocusedRowIndex","nextRow","currentFocusedCell","focusPrivateApi","useGridFocus","hideTimeout","immediateTimeout","hidePreferences","doNotHidePanel","hidePreferencesDelayed","showPreferences","preferencePanelToExport","useGridPreferencesPanel","onFilterModelChange","updateFilteredRows","getFilterState","visibleRowsLookupState","addColumnMenuItem","applyFilters","upsertFilterItem","itemIndex","setFilterModel","upsertFilterItems","existingItems","deleteFilterItem","itemToDelete","showFilterPanel","targetColumnField","filterItemsWithValue","newFilterItems","filterItemOnTarget","targetColumn","hideFilterPanel","setFilterLogicOperator","setQuickFilterValues","unstable_applyFilters","inputFilterModel","isRowMatchingFilters","filterResult","filterApi","filterModelToExport","callbacks","FilterPanel","filterPanel","getRowsRef","flatFilteringMethod","filterCache","isRowPassing","handleColumnsChange","updateVisibleRowsLookupState","useGridFilter","onSortModelChange","upsertSortModel","existingIdx","newSortModel","createSortItem","directionOverride","existing","nextSort","sortRowList","comparatorList","getSortComparator","getSortCellParams","parseSortItem","rowList","compareRows","row1","row2","sortCellParams1","sortCellParams2","buildAggregatedSortingApplier","setSortModel","sortColumn","allowMultipleSorting","getSortModel","getSortedRowIds","getRowIdFromRowIndex","sortModelToExport","flatSortingMethod","sortedChildren","handleColumnHeaderClick","latestColumns","useGridSorting","onDensityChange","setDensity","newDensity","exportedDensity","restoredDensity","useGridDensity","getRowHeightProp","getRowSpacing","getEstimatedRowHeight","heightCache","lastMeasuredRowIndex","isHeightMetaValid","processHeightEntry","getRowHeightEntry","rowHeightFromUser","needsFirstMeasurement","estimatedRowHeight","indexRelativeToCurrentPage","spacingTop","spacingBottom","hydrateRowsMeta","detail","resizeObserver","borderBoxSize","blockSize","__mui_id","unstable_storeRowHeightMeasurement","rowsMetaApi","unstable_setLastMeasuredRowIndex","didChange","resetRowHeights","rowsMetaPrivateApi","observeRowHeight","useGridRowsMeta","colRef","scrollCoordinates","cellWidth","elementIndex","targetOffsetHeight","getScrollPosition","useGridScroll","showColumnMenu","hideColumnMenu","visibleOrderedFields","fieldIndex","useGridColumnMenu","onColumnHeaderClick","onColumnHeaderContextMenu","onColumnHeaderDoubleClick","onColumnHeaderOver","onColumnHeaderOut","onColumnHeaderEnter","onColumnHeaderLeave","onCellClick","onCellDoubleClick","onCellKeyDown","onPreferencePanelClose","onPreferencePanelOpen","onMenuOpen","onMenuClose","onRowDoubleClick","onRowClick","onStateChange","useGridEvents","useGridStatePersistence","setVirtualization","unstable_setVirtualization","useGridVirtualization","updateListColumnWidth","listColumn","useGridListView","GRID_DEFAULT_LOCALE_TEXT","noRowsLabel","noResultsOverlayLabel","toolbarDensity","toolbarDensityLabel","toolbarDensityCompact","toolbarDensityStandard","toolbarDensityComfortable","toolbarColumns","toolbarColumnsLabel","toolbarFilters","toolbarFiltersLabel","toolbarFiltersTooltipHide","toolbarFiltersTooltipShow","toolbarFiltersTooltipActive","toolbarQuickFilterPlaceholder","toolbarQuickFilterLabel","toolbarQuickFilterDeleteIconLabel","toolbarExport","toolbarExportLabel","toolbarExportCSV","toolbarExportPrint","toolbarExportExcel","columnsManagementSearchTitle","columnsManagementNoColumns","columnsManagementShowHideAllText","columnsManagementReset","columnsManagementDeleteIconLabel","filterPanelAddFilter","filterPanelRemoveAll","filterPanelDeleteIconLabel","filterPanelLogicOperator","filterPanelOperator","filterPanelOperatorAnd","filterPanelOperatorOr","filterPanelColumns","filterPanelInputLabel","filterPanelInputPlaceholder","filterOperatorContains","filterOperatorDoesNotContain","filterOperatorEquals","filterOperatorDoesNotEqual","filterOperatorStartsWith","filterOperatorEndsWith","filterOperatorIs","filterOperatorNot","filterOperatorAfter","filterOperatorOnOrAfter","filterOperatorBefore","filterOperatorOnOrBefore","filterOperatorIsEmpty","filterOperatorIsNotEmpty","filterOperatorIsAnyOf","headerFilterOperatorContains","headerFilterOperatorDoesNotContain","headerFilterOperatorEquals","headerFilterOperatorDoesNotEqual","headerFilterOperatorStartsWith","headerFilterOperatorEndsWith","headerFilterOperatorIs","headerFilterOperatorNot","headerFilterOperatorAfter","headerFilterOperatorOnOrAfter","headerFilterOperatorBefore","headerFilterOperatorOnOrBefore","headerFilterOperatorIsEmpty","headerFilterOperatorIsNotEmpty","headerFilterOperatorIsAnyOf","filterValueAny","filterValueTrue","filterValueFalse","columnMenuLabel","columnMenuShowColumns","columnMenuManageColumns","columnMenuFilter","columnMenuHideColumn","columnMenuUnsort","columnMenuSortAsc","columnMenuSortDesc","columnHeaderFiltersTooltipActive","columnHeaderFiltersLabel","columnHeaderSortIconLabel","footerRowSelected","footerTotalRows","footerTotalVisibleRows","visibleCount","totalCount","checkboxSelectionHeaderName","checkboxSelectionSelectAllRows","checkboxSelectionUnselectAllRows","checkboxSelectionSelectRow","checkboxSelectionUnselectRow","booleanCellTrueLabel","booleanCellFalseLabel","actionsCellMore","pinToLeft","pinToRight","unpin","treeDataGroupingHeaderName","treeDataExpand","treeDataCollapse","groupingColumnHeaderName","groupColumn","unGroupColumn","detailPanelToggle","expandDetailPanel","collapseDetailPanel","MuiTablePagination","rowReorderingHeaderName","aggregationMenuItemHeader","aggregationFunctionLabelSum","aggregationFunctionLabelAvg","aggregationFunctionLabelMin","aggregationFunctionLabelMax","aggregationFunctionLabelSize","CIRCULAR_CONTENT_SIZE","DEFAULT_CONTENT_WIDTH_RANGE","CONTENT_WIDTH_RANGE_BY_TYPE","randomNumberGenerator","seed","imul","createRandomNumberGenerator","empty","skeletonProps","Skeleton","GridIconButtonContainerRoot","GridIconButtonContainer","GridColumnHeaderSortIconRaw","iconElement","icons","iconProps","columnSortedAscendingIcon","columnSortedDescendingIcon","columnUnsortedIcon","getIcon","iconButton","baseBadge","GridColumnHeaderSortIcon","GridSelectedRowCountRoot","selectedRowCount","GridSelectedRowCount","rowSelectedText","GridFooterContainerRoot","GridFooterContainer","GridFooter","selectedRowCountElement","rowCountElement","footerRowCount","paginationElement","GridRowCountRoot","GridRowCount","GridOverlayRoot","GridOverlay","getPinnedCellOffset","pinnedOffset","shouldCellShowRightBorder","indexInSection","sectionLength","showCellVerticalBorderRootProp","gridHasFiller","isSectionLastCell","shouldCellShowLeftBorder","scrollbarFiller","pinnedRight","GridScrollbarFillerCell","SkeletonOverlay","skeletonLoadingOverlay","getColIndex","GridSkeletonLoadingOverlay","forwardedRef","viewportHeight","skeletonRowsCount","inViewportCount","allVisibleColumns","getPinnedStyle","getPinnedPosition","rowCells","isPinnedLeft","isPinnedRight","sectionIndex","pinnedStyle","showRightBorder","showLeftBorder","isLastColumn","isFirstPinnedRight","hasFillerBefore","hasFillerAfter","expandedWidth","emptyCellWidth","emptyCell","skeletonCell","hasScrollbarFiller","rowSkeleton","resizedColIndex","currentWidth","getPropertyValue","pinnedCells","LOADING_VARIANTS","CircularProgress","skeleton","GridLoadingOverlay","noRowsVariant","rowsCount","activeVariant","GridNoRowsOverlay","GridPaginationRoot","TablePagination","estimated","GridPagination","estimatedRowCount","computedProps","lastPage","computedPage","handlePageSizeChange","handlePageChange","isPageSizeIncludedInPageSizeOptions","locales","wrappedLabelDisplayedRows","GridPanelContentRoot","GridPanelContent","GridPanelFooterRoot","panelFooter","GridPanelFooter","GridPanelWrapperRoot","panelWrapper","isEnabled","GridPanelWrapper","FocusTrap","disableEnforceFocus","TrapFocus","GridFilterFormRoot","filterForm","FilterFormDeleteIcon","filterFormDeleteIcon","marginBottom","FilterFormLogicOperatorInput","filterFormLogicOperatorInput","FilterFormColumnInput","filterFormColumnInput","FilterFormOperatorInput","filterFormOperatorInput","FilterFormValueInput","filterFormValueInput","getColumnLabel","GridFilterForm","hasMultipleFilters","deleteFilter","applyFilterChanges","showMultiFilterOperators","disableMultiFilterOperator","applyMultiFilterOperatorChanges","logicOperators","Or","columnsSort","filterColumns","deleteIconProps","logicOperatorInputProps","operatorInputProps","columnInputProps","valueInputProps","readOnly","filterableColumns","columnSelectId","columnSelectLabelId","operatorSelectId","operatorSelectLabelId","deleteIcon","logicOperatorInput","columnInput","operatorInput","valueInput","valueRef","filterSelectorRef","multiFilterOperator","hasLogicOperatorColumn","baseFormControlProps","isBaseSelectNative","baseInputLabelProps","valueInputPropsOther","selectedField","itemField","selectedNonFilterableColumn","filteredFields","currentFilters","isFieldIncluded","sortedFilteredColumns","currentColumn","currentOperator","changeColumn","newOperator","changeOperator","op","eraseItemValue","changeLogicOperator","filterPanelDeleteIcon","sx","getLogicOperatorLocaleKey","getGridFilter","GridFilterPanel","filterableColumnsLookup","lastFilterRef","placeholderFilter","filterFormProps","getColumnForNewFilter","disableAddFilterButton","disableRemoveAllButton","applyFilter","applyFilterLogicOperator","getDefaultFilter","nextColumnWithOperator","nextFieldName","getNewFilter","nextColumnFieldName","readOnlyFilters","validFilters","addNewFilter","newFilter","shouldCloseFilterPanel","handleRemoveAll","filterPanelAddIcon","filterPanelRemoveAllIcon","defaultSearchPredicate","searchValue","GridColumnsManagementBody","columnsManagement","GridColumnsManagementHeader","columnsManagementHeader","SearchInput","TextField","columnsManagementSearchInput","inputBaseClasses","GridColumnsManagementFooter","columnsManagementFooter","GridColumnsManagementEmptyText","gridPanelClasses","GridPanelRoot","GridPaperRoot","GridPanel","isPlaced","setIsPlaced","modifiers","rootBoundary","phase","setAnchorEl","panelAnchor","cachedSupportsPreventScroll","PinnedPosition","gridPinnedColumnPositionLookup","VIRTUAL","EMPTY_CELL_PARAMS","GridCell","editCellState","styleProp","disableDragEvents","onDoubleClick","onMouseDown","onMouseUp","onMouseOver","onKeyUp","onDragEnter","canManageOwnFocus","rootClasses","getCellClassName","classNames","valueToRender","cellRef","isSelectionMode","cellSelection","publishMouseUp","publishMouseDown","publish","propHandler","isCellRowSpanned","cellStyle","isLeftPinned","isRightPinned","focusableElement","elementToFocus","handleFocus","onFocus","updatedRow","editCellStateRest","valueString","draggableEventHandlers","MemoizedGridCell","EmptyCell","cellEmpty","GridRow","refProp","onMouseEnter","onMouseLeave","onMouseOut","treeDepth","editRowsState","hasColumnVirtualization","hasFocusCell","hasVirtualFocusCellLeft","hasVirtualFocusCellRight","composeGridClasses","getRowAriaAttributes","useGridRowAriaAttributes","publishClick","rowReordering","heightEntry","rowStyle","rowClassNames","getRowClassName","getCell","indexRelativeToAllColumns","isReorderCell","isEditingRows","canReorderColumn","canReorderRow","cellIsNotVisible","leftCells","rightCells","middleColumnsLength","eventHandlers","cellOffsetLeft","MemoizedGridRow","ColumnHeaderMenuIcon","columnMenuId","columnMenuButtonId","iconButtonRef","handleMenuIconClick","columnMenuIcon","GridColumnHeaderMenu","ContentComponent","contentComponentProps","labelledby","GridColumnHeaderTitleRoot","ColumnHeaderInnerTitle","GridColumnHeaderTitle","description","titleRef","setTooltip","handleMouseOver","isOver","scrollHeight","clientHeight","GridColumnHeaderSeparatorSides","GridColumnHeaderSeparatorRaw","Right","resizing","stopClick","columnResizeIcon","GridColumnHeaderSeparator","GridGenericColumnHeaderItem","isResizing","separatorSide","isDraggable","headerComponent","columnMenuIconButton","columnTitleIconButtons","draggableContainerProps","columnHeaderSeparatorProps","headerCellRef","draggableContainer","draggable","titleContainer","titleContainerContent","columnWidth","columnMenuOpen","isLast","filterItemsCounter","showColumnMenuIcon","setShowColumnMenuIcon","isDragging","isLastUnpinned","isSiblingFocused","isColumnSorted","isColumnFiltered","isColumnNumeric","mouseEventsHandlers","onContextMenu","onBlur","onDragStart","onDragEnd","handleExited","showSortIcon","hideSortIcons","columnHeaderFilterIconButton","counter","columnHeaderSortIcon","elementId","GridColumnGroupHeader","columnGroupsLookup","renderHeaderGroup","renderParams","GridColumnHeaderRow","columnHeaderRow","GridColumnHeadersRoot","GridBaseColumnHeaders","MemoizedGridColumnHeaders","getInnerProps","getColumnHeadersRow","getColumnGroupHeadersRows","dragCol","setDragCol","resizeCol","setResizeCol","columnGroupsModel","handleColumnResizeStart","handleColumnResizeStop","handleColumnReorderStart","handleColumnReorderStop","leftRenderContext","rightRenderContext","getColumnsToRender","currentContext","renderedColumns","getFillers","leftOverflow","isNotPinned","leftOffsetWidth","getCellOffsetStyle","getColumnHeaders","isFirstColumn","siblingWithBorderingSeparator","getColumnGroupHeaders","columnsToRender","rowStructure","firstColumnFieldToRender","firstGroupToRender","firstGroupIndex","lastColumnFieldToRender","lastGroupToRender","lastGroupIndex","visibleColumnGroupHeader","groupStructure","firstVisibleColumnIndex","headerInfo","Left","useGridColumnHeaders","StyledMenuList","GridColumnMenuContainer","handleListKeyDown","GridColumnMenuHideItem","toggleColumn","ListItemIcon","columnMenuHideIcon","ListItemText","GridColumnMenuManageItem","showColumns","columnMenuManageColumnsIcon","GRID_COLUMN_MENU_SLOTS","columnMenuSortItem","onSortMenuItemClick","getLabel","columnMenuSortAscendingIcon","columnMenuSortDescendingIcon","columnMenuFilterItem","showFilter","columnMenuFilterIcon","columnMenuColumnsItem","GRID_COLUMN_MENU_SLOT_PROPS","displayOrder","GridGenericColumnMenu","defaultSlots","defaultSlotProps","orderedSlots","addDividers","processedComponents","processedSlotProps","mergedProps","currentSlotProps","defaultItems","userItems","defaultComponentKeys","sorted","leftItemProps","rightItemProps","isFinite","itemProps","processedComponentProps","customProps","baseDivider","useGridColumnMenuSlots","GridColumnMenu","GridNoResultsOverlay","GridColumnUnsortedIcon","nextSortDirection","GridArrowUpwardIcon","GridArrowDownwardIcon","GridKeyboardArrowRight","GridExpandMoreIcon","GridFilterListIcon","GridFilterAltIcon","GridSearchIcon","GridColumnIcon","GridSeparatorIcon","GridViewHeadlineIcon","GridTableRowsIcon","GridViewStreamIcon","GridTripleDotsVerticalIcon","GridCloseIcon","GridAddIcon","GridRemoveIcon","GridLoadIcon","GridDragIcon","GridSaveAltIcon","GridCheckIcon","GridMoreVertIcon","GridVisibilityOffIcon","GridViewColumnIcon","GridClearIcon","GridDeleteForeverIcon","iconSlots","openFilterButtonIcon","columnFilteredIcon","columnSelectorIcon","densityCompactIcon","densityStandardIcon","densityComfortableIcon","treeDataCollapseIcon","treeDataExpandIcon","groupingCriteriaCollapseIcon","groupingCriteriaExpandIcon","detailPanelExpandIcon","detailPanelCollapseIcon","rowReorderIcon","quickFilterIcon","quickFilterClearIcon","columnMenuClearIcon","columnReorderIcon","baseInputAdornment","DATA_GRID_DEFAULT_SLOTS_COMPONENTS","material","toggleFilter","noResultsOverlay","noRowsOverlay","searchInputRef","initialColumnVisibilityModel","setSearchValue","searchInput","searchPredicate","autoFocusSearchField","disableShowHideToggle","disableResetButton","toggleAllMode","getTogglableColumns","searchInputProps","isResetDisabled","aFalseValues","bFalseValues","checkColumnVisibilityModelsSame","sortedColumns","togglableColumns","togglableSortedColumns","toggleAllColumns","handleSearchValueChange","hideableColumns","allHideableColumnsVisible","allHideableColumnsHidden","firstSwitchRef","firstHideableColumnFound","isFirstHideableColumn","handleSearchReset","startAdornment","autoComplete","FormControlLabel","control","useProps","allProps","startsWith","forwardedProps","groupForwardedProps","DATA_GRID_FORCED_PROPS","useDataGridProps","themedProps","overrides","computeSlots","injectDefaultProps","accessibleRowCount","ariaRowIndex","DataGridRaw","propTypes","isRequired","experimentalFeatures","warnIfFocusStateIsNotSynced","getDetailPanelContent","nonce","onColumnOrderChange","maxListeners","warnOnce","events","listener","collection","highPriority","regular","removeAllListeners","highPriorityListeners","regularListeners","once","that","oneTimeListener","_interopRequireWildcard","React","hiddenStyles","HiddenText","visuallyHidden","clip","clipPath","LiveRegion","announcement","DndMonitorContext","defaultScreenReaderInstructions","defaultAnnouncements","_ref2","over","_ref3","onDragCancel","_ref4","Accessibility","announcements","hiddenTextDescribedById","screenReaderInstructions","announce","setAnnouncement","useAnnouncement","liveRegionId","useUniqueId","setMounted","registerListener","useDndMonitor","onDragMove","_ref5","_ref6","markup","Action","useSensor","sensor","useSensors","sensors","_len","_key","defaultCoordinates","distanceBetween","p1","p2","sqrt","pow","getRelativeTransformOrigin","rect","eventCoordinates","getEventCoordinates","sortCollisionsAsc","sortCollisionsDesc","centerOfRectangle","closestCenter","collisionRect","droppableRects","droppableContainers","centerRect","collisions","droppableContainer","distBetween","getIntersectionRatio","targetArea","entryArea","intersectionArea","toFixed","rectIntersection","intersectionRatio","getRectDelta","rect1","rect2","createRectAdjustmentFn","modifier","adjustments","adjustment","getAdjustedRect","parseTransform","transformArray","scaleX","scaleY","defaultOptions","ignoreTransform","getClientRect","getWindow","parsedTransform","translateX","translateY","inverseTransform","getTransformAgnosticClientRect","getScrollableAncestors","limit","scrollParents","findScrollableAncestors","isDocument","scrollingElement","isSVGElement","overflowRegex","isScrollable","isFixed","parentNode","getFirstScrollableAncestor","firstScrollableAncestor","getScrollableElement","canUseDOM","isWindow","isNode","getOwnerDocument","getScrollXCoordinate","scrollX","getScrollYCoordinate","scrollY","getScrollCoordinates","Direction","isDocumentScrollingElement","scrollingContainer","minScroll","innerHeight","innerWidth","maxScroll","isTop","isLeft","isBottom","isRight","defaultThreshold","getScrollDirectionAndSpeed","scrollContainer","scrollContainerRect","acceleration","thresholdPercentage","speed","Backward","Forward","getScrollElementRect","getScrollOffsets","scrollableAncestors","scrollIntoViewIfNeeded","measure","block","inline","properties","Rect","scrollOffsets","axis","getScrollOffset","defineProperty","currentOffsets","scrollOffsetsDeltla","enumerable","Listeners","removeAll","_this$target","_this$target2","hasExceededDistance","measurement","EventName","KeyboardCode","defaultKeyboardCodes","Space","Enter","cancel","Esc","defaultKeyboardCoordinateGetter","currentCoordinates","code","Down","Up","KeyboardSensor","autoScrollEnabled","referenceCoordinates","windowListeners","handleCancel","attach","handleStart","Resize","VisibilityChange","Keydown","activeNode","onStart","keyboardCodes","coordinateGetter","scrollBehavior","handleEnd","newCoordinates","coordinatesDelta","subtract","scrollDelta","scrollElementRect","clampedCoordinates","canScrollX","canScrollY","newScrollCoordinates","canScrollToNewCoordinates","scrollTo","behavior","scrollBy","handleMove","coordinates","onMove","onEnd","detach","onCancel","isDistanceConstraint","constraint","isDelayConstraint","activators","onActivation","activator","activatorNode","AbstractPointerSensor","listenerTarget","EventTarget","getEventListenerTarget","activated","initialCoordinates","timeoutId","documentListeners","_getEventCoordinates","handleKeydown","removeTextSelection","activationConstraint","move","DragStart","ContextMenu","delay","Click","SelectionChange","_getEventCoordinates2","tolerance","distance","cancelable","_this$document$getSel","PointerSensor","isPrimary","events$1","MouseButton","RightClick","events$2","TouchSensor","AutoScrollActivator","TraversalOrder","useAutoScroller","Pointer","canScroll","draggingRect","order","TreeOrder","pointerCoordinates","scrollableAncestorRects","scrollIntent","previousDelta","usePrevious","useLazyMemo","previousIntent","defaultScrollIntent","sign","useScrollIntent","setAutoScrollInterval","clearAutoScrollInterval","useInterval","scrollSpeed","DraggableRect","scrollContainerRef","autoScroll","sortedScrollableAncestors","reverse","touches","MeasuringStrategy","MeasuringFrequency","defaultValue","useInitialValue","computeFn","previousValue","useResizeObserver","useEvent","defaultMeasure","useRect","fallbackRect","measureRect","useReducer","currentRect","isConnected","newRect","mutationObserver","handleMutations","MutationObserver","useMutationObserver","records","record","useIsomorphicLayoutEffect","childList","subtree","defaultValue$1","useScrollOffsetsDelta","initialScrollOffsets","hasScrollOffsets","useWindowRect","getWindowClientRect","defaultValue$2","getMeasurableNode","defaultSensors","defaultData","defaultMeasuringConfiguration","droppable","WhileDragging","frequency","Optimized","dragOverlay","DroppableContainersMap","_super$get","toArray","getEnabled","getNodeFor","_this$get$node$curren","_this$get","defaultPublicContext","activatorEvent","activeNodeRect","containerNodeRect","draggableNodes","nodeRef","setRef","measuringConfiguration","measureDroppableContainers","windowRect","measuringScheduled","defaultInternalContext","ariaDescribedById","dispatch","InternalContext","PublicContext","getInitialState","translate","containers","reducer","DragMove","DragEnd","DragCancel","RegisterDroppable","SetDroppableDisabled","UnregisterDroppable","RestoreFocus","previousActivatorEvent","previousActiveId","draggableNode","focusableNode","findFirstFocusableNode","applyModifiers","accumulator","ActiveDraggableContext","Status","DndContext","memo","accessibility","collisionDetection","measuring","dispatchMonitorEvent","registerMonitorListener","_listener$type","useDndMonitorProvider","status","setStatus","Uninitialized","Initialized","activeId","activeRects","initial","translated","_node$data","activeRef","activeSensor","setActiveSensor","setActivatorEvent","latestProps","useLatestValue","draggableDescribedById","enabledDroppableContainers","config","useMeasuringConfiguration","containerIdsScheduledForMeasurement","setContainerIdsScheduledForMeasurement","containersRef","Always","BeforeDragging","isDisabled","disabledRef","useDroppableMeasuring","cachedNode","useCachedNode","activationCoordinates","autoScrollOptions","activeSensorDisablesAutoscroll","autoScrollGloballyDisabled","getAutoScrollerOptions","initialActiveNodeRect","useInitialRect","initialRect","initialized","rectDelta","useLayoutShiftScrollCompensation","layoutShiftCompensation","parentElement","sensorContext","draggingNode","draggingNodeRect","scrollAdjustedTranslate","overNode","_sensorContext$curren","setRect","handleNodeChange","useNodeRef","useDragOverlayMeasuring","_dragOverlay$nodeRef$","_dragOverlay$rect","usesDragOverlay","nodeRectDelta","previousNode","ancestors","useScrollableAncestors","firstElement","rects","measureRects","useRects","modifiedTranslate","overlayNodeRect","setScrollCoordinates","prevElements","previousElements","scrollableElement","useScrollOffsets","scrollAdjustment","activeNodeScrollDelta","overId","firstCollision","getFirstCollision","setOver","adjustScale","_over$rect","instantiateSensor","Sensor","sensorInstance","unstable_batchedUpdates","Initializing","createHandler","cancelDrop","bindActivatorToSensorInstantiator","activeDraggableNode","dndKit","activationContext","capturedBy","getSyntheticHandler","useCombineActivators","teardownFns","setup","teardown","useSensorSetup","overContainer","publicContext","internalContext","restoreFocus","NullContext","defaultRole","useDraggable","roleDescription","setNodeRef","setActivatorNodeRef","useSyntheticListeners","dataRef","useDndContext","defaultResizeObserverConfig","useDroppable","resizeObserverConfig","resizeObserverConnected","callbackId","resizeObserverDisabled","updateMeasurementsFor","resizeObserverTimeout","newElement","previousElement","AnimationManager","clonedChildren","setClonedChildren","setElement","previousChildren","cloneElement","defaultTransform","NullifiedContextProvider","baseStyles","defaultTransition","PositionedOverlay","scaleAdjustedTransform","CSS","defaultDropAnimationSideEffects","originalStyles","defaultDropAnimationConfiguration","keyframes","final","sideEffects","useDropAnimation","activeDraggable","measurableNode","rest","scale","finalTransform","animationKeyframes","firstKeyframe","lastKeyframe","animate","onfinish","createDefaultDropAnimation","useKey","DragOverlay","dropAnimation","dropAnimationConfig","wrapperElement","modifiedTransform","arrayMove","newArray","getSortedRects","isValidIndex","rectSortingStrategy","activeIndex","overIndex","newRects","oldRect","defaultScale$1","verticalListSortingStrategy","fallbackActiveRect","_rects$activeIndex","overIndexRect","itemGap","clientRects","previousRect","nextRect","getItemGap$1","ID_PREFIX","containerId","disableTransforms","useDragOverlay","sortedRects","SortableContext","userDefinedItems","disabledProp","previousItemsRef","itemsHaveChanged","itemsEqual","normalizeDisabled","defaultNewIndexGetter","defaultAnimateLayoutChanges","isSorting","wasDragging","previousItems","previousContainerId","transitionProperty","disabledTransition","defaultAttributes","useSortable","animateLayoutChanges","userDefinedAttributes","localDisabled","customData","localStrategy","globalDisabled","globalStrategy","_localDisabled$dragga","_localDisabled$droppa","normalizeLocalDisabled","itemsAfterCurrentSortable","setDroppableNodeRef","setDraggableNodeRef","useCombinedRefs","displaceItem","shouldDisplaceDragSource","dragSourceDisplacement","shouldAnimateLayoutChanges","derivedTransform","setDerivedtransform","previousIndex","useDerivedTransform","getTransition","elementString","_target$ownerDocument","_target$ownerDocument2","defaultView","Document","SVGElement","intervalRef","setInterval","clearInterval","onChangeHandler","createAdjustmentFn","_len2","_key2","valueAdjustment","TouchEvent","isTouchEvent","hasViewportRelativeCoordinates","Translate","Scale","Transform","Transition","SELECTOR","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","clone","defaultArrayMerge","getKeys","getOwnPropertySymbols","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","mergeObject","destination","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","deepmerge_1","ElementType","Doctype","CDATA","Tag","Style","Script","Comment","Directive","Text","isTag","ClassNames","asSelectors","focusElement","focusPrevElementSibling","previousElementSibling","focusNextElementSibling","nextElementSibling","focusFirstElementChild","firstElementChild","ElementRefContextProvider","PickerMainRef","AnchoredEmojiRef","BodyRef","SearchInputRef","SkinTonePickerRef","CategoryNavigationRef","VariationPickerRef","ElementRefContext","SuggestionMode","EmojiStyle","Theme","SkinTones","Categories","SkinTonePickerLocation","createRef","useElementRef","usePickerMainRef","useAnchoredEmojiRef","useSetAnchoredEmojiRef","useBodyRef","useSearchInputRef","useSkinTonePickerRef","useCategoryNavigationRef","_setPrototypeOf","_arrayLikeToArray","arr","len","arr2","_createForOfIteratorHelperLoose","allowArrayLike","it","iterator","minLen","_unsupportedIterableToArray","done","EmojiProperties","emojis","smileys_people","animals_nature","food_drink","travel_places","activities","objects","symbols","skinToneVariations","NEUTRAL","LIGHT","MEDIUM_LIGHT","MEDIUM","MEDIUM_DARK","DARK","skinTonesNamed","skinTonesMapped","mapped","skinTone","_Object$assign","emojiNames","emoji","_emoji$EmojiPropertie","emojiName","unifiedWithoutSkinTone","unified","splat","emojiUnified","_emojiVariationUnifie","emojiHasVariations","emojiVariations","variation","emojiVariationUnified","emojisByCategory","category","_emojis$category","emojiUrlByUnified","emojiStyle","TWITTER","GOOGLE","FACEBOOK","APPLE","cdnUrl","_emoji$EmojiPropertie2","variations","emojiByUnified","allEmojisByUnified","withoutSkinTone","_configByCategory","allEmojis","flat","Emoji","categoriesOrdered","SUGGESTED","SMILEYS_PEOPLE","ANIMALS_NATURE","FOOD_DRINK","TRAVEL_PLACES","ACTIVITIES","OBJECTS","SYMBOLS","FLAGS","SuggestedRecent","configByCategory","baseCategoriesConfig","categoryFromCategoryConfig","categoryNameFromCategoryConfig","getBaseConfigByCategory","mergeConfig","userConfig","_userConfig$previewCo","basePickerConfig","previewConfig","categories","userCategoriesConfig","_userCategoriesConfig","extra","suggestionMode","RECENT","mergeCategoriesConfig","suggestedEmojisMode","skinTonePickerLocation","searchDisabled","PREVIEW","autoFocusSearch","defaultSkinTone","emojiVersion","getEmojiUrl","lazyLoadEmojis","onEmojiClick","basePreviewConfig","searchPlaceHolder","SEARCH","skinTonesDisabled","FREQUENT","unicodeToHide","defaultEmoji","defaultCaption","showPreview","ConfigContext","PickerConfigProvider","excluded","sourceKeys","_objectWithoutPropertiesLoose","usePickerConfig","useSkinTonesDisabledConfig","useEmojiStyleConfig","useCategoriesConfig","usePreviewConfig","useThemeConfig","AUTO","useSearchDisabledConfig","useSkinTonePickerLocationConfig","useGetEmojiUrlConfig","getDimension","dimensionConfig","alphaNumericEmojiIndex","useDebouncedState","_useState","timer","_window","useIsUnicodeHidden","useDisallowedEmojis","DisallowedEmojisRef","emojiVersionConfig","disallowedEmojis","supportedLevel","added_in","addedIn","addedInNewerVersion","PickerContextProvider","filterRef","disallowClickRef","disallowMouseRef","disallowedEmojisRef","suggestedUpdateState","searchTerm","skinToneFanOpenState","activeSkinTone","activeCategoryState","emojisThatFailedToLoadState","emojiVariationPickerState","isPastInitialLoad","setIsPastInitialLoad","PickerContext","searchIndex","_char","_searchIndex$_char","useFilterRef","useDisallowMouseRef","useSearchTermState","useActiveSkinToneState","useEmojisThatFailedToLoadState","useEmojiVariationPickerState","useSkinToneFanOpenState","useUpdateSuggested","suggestedUpdated","setsuggestedUpdate","useAllowMouseMove","DisallowMouseRef","useIsMouseDisallowed","elementCountInRow","parentWidth","elementWidth","elementIndexInRow","elementLeft","parentLeft","rowNumber","elementHeight","elementTop","parentTop","getRowElements","elementsInRow","firstElementIndex","lastElementIndex","getElementInRow","indexInRow","rowElements","getElementInNextRow","allElements","nextRowElements","getNextRowElements","EmojiButtonSelector","VisibleEmojiSelector","visible","buttonFromTarget","emojiElement","_emojiElement$closest","emojiFromElement","originalUnified","originalUnifiedFromEmojiElement","unifiedFromEmojiElement","_element$clientHeight","emojiTrueOffsetTop","closestCategory","labelHeight","categoryLabelHeight","elementOffsetTop","_category$clientHeigh","_categoryWithoutLabel","categoryWithoutLabel","categoryContent","queryScrollBody","scrollBody","emojiDistanceFromScrollTop","_closestScrollBody$sc","_closestScrollBody","closestScrollBody","_element$closest","_element$offsetTop","elementOffsetLeft","_element$offsetLeft","_elementDataSetKey","_elementDataSet$key","_element$dataset","dataset","elementDataSet","isVisibleEmoji","isHidden","allVisibleEmojis","lastVisibleEmoji","prevVisibleEmoji","nextVisibleEmoji","firstVisibleEmoji","nextCategory","prevCategory","parentBottom","elementBottom","firstVisibleElementInContainer","closestCategoryContent","parseNativeEmoji","hex","fromCodePoint","SUGGESTED_LS_KEY","getSuggested","_window$localStorage$","_window2","recent","_unused","useCloseAllOpenToggles","_useEmojiVariationPic","variationPicker","setVariationPicker","_useSkinToneFanOpenSt","skinToneFanOpen","setSkinToneFanOpen","useHasOpenToggles","useSetVariationPicker","setAnchoredEmojiRef","setEmojiVariationPicker","useMouseDownHandlers","mouseDownTimerRef","closeAllOpenToggles","updateSuggested","_emojiFromEvent","emojiFromEvent","skinToneToUse","suspectedSkinTone","activeVariationFromUnified","nextList","original","_window3","_unused2","setSuggested","getImageUrl","names","emojiClickOutput","bodyRef","_element$parentElemen","$eprBody","scrollEmojiAboveLabel","isEmojiBehindLabel","by","useFocusSearchInput","useFocusCategoryNavigation","useClearSearch","applySearch","useApplySearch","focusSearchInput","useFilter","setFilterRef","setFilter","setter","useSetFilterRef","nextValue","longestMatch","keyword","dict","longestMatchingKey","findLongestMatch","filtered","hasMatch","filterEmojiObjectByKeyword","setSearchTerm","getNormalizedSearchTerm","str","useIsEmojiHidden","emojisThatFailedToLoad","isEmojiFiltered","_filter$searchTerm","isEmojiFilteredBySearchTerm","failedToLoad","filteredOut","Button","styleInject","css","insertAt","getElementsByTagName","styleSheet","ClickableEmoji","_clsx","hiddenOnSearch","_ref$showVariations","showVariations","lazyLoad","hasVariations","ViewOnlyEmoji","_ref2$getEmojiUrl","emojiToRender","NATIVE","NativeEmoji","EmojiImg","external","_ref4$lazyLoad","setEmojisThatFailedToLoad","src","alt","EmojiCategory","categoryConfig","categoryName","Suggested","suggestedEmojisModeConfig","suggested","_getSuggested","suggestedItem","EmojiList","emojiList","RenderCategory","isUnicodeHidden","isEmojiHidden","isEmojiDisallowed","emojisToPush","hiddenCounter","_isEmojiHidden","isDisallowed","focusFirstVisibleEmoji","focusNextVisibleEmoji","focusPrevVisibleEmoji","focusVisibleEmojiOneRowUp","exitUp","countInRow","prevVisibleCategory","prevRowElements","visibleEmojiOneRowUp","focusVisibleEmojiOneRowDown","parentHeight","hasNextRow","nextVisibleCategory","visibleEmojiOneRowDown","EmojiVariationPicker","pointerStyle","_useVariationPickerTo","getMenuDirection","getTop","emojiOffsetTop","_bodyRef$scrollTop","buttonHeight","useVariationPickerTop","getPointerStyle","emojiTruOffsetLeft","usePointerStyle","Body","useOnScroll","allowMouseMove","isMouseDisallowed","onMouseMove","useOnMouseMove","useIsSkinToneInSearch","useIsSkinToneInPreview","FlexDirection","Flex","_ref$direction","ROW","Absolute","Relative","SkinTonePickerDirection","SkinTonePickerMenu","SkinTonePicker","VERTICAL","HORIZONTAL","isOpen","setIsOpen","_useActiveSkinToneSta","setActiveSkinTone","expandedSize","ITEM_SIZE","skinToneVariation","_clsx2","Preview","isSkinToneInPreview","PreviewBody","previewEmoji","setPreviewEmoji","variationPickerEmoji","allow","onEscape","onEnter","onLeave","useEmojiPreviewEvents","show","defaultText","useIsSearchMode","CategoryNavigation","activeCategory","setActiveCategory","scrollCategoryIntoView","_BodyRef$current","$category","visibleCategories","IntersectionObserver","_step","_iterator","_id","_$category$getAttribu","ratios","lastCategory","_i","_ratios","_ratios$_i","useActiveCategoryScrollDetection","isSearchMode","categoriesConfig","SearchContainer","isSkinToneInSearch","Search","inc","setInc","clearSearch","_onChange","CssSearch","_event$target$value","_event$target","KeyboardEvents","CSS_SEARCH_SELECTOR","emojiPicker","searchQuery","Header","getActiveElement","useKeyboardNavigation","focusSkinTonePicker","setSkinToneFanOpenState","goDownFromSearchInput","hasOpenToggles","disallowMouseMove","Escape","usePickerMainKeyboardEvents","useGoDownFromSearchInput","firstEmoji","ArrowRight","ArrowDown","_useSkinToneFanOpenSt2","onType","useOnType","ArrowLeft","focusNextSkinTone","focusPrevSkinTone","ArrowUp","useSkinTonePickerKeyboardEvents","useCategoryNavigationKeyboardEvents","goUpFromBody","focusCategoryNavigation","useBodyKeyboardEvents","exitLeft","currentSkinTone","appendSearch","hasModifier","preloadEmoji","preloadedEmojs","emojiUrl","Image","PickerMain","PickerRootElement","searchModeActive","_usePickerSizeConfig","_usePickerConfig12","usePickerSizeConfig","searchActive","EmojiPicker","_React$Component","subClass","superClass","_this","hasError","_proto","errorInfo","__assign","named_references_1","numeric_unicode_map_1","surrogate_pairs_1","allNamedReferences","namedReferences","html5","replaceUsingRegExp","macroText","macroRegExp","macroReplacer","replaceResult","replaceMatch","exec","replaceLastIndex","replaceInput","encodeRegExps","specialChars","nonAscii","nonAsciiPrintable","nonAsciiPrintableOnly","extensive","defaultEncodeOptions","level","numeric","encode","_a","_b","_c","_d","_e","encodeRegExp","references","characters","isHex","getCodePoint","charCodeAt","defaultDecodeOptions","strict","attribute","baseDecodeRegExps","xml","bodyRegExps","html4","decodeRegExps","outOfBoundsChar","defaultDecodeEntityOptions","getDecodedEntity","entity","isAttribute","isStrict","decodeResult","decodeEntityLastChar","decodeResultByReference","decodeSecondChar","decodeCode","numericUnicodeMap","decodeEntity","entities","decode","decodeRegExp","$","fj","astralCodePoint","codePointAt","highSurrogateFrom","highSurrogateTo","__createBinding","k2","desc","getOwnPropertyDescriptor","writable","configurable","__setModuleDefault","__importStar","mod","Parser","Tokenizer_js_1","decode_js_1","formTags","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","cbs","openTagStart","tagname","attribname","attribvalue","attribs","stack","foreignContext","buffers","bufferOffset","writeIndex","ended","lowerCaseTagNames","lowerCaseTags","xmlMode","lowerCaseAttributeNames","tokenizer","Tokenizer","onparserinit","ontext","getSlice","ontextentity","cp","getSectionStart","isVoidElement","onopentagname","emitOpenTag","impliesClose","onclosetag","onopentag","endOpenTag","isImplied","onopentagend","_f","pos","lastIndexOf","closeCurrentTag","onselfclosingtag","recognizeSelfClosing","isOpenImplied","onattribname","onattribdata","onattribentity","onattribend","onattribute","QuoteType","Double","Single","NoValue","getInstructionName","search","ondeclaration","onprocessinginstruction","oncomment","oncommentend","oncdata","_g","_h","_j","_k","recognizeCDATA","oncdatastart","oncdataend","onend","onreset","parseComplete","shiftBuffer","shift","write","chunk","onerror","running","pause","resume","parseChunk","CharCodes","State","isWhitespace","NewLine","Tab","FormFeed","CarriageReturn","isEndOfTagSection","Slash","Gt","Zero","Nine","Sequences","Cdata","CdataEnd","CommentEnd","ScriptEnd","StyleEnd","TitleEnd","decodeEntities","sectionStart","baseState","currentSequence","sequenceIndex","trieIndex","trieCurrent","entityResult","entityExcess","entityTrie","xmlDecodeTree","htmlDecodeTree","finish","getIndex","stateText","Lt","fastForwardTo","BeforeTagName","Amp","BeforeEntity","stateSpecialStartSequence","isEnd","InTagName","stateInTagName","stateInSpecialTag","endOfText","actualIndex","stateInClosingTagName","stateCDATASequence","InCommentLike","InDeclaration","stateInDeclaration","stateInCommentLike","isTagStartChar","LowerA","LowerZ","UpperA","UpperZ","isASCIIAlpha","startSpecial","sequence","SpecialStartSequence","stateBeforeTagName","ExclamationMark","BeforeDeclaration","Questionmark","InProcessingInstruction","lower","BeforeSpecialS","BeforeClosingTagName","BeforeAttributeName","stateBeforeAttributeName","stateBeforeClosingTagName","InClosingTagName","InSpecialComment","AfterClosingTagName","stateAfterClosingTagName","InSpecialTag","InSelfClosingTag","InAttributeName","stateInSelfClosingTag","stateInAttributeName","Eq","AfterAttributeName","stateAfterAttributeName","BeforeAttributeValue","stateBeforeAttributeValue","DoubleQuote","InAttributeValueDq","SingleQuote","InAttributeValueSq","InAttributeValueNq","stateInAttributeValueNoQuotes","handleInAttributeValue","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","Unquoted","stateBeforeDeclaration","OpeningSquareBracket","CDATASequence","Dash","BeforeComment","stateInProcessingInstruction","stateBeforeComment","stateInSpecialComment","stateBeforeSpecialS","stateBeforeEntity","BeforeNumericEntity","InNamedEntity","stateInNamedEntity","determineBranch","emitNamedEntity","masked","BinTrieFlags","VALUE_LENGTH","valueLength","allowLegacyEntity","Semi","entityStart","emitPartial","emitCodePoint","stateBeforeNumericEntity","LowerX","InHexEntity","InNumericEntity","stateInNumericEntity","emitNumericEntity","replaceCodePoint","stateInHexEntity","UpperF","LowerF","isHexDigit","shouldContinue","handleTrailingData","__importDefault","DomUtils","parseFeed","getFeed","createDomStream","parseDOM","parseDocument","DefaultHandler","DomHandler","Parser_js_1","Parser_js_2","domhandler_1","domhandler_2","elementCallback","domutils_1","domutils_2","parseFeedDefaultOptions","feed","attributeNames","elementNames","entities_1","foreignNames_js_1","unencodedElements","replaceQuotes","singleTag","renderNode","renderComment","renderCdata","opts","foreignModeIntegrationPoints","foreignElements","encodeEntities","encodeXML","escapeAttribute","emptyAttrs","formatAttributes","selfClosingTags","renderTag","escapeText","renderText","__exportStar","domelementtype_1","node_js_1","defaultOpts","withStartIndices","withEndIndices","elementCB","dom","tagStack","lastNode","handleCallback","addNode","ProcessingInstruction","previousSibling","extendStatics","__extends","__","hasChildren","isDirective","isComment","isText","isCDATA","NodeWithChildren","DataNode","Node","recursive","_super","cloneChildren","clone_1","clone_2","clone_3","instruction","sourceCodeLocation","childs","stringify_js_1","legacy_js_1","feedRoot","getOneElement","isValidFeed","media","getMediaElements","addConditionally","fetch","pubDate","updated","getAtomFeed","getRssFeed","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","medium","isDefault","MEDIA_KEYS_STRING_1","attrib","MEDIA_KEYS_INT_1","expression","recurse","uniqueSort","compareDocumentPosition","DocumentPosition","removeSubsets","nodeA","nodeB","aParents","bParents","maxIdx","DISCONNECTED","sharedParent","aSibling","bSibling","FOLLOWING","CONTAINED_BY","PRECEDING","CONTAINS","ancestor","relative","getElementsByTagType","getElementById","getElements","testElement","querying_js_1","Checks","tag_name","tag_type","tag_contains","getAttribCheck","combineFuncs","compileTest","funcs","findOne","removeElement","childsIndex","prepend","prependChild","replaceElement","replacement","sibling","currNext","findAll","existsOne","findOneChild","nodeStack","indexStack","innerText","getText","getInnerHTML","getOuterHTML","dom_serializer_1","prevElementSibling","getName","hasAttrib","getAttributeValue","getSiblings","decodeXML","decodeHTMLStrict","decodeHTMLAttribute","decodeHTML","EntityDecoder","DecodingMode","decodeCodePoint","decode_data_html_js_1","decode_data_xml_js_1","decode_codepoint_js_1","decode_codepoint_js_2","EntityDecoderState","ZERO","NINE","isEntityInAttributeInvalidEnd","EQUALS","UPPER_A","UPPER_Z","LOWER_A","LOWER_Z","isAsciiAlphaNumeric","decodeTree","errors","EntityStart","consumed","treeIndex","excess","decodeMode","Strict","startEntity","NUM","NumericStart","stateNumericStart","NamedEntity","stateNamedEntity","NumericDecimal","stateNumericDecimal","NumericHex","stateNumericHex","LOWER_X","addToNumericResult","digitCount","startIdx","char","UPPER_F","LOWER_F","lastCp","expectedLength","absenceOfDigitsInNumericCharacterReference","SEMI","missingSemicolonAfterCharacterReference","validateNumericCharacterReference","Attribute","emitNotTerminatedNamedEntity","emitNamedEntityData","getDecoder","ret","decoder","nodeIdx","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","lo","hi","mid","midVal","htmlDecoder","xmlDecoder","Legacy","decodeMap","codePoint","encodeNonAsciiHTML","encodeHTML","encode_html_js_1","escape_js_1","htmlReplacer","encodeHTMLTrieRe","regExp","lastIdx","nextChar","xmlReplacer","escapeUTF8","escape","xmlCodeMap","getEscaper","regex","Uint16Array","restoreDiff","decodeXMLStrict","decodeHTML5Strict","decodeHTML4Strict","decodeHTML5","decodeHTML4","encodeHTML5","encodeHTML4","decodeStrict","EncodingMode","EntityLevel","encode_js_1","XML","HTML","UTF8","ASCII","escape_js_2","encode_js_2","decode_js_2","word","includeBoundaries","v4","v6seg","v6","v46Exact","v4exact","v6exact","ip","exact","identity","baseClone","CLONE_DEEP_FLAG","baseForOwn","castFunction","iteratee","isSpace","collectCharacters","regEx","chars","descriptors","currentDescriptor","inputLength","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","candidates","parseDescriptors","tokenize","charAt","lastChar","intVal","floatVal","pError","log","factory","__webpack_modules__","__unused_webpack_module","__w_pdfjs_require__","_typeof","StatTimer","RenderingCancelledException","PixelsPerInch","PageViewport","PDFDateString","LinkTarget","DOMStandardFontDataFactory","DOMSVGFactory","DOMCanvasFactory","DOMCMapReaderFactory","addLinkAttributes","_ref4$enabled","_util","assert","urlNullRemoved","removeNullCharacters","onclick","targetStr","SELF","BLANK","PARENT","TOP","DEFAULT_LINK_REL","deprecated","getFilenameFromUrl","query","getPdfFilenameFromUrl","defaultFilename","isDataScheme","reURI","reFilename","splitURI","suggestedFilename","decodeURIComponent","ex","getXfaPageViewport","xfaPage","_ref6$scale","_ref6$rotation","rotation","_xfaPage$attributes$s","isPdfFile","isValidFetchUrl","loadScript","removeScriptElement","script","evt","documentElement","_regenerator","_base_factory","_createForOfIteratorHelper","normalCompletion","didErr","step","_e2","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","self","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_inherits","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","PDF","PDF_TO_CSS_UNITS","shadow","_BaseCanvasFactory","_ref$ownerDocument","_document","canvas","BaseCanvasFactory","fetchData","_x","_fetchData","mark","_callee","asTypedArray","_args","wrap","_context","baseURI","sent","ok","statusText","t1","arrayBuffer","t2","t0","t3","stringToBytes","t4","abrupt","request","XMLHttpRequest","responseType","onreadystatechange","readyState","DONE","responseText","send","_BaseCMapReaderFactor","_super2","compressionType","isCompressed","cMapData","BaseCMapReaderFactory","_BaseStandardFontData","_super3","BaseStandardFontDataFactory","_BaseSVGFactory","_super4","createElementNS","BaseSVGFactory","_ref2$offsetX","offsetX","_ref2$offsetY","offsetY","_ref2$dontFlip","dontFlip","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","centerX","centerY","_ref3$scale","_ref3$rotation","_ref3$offsetX","_ref3$offsetY","_ref3$dontFlip","Util","applyTransform","topLeft","bottomRight","applyInverseTransform","_BaseException","_super5","msg","_this2","BaseException","ii","pdfDateStringRegex","started","times","outBuf","longest","_step2","_iterator2","_time","padEnd","baseUrl","isString","hour","minute","second","universalTimeRelation","offsetHour","offsetMinute","UTC","__unused_webpack_exports","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","awrap","iter","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","nmd","regeneratorRuntime","accidentalStrictMode","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","VerbosityLevel","UnknownErrorException","UnexpectedResponseException","UNSUPPORTED_FEATURES","TextRenderingMode","StreamType","RenderingIntentFlag","PermissionFlag","PasswordResponses","PasswordException","PageActionEventType","OPS","MissingPDFException","IsLittleEndianCached","IsEvalSupportedCached","InvalidPDFException","ImageKind","IDENTITY_MATRIX","FormatError","FontType","FONT_IDENTITY_MATRIX","DocumentActionEventType","CMapCompressionType","AnnotationType","AnnotationStateModelType","AnnotationReviewState","AnnotationReplyType","AnnotationMode","AnnotationMarkedState","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","AnnotationActionEventType","AbortException","arrayByteLength","arraysToBytes","resultLength","itemLength","byteLength","bytesToString","bytes","MAX_ARGUMENT_COUNT","strBuf","chunkEnd","subarray","contentType","forceDataSchema","digits","b1","b2","b3","d1","d2","d3","d4","createPromiseCapability","capability","isSettled","createValidAbsoluteUrl","addDefaultProtocol","dots","tryConvertEncoding","stringToUTF8String","absoluteUrl","_isValidProtocol","escapeString","getModificationDate","getUTCFullYear","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getVerbosityLevel","verbosity","INFOS","isArrayBuffer","isArrayEqual","arr1","isAscii","isBool","isNum","isSameOrigin","otherUrl","objectFromMap","_e3","_step$value","_arrayWithHoles","_s","_arr","_n","_iterableToArrayLimit","_nonIterableRest","objectSize","replaceInvisible","InvisibleCharactersRegExp","NullCharactersRegExp","setVerbosityLevel","isInteger","string32","stringToPDFString","_i2","_i3","PDFStringTranslateTable","stringToUTF16BEString","buf","unreachable","utf8StringToString","unescape","encodeURIComponent","ANY","DISPLAY","PRINT","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","MARKED","REVIEW","UNMARKED","ACCEPTED","REJECTED","CANCELLED","COMPLETED","GROUP","REPLY","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","X","Fo","Bl","PO","PC","PV","PI","WC","WS","DS","WP","DP","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","TYPE1","TYPE1STANDARD","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","BINARY","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","unknown","forms","javaScript","signatures","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontBuildPath","errorFontGetPath","errorMarkedContent","errorContentSubStream","NEED_PASSWORD","INCORRECT_PASSWORD","cond","_BaseException2","_BaseException3","_BaseException4","_BaseException5","_this3","_BaseException6","_super6","_BaseException7","_super7","buffer8","Uint32Array","isEvalSupported","hexNumbers","m1","m2","p3","p4","transpose","sy","orderedX","orderedY","normalizeRect","x0","y0","x1","y1","x2","y2","x3","y3","b2ac","sqrtb2ac","tvalues","bounds","mt","jlen","_is_node","_pdfjsCompatibilityChecked","btoa","isNodeJS","Buffer","atob","DOMMatrix","fromEntries","allSettled","ReadableStream","process","versions","nw","electron","global","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","check","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPropertyKey","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","fails","$propertyIsEnumerable","NASHORN_BUG","bitmap","IndexedObject","requireObjectCoercible","uncurryThis","classof","FunctionPrototype","callBind","stringSlice","toPrimitive","isSymbol","argument","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","pref","exoticToPrim","isCallable","getBuiltIn","isPrototypeOf","USE_SYMBOL_AS_UID","aFunction","NATIVE_SYMBOL","V8_VERSION","Deno","v8","aCallable","tryToString","shared","uid","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","IS_PURE","copyright","SHARED","toObject","postfix","EXISTS","definePropertyModule","anObject","$defineProperty","Attributes","inspectSource","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","getInternalState","enforceInternalState","enforce","TEMPLATE","unsafe","simple","functionToString","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","wmget","wmhas","wmset","metadata","facade","STATE","getterFor","TYPE","getDescriptor","PROPER","CONFIGURABLE","ownKeys","getOwnPropertyDescriptorModule","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","internalObjectKeys","getOwnPropertyNames","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","fromIndex","toIntegerOrInfinity","integer","toLength","feature","detection","POLYFILL","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","fromArray","CSSMatrix","m11","m12","m13","m14","m21","m22","m23","m24","m31","m32","m33","m34","m41","m42","m43","m44","M11","M12","M21","M22","M41","M42","fromMatrix","fromString","invalidStringError","tf","xyz","xyza","multiply","rotateAxisAngle","rotate","skewX","skewY","axeValues","Rotate","ry","rz","degToRad","radX","radY","radZ","cosx","cos","sinx","sin","cosy","siny","cosz","sinz","RotateAxisAngle","alpha","angle","sinA","cosA","sinA2","Y","Z","z2","SkewX","radA","tan","SkewY","Multiply","ARGS","setMatrixValue","prototypeAccessors","isIdentity","is2D","Float64Array","Float32Array","toJSON","RX","RY","RZ","transformPoint","defineProperties","Version","path","addToUnscopables","Iterators","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","kind","Arguments","UNSCOPABLES","ArrayPrototype","activeXDocument","enumBugKeys","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","domain","Properties","objectKeys","FunctionName","createIteratorConstructor","setToStringTag","IteratorsCore","PROPER_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","TO_STRING_TAG","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","proto","ENUMERABLE_NEXT","PrototypeOfArrayIteratorPrototype","arrayIterator","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","TAG","aPossiblePrototype","CORRECT_SETTER","iterate","createProperty","AS_ENTRIES","isArrayIteratorMethod","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","unboundFunction","iterFn","IS_ITERATOR","INTERRUPTED","callFn","usingIterator","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","innerResult","innerError","propertyKey","clearErrorStack","installErrorCause","normalizeStringArgument","ERROR_STACK_INSTALLABLE","$AggregateError","isInstance","AggregateErrorPrototype","errorsArray","AggregateError","arraySlice","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","IS_FIREFOX_OR_SAFARI_STACK","dropEntries","fin","cause","$default","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","redefineAll","setSpecies","anInstance","checkCorrectnessOfIteration","speciesConstructor","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","IS_BROWSER","IS_NODE","SPECIES","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","SUBCLASSING","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","isThenable","notify","isReject","notified","chain","reactions","exited","reaction","fail","rejection","onHandleUnhandled","onUnhandled","initEvent","isUnhandled","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","$promiseResolve","remaining","alreadyCalled","race","CONSTRUCTOR_NAME","Prototype","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","aConstructor","defaultConstructor","isConstructor","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","defer","channel","port","IS_IOS","setImmediate","clearImmediate","Dispatch","MessageChannel","queue","ONREADYSTATECHANGE","runner","post","postMessage","host","nextTick","port2","port1","onmessage","importScripts","flush","toggle","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","characterData","Pebble","promiseCapability","PromiseCapability","$$resolve","$$reject","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","real","onFinally","STRING_ITERATOR","point","CONVERT_TO_STRING","codeAt","SymbolPolyfill","getGlobals","globals","typeIsObject","rethrowAssertionErrorRejection","originalPromise","originalPromiseThen","originalPromiseResolve","originalPromiseReject","newPromise","promiseResolvedWith","promiseRejectedWith","PerformPromiseThen","uponPromise","uponFulfillment","uponRejection","transformPromiseWith","fulfillmentHandler","rejectionHandler","setPromiseIsHandledToTrue","globalQueueMicrotask","resolvedPromise","reflectCall","promiseCall","QUEUE_MAX_ARRAY_SIZE","SimpleQueue","_cursor","_size","_front","_elements","_back","oldBack","newBack","oldFront","newFront","oldCursor","newCursor","peek","front","ReadableStreamReaderGenericInitialize","reader","stream","_ownerReadableStream","_reader","_state","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","_storedError","ReadableStreamReaderGenericCancel","ReadableStreamCancel","ReadableStreamReaderGenericRelease","defaultReaderClosedPromiseReject","defaultReaderClosedPromiseResetToRejected","readerLockException","_closedPromise","_closedPromise_resolve","_closedPromise_reject","defaultReaderClosedPromiseResolve","AbortSteps","ErrorSteps","CancelSteps","PullSteps","NumberIsFinite","MathTrunc","trunc","isDictionary","assertDictionary","assertFunction","assertObject","assertRequiredArgument","assertRequiredField","convertUnrestrictedDouble","censorNegativeZero","integerPart","convertUnsignedLongLongWithEnforceRange","lowerBound","upperBound","MAX_SAFE_INTEGER","assertReadableStream","IsReadableStream","AcquireReadableStreamDefaultReader","ReadableStreamDefaultReader","ReadableStreamAddReadRequest","readRequest","_readRequests","ReadableStreamFulfillReadRequest","_closeSteps","_chunkSteps","ReadableStreamGetNumReadRequests","ReadableStreamHasDefaultReader","IsReadableStreamDefaultReader","AsyncIteratorPrototype","IsReadableStreamLocked","defaultReaderBrandCheckException","resolvePromise","rejectPromise","ReadableStreamDefaultReaderRead","_errorSteps","releaseLock","_disturbed","_readableStreamController","closed","ReadableStreamAsyncIteratorImpl","preventCancel","_ongoingPromise","_isFinished","_preventCancel","nextSteps","_nextSteps","return","returnSteps","_returnSteps","ReadableStreamAsyncIteratorPrototype","IsReadableStreamAsyncIterator","_asyncIteratorImpl","streamAsyncIteratorBrandCheckException","AcquireReadableStreamAsyncIterator","impl","NumberIsNaN","CreateArrayFromList","CopyDataBlockBytes","dest","destOffset","srcOffset","TransferArrayBuffer","IsDetachedBuffer","ArrayBufferSlice","begin","IsNonNegativeNumber","CloneAsUint8Array","byteOffset","DequeueValue","pair","_queue","_queueTotalSize","EnqueueValueWithSize","RangeError","PeekQueueValue","ResetQueue","ReadableStreamBYOBRequest","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","_view","respond","bytesWritten","_associatedReadableByteStreamController","ReadableByteStreamControllerRespond","respondWithNewView","view","ReadableByteStreamControllerRespondWithNewView","ReadableByteStreamController","IsReadableByteStreamController","byteStreamControllerBrandCheckException","ReadableByteStreamControllerGetBYOBRequest","ReadableByteStreamControllerGetDesiredSize","_closeRequested","_controlledReadableByteStream","ReadableByteStreamControllerClose","enqueue","ReadableByteStreamControllerEnqueue","ReadableByteStreamControllerError","ReadableByteStreamControllerClearPendingPullIntos","_cancelAlgorithm","ReadableByteStreamControllerClearAlgorithms","ReadableByteStreamControllerHandleQueueDrain","autoAllocateChunkSize","_autoAllocateChunkSize","bufferE","pullIntoDescriptor","bufferByteLength","bytesFilled","viewConstructor","readerType","_pendingPullIntos","ReadableByteStreamControllerCallPullIfNeeded","controller","ReadableByteStreamControllerShouldCallPull","_pulling","_pullAgain","_pullAlgorithm","ReadableByteStreamControllerInvalidateBYOBRequest","ReadableByteStreamControllerCommitPullIntoDescriptor","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableStreamFulfillReadIntoRequest","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableStreamClose","_byobRequest","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerPullInto","readIntoRequest","DataView","BYTES_PER_ELEMENT","ReadableStreamAddReadIntoRequest","emptyView","ReadableByteStreamControllerRespondInClosedState","firstDescriptor","ReadableStreamHasBYOBReader","ReadableStreamGetNumReadIntoRequests","ReadableByteStreamControllerRespondInReadableState","remainderSize","remainder","ReadableByteStreamControllerRespondInternal","_started","transferredBuffer","firstPendingPullInto","ReadableStreamError","byobRequest","SetUpReadableStreamBYOBRequest","_strategyHWM","viewByteLength","SetUpReadableByteStreamController","startAlgorithm","pullAlgorithm","cancelAlgorithm","highWaterMark","SetUpReadableByteStreamControllerFromUnderlyingSource","underlyingByteSource","pull","AcquireReadableStreamBYOBReader","ReadableStreamBYOBReader","_readIntoRequests","IsReadableStreamBYOBReader","desiredSize","byobReaderBrandCheckException","ReadableStreamBYOBReaderRead","ExtractHighWaterMark","defaultHWM","ExtractSizeAlgorithm","convertQueuingStrategy","init","convertQueuingStrategySize","convertUnderlyingSink","abort","convertUnderlyingSinkAbortCallback","convertUnderlyingSinkCloseCallback","convertUnderlyingSinkStartCallback","convertUnderlyingSinkWriteCallback","assertWritableStream","IsWritableStream","isAbortSignal","aborted","supportsAbortController","AbortController","createAbortController","WritableStream","rawUnderlyingSink","rawStrategy","underlyingSink","InitializeWritableStream","sizeAlgorithm","SetUpWritableStreamDefaultControllerFromUnderlyingSink","streamBrandCheckException$2","IsWritableStreamLocked","WritableStreamAbort","WritableStreamCloseQueuedOrInFlight","WritableStreamClose","getWriter","AcquireWritableStreamDefaultWriter","WritableStreamDefaultWriter","CreateWritableStream","writeAlgorithm","closeAlgorithm","abortAlgorithm","SetUpWritableStreamDefaultController","WritableStreamDefaultController","_writer","_writableStreamController","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_backpressure","_abortReason","_abortController","_promise","wasAlreadyErroring","_reason","_wasAlreadyErroring","WritableStreamStartErroring","closeRequest","writer","defaultWriterReadyPromiseResolve","WritableStreamDefaultControllerClose","WritableStreamAddWriteRequest","writeRequest","WritableStreamDealWithRejection","WritableStreamFinishErroring","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","storedError","abortRequest","WritableStreamRejectCloseAndClosedPromiseIfNeeded","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","WritableStreamFinishInFlightClose","defaultWriterClosedPromiseResolve","WritableStreamFinishInFlightCloseWithError","WritableStreamMarkCloseRequestInFlight","WritableStreamMarkFirstWriteRequestInFlight","defaultWriterClosedPromiseReject","WritableStreamUpdateBackpressure","backpressure","defaultWriterReadyPromiseReset","locked","_ownerWritableStream","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterGetDesiredSize","_readyPromise","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterEnsureClosedPromiseRejected","_closedPromiseState","defaultWriterClosedPromiseResetToRejected","_readyPromiseState","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","chunkSize","WritableStreamDefaultControllerGetChunkSize","WritableStreamDefaultControllerWrite","closeSentinel","IsWritableStreamDefaultController","defaultControllerBrandCheckException$2","signal","_controlledWritableStream","WritableStreamDefaultControllerError","_abortAlgorithm","WritableStreamDefaultControllerClearAlgorithms","_strategySizeAlgorithm","_writeAlgorithm","_closeAlgorithm","WritableStreamDefaultControllerGetBackpressure","WritableStreamDefaultControllerAdvanceQueueIfNeeded","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","enqueueE","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","sinkClosePromise","_readyPromise_resolve","_readyPromise_reject","abortReason","NativeDOMException","DOMException","isDOMExceptionConstructor","createDOMExceptionPolyfill","captureStackTrace","DOMException$1","ReadableStreamPipeTo","preventClose","preventAbort","shuttingDown","currentWrite","shutdownWithAction","pipeLoop","resolveLoop","rejectLoop","pipeStep","resolveRead","rejectRead","isOrBecomesErrored","shutdown","isOrBecomesClosed","destClosed_1","waitForWritesToFinish","oldCurrentWrite","originalIsError","originalError","doTheRest","finalize","newError","isError","ReadableStreamDefaultController","IsReadableStreamDefaultController","defaultControllerBrandCheckException$1","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamDefaultControllerCanCloseOrEnqueue","ReadableStreamDefaultControllerClose","ReadableStreamDefaultControllerEnqueue","ReadableStreamDefaultControllerError","ReadableStreamDefaultControllerClearAlgorithms","_controlledReadableStream","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerShouldCallPull","ReadableStreamDefaultControllerHasBackpressure","SetUpReadableStreamDefaultController","SetUpReadableStreamDefaultControllerFromUnderlyingSource","underlyingSource","ReadableStreamTee","cloneForBranch2","ReadableByteStreamTee","ReadableStreamDefaultTee","reason1","reason2","branch1","branch2","resolveCancelPromise","reading","readAgain","canceled1","canceled2","cancelPromise","chunk1","chunk2","cancel1Algorithm","compositeReason","cancelResult","cancel2Algorithm","CreateReadableStream","readAgainForBranch1","readAgainForBranch2","forwardReaderError","thisReader","pullWithDefaultReader","cloneE","pull1Algorithm","pull2Algorithm","pullWithBYOBReader","forBranch2","byobBranch","otherBranch","byobCanceled","clonedChunk","otherCanceled","CreateReadableByteStream","convertUnderlyingDefaultOrByteSource","convertUnderlyingSourceCancelCallback","convertUnderlyingSourcePullCallback","convertUnderlyingSourceStartCallback","convertReadableStreamType","convertReaderOptions","convertReadableStreamReaderMode","convertIteratorOptions","convertPipeOptions","assertAbortSignal","convertReadableWritablePair","readable","rawUnderlyingSource","InitializeReadableStream","streamBrandCheckException$1","getReader","rawOptions","pipeThrough","rawTransform","pipeTo","tee","convertQueuingStrategyInit","byteLengthSizeFunction","ByteLengthQueuingStrategy","_byteLengthQueuingStrategyHighWaterMark","IsByteLengthQueuingStrategy","byteLengthBrandCheckException","countSizeFunction","CountQueuingStrategy","_countQueuingStrategyHighWaterMark","IsCountQueuingStrategy","countBrandCheckException","convertTransformer","readableType","writableType","convertTransformerFlushCallback","convertTransformerStartCallback","convertTransformerTransformCallback","TransformStream","rawTransformer","rawWritableStrategy","rawReadableStrategy","writableStrategy","readableStrategy","startPromise_resolve","readableHighWaterMark","readableSizeAlgorithm","writableHighWaterMark","writableSizeAlgorithm","InitializeTransformStream","SetUpTransformStreamDefaultControllerFromTransformer","_transformStreamController","IsTransformStream","streamBrandCheckException","_readable","_writable","startPromise","TransformStreamDefaultSinkWriteAlgorithm","TransformStreamDefaultSinkAbortAlgorithm","TransformStreamDefaultSinkCloseAlgorithm","TransformStreamDefaultSourcePullAlgorithm","TransformStreamErrorWritableAndUnblockWrite","_backpressureChangePromise","_backpressureChangePromise_resolve","TransformStreamSetBackpressure","TransformStreamError","TransformStreamDefaultControllerClearAlgorithms","TransformStreamDefaultController","IsTransformStreamDefaultController","defaultControllerBrandCheckException","_controlledTransformStream","TransformStreamDefaultControllerEnqueue","TransformStreamDefaultControllerError","terminate","TransformStreamDefaultControllerTerminate","SetUpTransformStreamDefaultController","transformAlgorithm","flushAlgorithm","_transformAlgorithm","_flushAlgorithm","transformResultE","readableController","TransformStreamDefaultControllerPerformTransform","flushPromise","_createCanvas","getContext","canvasAndContext","_ref$baseUrl","_ref$isCompressed","_fetch","_ref3$baseUrl","_fetch2","_callee2","_context2","_x2","svg","_createSVG","build","RenderTask","PDFWorker","PDFPageProxy","PDFDocumentProxy","PDFDocumentLoadingTask","PDFDataRangeTransport","LoopbackPort","DefaultStandardFontDataFactory","DefaultCanvasFactory","DefaultCMapReaderFactory","getDocument","setPDFNetworkStreamFactory","_interopRequireDefault","_display_utils","_font_loader","_node_utils","_annotation_storage","_canvas","_worker_options","_message_handler","_metadata","_optional_content_config","_transport_stream","_xfa_text","_classPrivateFieldInitSpec","privateMap","_checkPrivateRedeclaration","privateCollection","_classPrivateFieldSet","receiver","_classApplyDescriptorSet","_classExtractFieldDescriptor","_classPrivateFieldGet","_classApplyDescriptorGet","_slicedToArray","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","NodeCanvasFactory","NodeCMapReaderFactory","NodeStandardFontDataFactory","createPDFNetworkStream","pdfNetworkStreamFactory","rangeTransport","worker","rangeChunkSize","CMapReaderFactory","StandardFontDataFactory","ignoreErrors","stopAtErrors","fontExtraProperties","pdfBug","enableXfa","docBaseUrl","maxImageSize","useWorkerFetch","disableFontFace","useSystemFonts","disableRange","disableStream","disableAutoFetch","workerParams","GlobalWorkerOptions","workerPort","fromPort","_worker","docId","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","PDFDataTransportStream","initialData","progressiveDone","contentDispositionFilename","httpHeaders","withCredentials","workerId","messageHandler","MessageHandler","transport","WorkerTransport","_transport","_capability","_x3","_x4","_fetchDocument2","_callee7","pdfDataRangeTransport","_context7","sendWithPromise","apiVersion","password","cMapUrl","standardFontDataUrl","idCounters","onPassword","onProgress","onUnsupportedFeature","_destroy","_this$_transport","destroy","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","loaded","_step3","_iterator3","_step4","_iterator4","pdfInfo","_this4","_pdfInfo","fingerprints","stats","streamTypes","fontTypes","annotationStorage","numPages","_htmlForXfa","pageNumber","getPage","getPageIndex","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getDocJSActions","getOutline","getOptionalContentConfig","getPermissions","getMetadata","getMarkInfo","downloadInfoCapability","keepLoadedFonts","startCleanup","isPureXfa","loadingTask","loadingParams","saveDocument","getFieldObjects","hasJSActions","getCalculationOrderIds","pageIndex","pageInfo","_pageIndex","_pageInfo","_ownerDocument","_stats","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","_intentStates","_annotationPromises","_getXfa","userUnit","_ref4$intent","intent","intentArgs","getRenderingIntent","getAnnotations","renderingIntent","annotations","_step5","_iterator5","_loop","annotation","titleObj","contentsObj","_jsActionsPromise","getPageJSActions","_callee3","_this$_transport$_htm","_context3","_arguments$","_arguments$2","_intentState","_this5","canvasContext","viewport","_ref5$intent","_ref5$annotationMode","annotationMode","_ref5$transform","_ref5$imageLayer","imageLayer","_ref5$canvasFactory","canvasFactory","_ref5$background","_ref5$optionalContent","optionalContentConfigPromise","_ref5$annotationCanva","annotationCanvasMap","renderInteractiveForms","includeAnnotationStorage","intentState","streamReaderCancelTimeout","canvasFactoryInstance","intentPrint","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","_pumpOperatorList","renderTasks","internalRenderTask","_tryCleanup","_abortOperatorList","timeEnd","InternalRenderTask","useRequestAnimationFrame","renderTask","_ref7","transparency","optionalContentConfig","initializeGraphics","operatorListChanged","_ref8","_ref8$intent","_ref8$annotationMode","opListReadCapability","opListTask","_intentState2","_ref9","_ref9$normalizeWhites","normalizeWhitespace","_ref9$disableCombineT","disableCombineTextItems","_ref9$includeMarkedCo","includeMarkedContent","TEXT_CONTENT_CHUNK_SIZE","sendWithStream","combineTextItems","getXfa","xfa","XfaText","readableStream","streamTextContent","pump","_ref10","_textContent$items","_structTreePromise","getStructTree","_step6","waitOn","_iterator6","force","_step7","_iterator7","completed","resetStats","_step8","_iterator8","_step8$value","operatorListChunk","_step9","_iterator9","_ref11","_this6","serializable","streamReader","_ref12","_renderPageChunk","_step10","_iterator10","_ref13","_this7","_ref13$force","_step11","_iterator11","_step11$value","curCacheKey","_listeners","_deferred","transfers","_this8","cloned","fallbackCloneValue","_step12","_iterator12","_step12$value","_step13","_iterator13","_val","_value$hasOwnProperty","cloneValue","_step14","_iterator14","PDFWorkerUtil","isWorkerDisabled","fallbackWorkerSrc","fakeWorkerId","_document$currentScri","pdfjsFilePath","currentScript","createCDNWrapper","_ref14","_ref14$name","_ref14$port","_ref14$verbosity","_workerPorts","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","_this9","Worker","_mainThreadWorkerMessageHandler","workerSrc","terminateEarly","onWorkerError","_setupFakeWorker","sendTest","testObj","_this10","_setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","_globalThis$pdfjsWork","pdfjsWorker","_this11","loader","_ref15","_callee4","mainWorkerMessageHandler","_callee4$","_context4","eval","getWorkerSrc","_docStats","_pageCache","_pagePromises","_metadataPromise","fontLoader","FontLoader","_onUnsupportedFeature","_params","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","setupMessageHandler","_startCleanup","AnnotationStorage","isOpList","lastModified","_this12","_step15","_iterator15","resetModified","terminated","_getFieldObjectsPromise","_hasJSActionsPromise","cancelAllRequests","_this13","sink","getFullReader","onPull","_ref16","readyReason","headersCapability","fullReader","headersReady","_loadingTask$onProgre","isStreamingSupported","isRangeSupported","_loadingTask$onProgre2","contentLength","rangeReader","getRangeReader","_ref17","_ref18","_numPages","htmlForXfa","_loadingTask$onProgre3","_startRenderPage","_ref19","_globalThis$FontInspe","_ref20","exportedData","exportedError","fontRegistry","FontInspector","registerFont","fontAdded","FontFaceObject","_ref21","_imageData$data","_ref22","imageData","pageProxy","_loadingTask$onProgre4","_ref23","_this$loadingTask$onU","_this$loadingTask","featureId","_this14","cachedPromise","_this$_fullReader$fil","_this$_fullReader","_this15","results","OptionalContentConfig","_this16","_this16$_fullReader$f","_this16$_fullReader","_this16$_fullReader$c","_this16$_fullReader2","Metadata","_callee5","_iterator16","_step16","_args5","_context5","_objs","objId","resolved","_ensureObj","_internalRenderTask","onContinue","_ref24","_ref24$useRequestAnim","_ref24$pdfBug","operatorListIdx","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_cancelBound","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next2","_ref25","_globalThis$StepperMa","_ref25$transparency","canvasInUse","StepperManager","stepper","nextBreakPoint","getNextBreakPoint","_this$params","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","_this17","_callee6","_context6","executeOperatorList","WeakSet","BaseFontLoader","nativeFontFaces","_bind","nativeFontFace","fonts","rule","insertRule","attached","missingFile","isFontLoadingAPISupported","createNativeFontFace","addNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","_this$_document","hasFonts","rules","fontsToLoad","_BaseFontLoader","GenericFontLoader","loadingContext","requests","nextRequestId","loadTestFontId","supported","otherRequest","int32","spliceString","ctx","_loadTestFont","XXXX_VALUE","checksum","loadedName","_names","isFontReady","fillText","getImageData","translatedData","_ref2$isEvalSupported","_ref2$disableFontFace","_ref2$ignoreErrors","_ref2$fontRegistry","compiledGlyphs","cssFontInfo","weight","italicAngle","FontFace","mimetype","character","cmds","jsBuf","cmd","_current","readFile","createCanvas","_storage","_timeStamp","_modified","onSetModified","onResetModified","modified","_Object$entries","_Object$entries$_i","_setModified","_pattern_helper","MAX_GROUP_SIZE","FULL_CHUNK_HEIGHT","addContextCurrentTransform","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","_originalTransform","_originalSetTransform","setTransform","_originalResetTransform","resetTransform","_transformMatrix","_transformStack","_setLineWidth","_getLineWidth","_this$_transformMatri","ad_bc","bc_ad","old","cosValue","sinValue","CachedCanvases","trackTransform","canvasEntry","CanvasExtraState","alphaIsShape","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","transferMaps","startNewPathAndClipBox","clipBox","_Util$applyTransform2","minX","minY","maxX","maxY","box","bezierBoundingBox","updatePathMinMax","pathType","PathType","singularValueDecompose2dScale","xStrokePad","yStrokePad","intersect","getPathBoundingBox","putBinaryImageData","imgData","ImageData","putImageData","destPos","thisChunkHeight","elemsInThisChunk","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","srcPos","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","mask","srcByte","hasTransferMaps","_k2","_hasTransferMaps","_k3","putBinaryImageMask","copyCtxState","sourceCtx","destCtx","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","composeSMask","layerCtx","layerBox","layerOffsetX","layerOffsetY","layerWidth","layerHeight","maskCtx","subtype","backdrop","maskOffsetX","maskOffsetY","composeFn","hasBackdrop","chunkHeight","genericComposeSMask","drawImage","getImageSmoothingEnabled","interpolate","fround","actualScale","devicePixelRatio","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","canvasCtx","stateStack","pendingClip","pendingEOFill","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","suspendedCtx","contentVisible","markedContentStack","cachedCanvases","cachedPatterns","viewportScale","outputScaleX","outputScaleY","_cachedGetSinglePixelWidth","_ref2$transparency","_ref2$background","fillRect","transparentCanvas","getCanvas","compositeCtx","_combinedScaleFactor","hypot","beginLayout","executionStartIdx","continueCallback","argsArrayLen","fnId","chunkOperations","endTime","steps","breakIt","depObjId","objsPool","endLayout","img","tmpCanvas","tmpCtx","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","newHeight","clearRect","isPatternFill","maskCanvas","objToCanvas","maskToCanvas","cord1","cord2","drawnWidth","drawnHeight","fillCanvas","fillCtx","scaled","_scaleImage","mozCurrentTransformInverse","imageSmoothingEnabled","inverse","getPattern","dashArray","dashPhase","flatness","states","checkSMaskState","inSMaskMode","beginSMaskMode","endSMaskMode","cacheId","scratchCanvas","_removeMirroring","__originalSave","__originalRestore","__originalRotate","__originalScale","__originalTranslate","__originalTransform","__originalSetTransform","__originalResetTransform","__originalClip","__originalMoveTo","__originalLineTo","__originalBezierCurveTo","bezierCurveTo","__originalRect","__originalClosePath","__originalBeginPath","beginPath","cp1x","cp1y","cp2x","cp2y","mirrorContextOperations","dirtyBox","ops","startX","startY","xw","yh","updateCurvePathMinMax","setCurrentPoint","consumePath","getSinglePixelWidth","_lineWidth","getClippedPathBoundingBox","needRestore","paths","pendingTextPaths","addToPath","fontRefName","fontObj","fontDirection","isType3Font","bold","italic","typeface","fallbackName","browserFontSize","rise","patternTransform","resetLineWidthToOne","fillStrokeMode","isAddToPathSet","getPathGenerator","strokeText","glyphs","showType3Text","glyphsLength","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","glyph","restoreNeeded","fontChar","accent","scaledX","scaledY","vmetric","vx","vy","remeasure","measuredWidth","measureText","isFontSubpixelAAEnabled","characterScaleX","isInFont","paintChar","scaledAccentX","scaledAccentY","compose","spacingLength","charProcOperatorList","operatorListId","xWidth","yWidth","llx","lly","urx","ury","IR","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","_getPattern","getColorN_Pattern","makeHexColor","matrix","getShadingPattern","SHADING","inv","bl","br","ur","bbox","currentCtx","isolated","knockout","currentTransform","getAxialAlignedBoundingBox","canvasBounds","groupCtx","startTransformInverse","_this$groupStack$pop","currentMtx","hasOwnCanvas","_Util$singularValueDe2","canvasWidth","canvasHeight","annotationCanvas","_this$annotationCanva","savedCtx","compiled","j0","POINT_TYPES","width1","points","lineSize","data0","sum","Int32Array","outlines","coords","p0","pp","kk","ll","compileType3Glyph","_createMaskCanvas","trans","_Util$applyTransform3","_Util$applyTransform4","images","image","imgToPaint","getCanvasPosition","appendImage","isContentVisible","updateClipFromPath","absDet","sqNorm1","sqNorm2","pixelHeight","EPSILON","RadialAxialShadingPattern","MeshShadingPattern","DummyShadingPattern","applyBoundingBox","Path2D","region","BaseShadingPattern","_BaseShadingPattern","_type","_bbox","_colorStops","_p0","_p1","_r0","_r1","grad","createLinearGradient","createRadialGradient","colorStop","addColorStop","owner","ownerBBox","_createGradient","createPattern","domMatrix","drawTriangle","c1","c2","c3","tmp","colors","rowSize","xa","car","cag","cab","xb","cbr","cbg","cbb","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","cols","_BaseShadingPattern2","_coords","_colors","_figures","_bounds","_background","combinedScale","boundsWidth","boundsHeight","paddedWidth","BORDER_SIZE","paddedHeight","matrixScale","temporaryPatternCanvas","_createMeshCanvas","_BaseShadingPattern3","PaintType","xstep","ystep","paintType","tilingType","curMatrixScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","adjustedX0","adjustedY0","adjustedX1","adjustedY1","clipBbox","realOutputSize","MAX_PATTERN_SIZE","bboxWidth","bboxHeight","cssColor","createPatternCanvas","CallbackKind","StreamKind","wrapReason","sourceName","targetName","comObj","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","_processStreamMessage","cbSourceName","cbTargetName","_createStreamSink","_deleteStreamController2","actionName","ah","queueingStrategy","startCapability","startCall","pullCall","cancelCall","isClosed","pullCapability","cancelCapability","streamSink","isCancelled","lastDesiredSize","sinkCapability","streamController","_deleteStreamController","_metadataMap","_data","parsedData","rawData","_classPrivateFieldGet2","OptionalContentGroup","creator","_order","_groups","groups","_group","off","_evaluateVisibilityExpression","policy","_id2","_id3","_queuedChunks","_progressiveDone","_contentDispositionFilename","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","addRangeListener","_onReceiveData","addProgressListener","_onProgress","addProgressiveReadListener","addProgressiveDoneListener","_onProgressiveDone","transportReady","_enqueue","found","_begin","_this$_fullRequestRea","_this$_fullRequestRea2","_loaded","firstReader","queuedChunks","PDFDataTransportStreamReader","_progressiveDataLength","PDFDataTransportStreamRangeReader","requestDataRange","_stream","_done","_filename","_requests","_headersReady","_read","requestCapability","_end","_queuedChunk","_read2","_removeRangeReader","walk","_node$attributes","shouldBuildText","AnnotationLayer","_scripting_utils","_xfa_layer","_classStaticPrivateMethodGet","classConstructor","_classCheckPrivateStaticAccess","_get","_superPropBase","_defineProperty","DEFAULT_TAB_INDEX","GetElementsByNameSet","AnnotationElementFactory","annotationType","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","_ref$isRenderable","isRenderable","_ref$ignoreBorder","ignoreBorder","_ref$createQuadrilate","createQuadrilaterals","layer","linkService","downloadManager","imageResourcesPath","renderForms","svgFactory","enableScripting","_fieldObjects","fieldObjects","_mouseState","mouseState","_createContainer","quadrilaterals","_createQuadrilaterals","_Util$singularValueDe","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","quadPoints","savedRect","quadPoint","popup","PopupElement","modificationDate","richText","hideWrapper","skipId","fieldObj","_step3$value","exportValues","exportValue","domElement","getElementsByName","_domElement","_exportValue","isWin","isMac","_AnnotationElement","isTooltipOnly","resetForm","_linkService$addLinkA","newWindow","_bindNamedAction","_bindLink","hasClickAction","_bindJSAction","_bindResetFormAction","_renderQuadrilaterals","quadrilateral","linkElement","getDestinationHash","goToDestination","getAnchorUrl","executeNamedAction","_Object$keys","jsName","_this3$linkService$ev","eventBus","otherClickAction","resetFormFields","resetFormRefs","include","fieldIds","fieldName","_Object$values","_i4","_Object$values2","_fields2","_this4$linkService$ev","storage","allIds","_i5","_allFields","_field","valueAsString","_value2","Event","_AnnotationElement2","_parameters$data$titl","_parameters$data$cont","_parameters$data$rich","hasPopup","l10nId","l10nArgs","_createPopup","_AnnotationElement3","alternativeText","_AnnotationElement$pl","baseName","_this5$linkService$ev","_getKeyModifier","_this5$linkService$ev2","getter","_this$data$actions","_setEventListener","jsEvent","setColor","styleName","ColorConverters","commonActions","userName","readonly","required","bgColor","fgColor","textColor","_i6","_Object$keys2","_WidgetAnnotationElem","hasAppearance","fieldValue","keyInStorage","_getElementsByName","storedData","elementData","userValue","beforeInputSelectionRange","beforeInputValue","multiLine","setPropertyOnSiblings","defaultFieldValue","blurListener","_this$data$actions2","selRange","_event$detail$selRang","selStart","selEnd","setSelectionRange","_dispatchEventFromSandbox","_this7$linkService$ev","commitKey","willCommit","_blurListener","_this7$linkService$ev2","isDown","Keystroke","_this7$linkService$ev3","_elementData$beforeIn","change","_setEventListeners","maxLen","maxLength","comb","combWidth","letterSpacing","_setTextStyle","_setBackgroundColor","_this$data$defaultApp","defaultAppearanceData","fontColor","textAlignment","_WidgetAnnotationElem2","checkbox","curChecked","_WidgetAnnotationElem3","_event$target2","radio","pdfButtonValue","_LinkAnnotationElemen","_WidgetAnnotationElem4","_super8","fontSizeStyle","selectElement","combo","multiSelect","optionElement","isExport","selectedIndex","getItems","multipleSelection","_event$detail$insert","indices","_step17","_iterator17","_this10$linkService$e","changeEx","keyDown","_AnnotationElement4","_super9","_parameters$data$titl2","_parameters$data$cont2","_parameters$data$rich2","parentType","parentElements","parentRect","popupLeft","popupTop","pinned","_this$richText","_this$contentsObj","hideElement","dateObject","toDateObject","toLocaleTimeString","contents","_formatContents","XfaLayer","xfaHtml","lastChild","_step18","_iterator18","_toggle","_show","_hide","lines","line","pin","_AnnotationElement5","_super10","_parameters$data$titl3","_parameters$data$cont3","_parameters$data$rich3","_AnnotationElement6","_super11","_parameters$data$titl4","_parameters$data$cont4","_parameters$data$rich4","lineCoordinates","_AnnotationElement7","_super12","_parameters$data$titl5","_parameters$data$cont5","_parameters$data$rich5","_AnnotationElement8","_super13","_parameters$data$titl6","_parameters$data$cont6","_parameters$data$rich6","circle","_AnnotationElement9","_super14","_parameters$data$titl7","_parameters$data$cont7","_parameters$data$rich7","containerClassName","svgElementName","_step19","_iterator19","vertices","coordinate","polyline","_PolylineAnnotationEl","_super15","_AnnotationElement10","_super16","_parameters$data$titl8","_parameters$data$cont8","_parameters$data$rich8","_AnnotationElement11","_super17","_parameters$data$titl9","_parameters$data$cont9","_parameters$data$rich9","_step20","_iterator20","inkLists","_step21","inkList","_iterator21","_AnnotationElement12","_super18","_parameters$data$titl10","_parameters$data$cont10","_parameters$data$rich10","_AnnotationElement13","_super19","_parameters$data$titl11","_parameters$data$cont11","_parameters$data$rich11","_AnnotationElement14","_super20","_parameters$data$titl12","_parameters$data$cont12","_parameters$data$rich12","_AnnotationElement15","_super21","_parameters$data$titl13","_parameters$data$cont13","_parameters$data$rich13","_AnnotationElement16","_super22","_parameters$data$titl14","_parameters$data$cont14","_parameters$data$rich14","_AnnotationElement17","_super23","_this14$linkService$e","_this14$data$file","file","_this$data$titleObj","_this$data$contentsOb","_download","_this$downloadManager","openOrDownloadData","_step22","sortedAnnotations","popupAnnotations","_iterator22","_i7","_sortedAnnotations","rendered","_step23","_iterator23","renderedElement","_setAnnotationCanvasMap","ownMatrix","_step24","_iterator24","_step25","_iterator25","ownTransform","_step26","_iterator26","_step26$value","replaceChild","makeColorComp","RGB_HTML","CMYK_RGB","xfaOn","xfaOff","_ref$storage","dataId","setupStorage","rootHtml","setAttributes","rootDiv","textDivs","_child$attributes","_stack","childHtml","xmlns","_node","renderTextLayer","renderParameters","TextLayerRenderTask","textContentStream","textContentItemsStr","enhanceTextSelection","_render","DEFAULT_FONT_SIZE","ascentCache","AllWhitespaceRegexp","appendText","geom","textDiv","textDivProperties","_enhanceTextSelection","hasText","hasEOL","originalTransform","_textDivs","tx","_viewport","atan2","fontName","fontHeight","fontAscent","cachedAscent","metrics","ascent","fontBoundingBoxAscent","descent","fontBoundingBoxDescent","ratio","pixels","_ratio","getAscent","_fontInspectorEnabled","shouldScaleText","absScaleX","absScaleY","_textDivProperties","_textContentStream","_layoutText","angleCos","angleSin","divWidth","divHeight","_canceled","textDivsLength","_renderingDone","findPositiveMin","ts","boxes","x1New","x2New","expandBoundsLTR","expandBounds","divProperties","jj","boxScale","horizon","boundary","_horizonPart","_affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","used","_horizon","affectedBoundary","_textContent","_container","_textContentItemsStr","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","styleCache","_textDiv$style","mozOpaque","textItems","textStyles","_processItems","expandDivs","transformBuf","paddingBuf","divProps","SVGGraphics","pf","pm","acos","SVG_DEFAULTS","fontStyle","convertImgDataToPng","PNG_HEADER","crcTable","writePngChunk","crc","crc32","deflateSyncUncompressed","literals","maxBlockLength","deflateBlocks","idat","pi","adler","adler32","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","_y","ihdr","deflateSync","pngLength","CHUNK_WRAPPER_SIZE","SVGExtraState","activeClipUrl","clipGroup","maskId","clipCount","maskCount","shadingCount","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","svgElement","loadDependencies","convertOpList","operatorIdMapping","opList","opTree","opListElement","opListToTree","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","lineWidthScale","_setStrokeAttributes","_ensureTransformGroup","defs","addFontStyle","_current$txtElement","hasChildNodes","_makeColorN_Pattern","_makeShadingPattern","_makeTilingPattern","_args$","tilingId","_Util$normalizeRect2","tx0","ty0","tx1","ty1","txstep","tystep","tiling","childNodes","gradient","shadingId","colorStops","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","getAttributeNS","clipId","clipElement","setStrokeAlpha","setFillAlpha","imgSrc","cliprect","imgEl","definitions","_ensureClipGroup","PDFNodeStream","_network_utils","fs","http","https","fileUriRegex","sourceUrl","parsedUrl","isHttp","isFsUrl","_rangeRequestReaders","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_url","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","BaseRangeReader","createRequestOptions","headers","auth","hostname","_BaseFullReader","handleResponse","statusCode","_setReadableStream","getResponseHeader","_validateRangeRequest","validateRangeRequestCapabilities","allowRangeRequests","suggestedLength","extractFilenameFromHeader","_request","_BaseRangeReader","_httpHeaders","Range","_BaseFullReader2","lstat","createReadStream","_BaseRangeReader2","createResponseStatusError","contentDisposition","_content_disposition","getFilenameFromContentDispositionHeader","returnValues","validateResponseStatus","needsEncodingFixup","toParamRegExp","rfc2616unquote","fixupEncoding","rfc2047decode","rfc5987decode","contentDispositionStr","_match2","quot","part","parts","_n2","_matches$_n","_quot","_part","rfc2231getparam","_filename2","attributePattern","textdecode","encoding","TextDecoder","fatal","quotindex","extvalue","encodingend","charset","PDFNetworkStream","NetworkManager","getXhr","currXhrId","pendingRequests","xhr","xhrId","pendingRequest","setRequestHeader","expectedStatus","onprogress","onHeadersReceived","onDone","_pendingRequest$onPro","_pendingRequest$onErr","xhrStatus","getArrayBuffer","rangeHeader","_pendingRequest$onErr3","_pendingRequest$onErr2","_source","_manager","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","_onRangeRequestReaderClosed","manager","_onHeadersReceived","_onDone","_fullRequestId","requestFull","_headersReceivedCapability","_cachedChunks","fullRequestXhrId","fullRequestXhr","getRequestXhr","_this$onProgress","lengthComputable","isPendingRequest","_requestId","requestRange","_this$onClosed","_close","_this$onProgress2","PDFFetchStream","createFetchOptions","abortController","credentials","redirect","createHeaders","Headers","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","_headers","_yield$this$_reader$r","_yield$this$_reader$r2","__webpack_module_cache__","moduleId","cachedModule","__webpack_exports__","_annotation_layer","_api","_svg","_text_layer","isColorSupported","dim","underline","strikethrough","red","green","yellow","blue","magenta","cyan","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright","bgBlackBright","bgRedBright","bgGreenBright","bgYellowBright","bgBlueBright","bgMagentaBright","bgCyanBright","bgWhiteBright","createColors","AtRule","defaults","proxyOf","registerAtRule","Rule","isClean","my","Declaration","cleanSource","markDirtyUp","each","indexes","addToError","walkDecls","walkRules","walkAtRules","walkComments","cleanRaws","keepBetween","exist","existIndex","replaceValues","decl","fast","sample","rebuild","raws","before","getProxyProcessor","toProxy","cb","lastEach","registerParse","dependant","registerRule","registerRoot","pico","terminalHighlight","CssSyntaxError","plugin","endLine","endColumn","setMessage","showSourceCode","aside","gutter","variable","LazyResult","Processor","toResult","registerLazyResult","registerProcessor","PreviousMap","Input","fromJSON","json","ownInputs","inputHydrated","inputId","SourceMapConsumer","SourceMapGenerator","fileURLToPath","pathToFileURL","isAbsolute","nanoid","fromOffsetCache","sourceMapAvailable","pathAvailable","hasBOM","consumer","mapResolve","fromOffset","lastLine","lineToIndex","fromUrl","originalPositionFor","sourceRoot","mapFile","sourceContentFor","consumerCache","registerInput","MapGenerator","TYPE_TO_CLASS_NAME","atrule","comment","PLUGIN_PROPS","postcssPlugin","prepare","Once","DeclarationExit","RuleExit","AtRuleExit","CommentExit","RootExit","DocumentExit","OnceExit","NOT_VISITORS","isPromise","getEvents","toStack","eventIndex","visitors","visitorIndex","cleanMarks","postcss","stringified","processed","syntax","helpers","plugins","sync","messages","warnings","finally","processing","runAsync","getAsyncError","runOnRoot","prepareVisitors","hasListener","walkSync","subRoot","visitSync","stringifier","generate","visitor","lastPlugin","roots","postcssVersion","visitTick","visit","registerPostcss","separators","inQuote","prevQuote","letter","space","comma","dirname","sep","cssString","mapOpts","isMap","previousMaps","isSourcesContent","sourcesContent","withContent","clearAnnotation","setSourcesContent","already","setSourceContent","toUrl","applyPrevMaps","applySourceMap","isAnnotation","toBase64","addAnnotation","outputFile","eol","generateMap","generateString","fromSourceMap","addMapping","generated","absolute","encodeURI","sourcePath","noSource","mapping","semicolon","NoWorkResult","_processor","_css","_opts","_map","generatedCSS","generatedMap","_root","Stringifier","rangeBy","cloneBefore","cloneAfter","replaceWith","bookmark","foundSelf","raw","defaultType","between","fixed","emitInputs","inputsNextIndex","positionInside","positionBy","proxyCache","postcssNode","SAFE_COMMENT_NEIGHBOR","spaces","customProperty","createTokenizer","token","endOfFile","nextToken","freeSemicolon","emptyRule","endFile","getPosition","colon","bracket","brackets","tokens","back","unclosedBracket","unknownWord","spacesAndCommentsFromEnd","findLastWithPosition","firstSpaces","precheckMissedSemicolon","important","stringFrom","spacesFromEnd","checkMissedSemicolon","unnamedAtrule","afterName","spacesAndCommentsFromStart","unexpectedClose","unclosedBlock","ownSemicolon","clean","lastTokenType","doubleColon","founded","Warning","warningPrinted","env","LANG","processOpts","pluginOpts","atRule","existsSync","readFileSync","loadAnnotation","startWith","loadMap","getAnnotationURL","sourceMapString","comments","decodeInline","lastMatch","loadFile","prevPath","mappings","_mappings","sections","use","normalized","ignore","selectors","DEFAULT_RAW","beforeDecl","beforeRule","beforeOpen","beforeClose","beforeComment","emptyBody","commentLeft","commentRight","builder","own","detect","rawCache","beforeAfter","toUpperCase","rawSemicolon","rawEmptyBody","rawIndent","rawBeforeComment","rawBeforeDecl","rawBeforeRule","rawBeforeClose","rawBeforeOpen","rawColon","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","escaped","escapePos","currentToken","returned","unclosed","what","ignoreUnclosed","controlChar","printed","opt","__P","__H","__h","__v","__c","__N","__V","cancelAnimationFrame","isPureReactComponent","shouldComponentUpdate","__f","__e","__k","__d","__u","__b","__a","__R","__O","componentWillUnmount","W","revealOrder","getChildContext","containerInfo","componentDidMount","cancelBubble","persist","isDefaultPrevented","nn","class","tn","en","defaultProps","vnode","__r","debounceRendering","__n","ownerSVGElement","nextSibling","contextType","__E","sub","_sb","__s","getDerivedStateFromProps","componentWillMount","componentWillReceiveProps","componentWillUpdate","getSnapshotBeforeUpdate","diffed","localName","dangerouslySetInnerHTML","__html","unmount","Consumer","calculateChange","hsl","initialA","containerWidth","containerHeight","pageX","pageY","pageXOffset","checkboardCache","serverCanvas","checkboard","toDataURL","Checkboard","renderers","grid","Alpha","_temp","handleMouseDown","handleMouseUp","unbindEventListeners","pointer","slider","overwrite","onTouchStart","PureComponent","VALID_KEY_CODES","idCounter","EditableInput","blurValue","setUpdatedValue","getNumberValue","getArrowOffset","updatedValue","handleDrag","dragLabel","movementX","dragMax","getValueObjectWithLabel","arrowOffset","onChangeValue","hideLabel","Hue","_props$direction","hue","__data__","pairs","LARGE_ARRAY_SIZE","eq","fromRight","keysFunc","freeExports","freeModule","allocUnsafe","isDeep","copy","typedArray","objectCreate","objectProto","Ctor","isObjectLike","isArguments","isBuffer","funcProto","funcToString","objectCtorString","typedArrayTags","isLength","freeProcess","nodeUtil","require","binding","nodeIsTypedArray","objValue","customizer","isNew","reIsUint","inherited","isArr","isArg","isBuff","isType","skipIndexes","isProto","isArrayLike","srcIndex","mergeFunc","srcValue","stacked","isCommon","isTyped","isArrayLikeObject","baseMerge","assigner","sources","guard","Raised","zDepth","_ref$styles","passedStyles","bg","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","nativeMax","nativeMin","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","trailing","invokeFunc","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","Saturation","_container$getBoundin","saturation","bright","renderWindow","getContainerRenderWindow","hsv","eachFunc","simpleCheckForValidColor","passed","toState","oldHue","toHsl","toHsv","toRgb","toHex","isValidHex","lh","isValid","getContrastingColor","isvalidColorString","stringWithoutDegree","_ok","Picker","ColorPicker","onChangeComplete","debounce","handleSwatchHover","onSwatchHover","optionalEvents","nextProps","Span","Focus","_ref$onClick","onHover","_ref$title","_ref$focusStyle","focusStyle","transparent","swatch","picker","AlphaPicker","_ref$className","predicate","bitmask","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","symbolProto","symbolValueOf","convert","symbolsFunc","resIndex","nativeGetSymbols","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","baseIsEqual","matchData","noCustomizer","reIsDeepProp","reIsPlainProp","resolver","Cache","rePropName","reEscapeChar","subString","hasFunc","swatches","float","Block","triangle","hexCode","card","pink","purple","deepPurple","indigo","lightBlue","teal","lightGreen","lime","amber","orange","deepOrange","brown","blueGrey","CircleSwatch","circleSize","circleSpacing","Swatch","Circle","ChromeFields","toggleViews","showHighlight","hideHighlight","iconHighlight","textTransform","UnfoldMoreHorizontalIcon","Chrome","disableAlpha","controls","toggles","dot","HEXwrap","HEXinput","HEXlabel","RGBwrap","RGBinput","RGBlabel","Compact","hoverSwatch","Github","borderBottomColor","triangleShadow","HuePicker","HuePointer","Hex","third","fieldSymbols","triangleBorder","Extend","leftInside","rightInside","currentColor","new","Photoshop","_props","_props$styles","_props$className","previews","PhotoshopPointer","onAccept","PhotoshopFields","single","double","SketchPresetColors","swatchWrap","colorObjOrString","Sketch","presetColors","sliders","activeColor","epsilon","Slider","CheckIcon","Swatches","Twitter","hash","hexcode","GooglePointerCircle","GooglePointer","_values","_values2","hsvValue","input2","label2","rgbValue","hslValue","Google","__unlayer_lastEditorId","onLoad","onReady","scriptUrl","editorId","appearance","displayMode","locale","projectId","tools","useImperativeHandle","unlayer","standalone","isSdkLoaded","isProcessing","responseApi","FB","language","checkLoginState","setStateIfMounted","authResponse","onFailure","checkLoginAfterRefresh","login","appId","returnScopes","redirectUri","disableMobileRedirect","authType","client_id","redirect_uri","return_scopes","response_type","auth_type","isMobile","_isMounted","sdkLoaded","setFbAsyncInit","loadSdkAsynchronously","autoLoad","getLoginStatus","xfbml","cookie","fbAsyncInit","isRedirectedFromFb","bool","arrayOf","instanceOf","objectOf","oneOf","oneOfType","checkPropTypes","PropTypes","clientId","cookiePolicy","loginHint","hostedDomain","fetchBasicProfile","discoveryDocs","uxMode","onSuccess","onRequest","cookie_policy","login_hint","hosted_domain","fetch_basic_profile","ux_mode","include_granted_scopes","prompt","access_type","gapi","auth2","authorize","disabledStyle","buttonText","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","framesToPop","closePopupMessage","linkedInLogin","screen","assertThisInitialized","keyboardEvents","mouseEvents","touchEvents","allEvents","getArgs","eventProps","makeCancellablePromise","wrappedPromise","mergeClassNames","Message","LinkService","externalLinkTarget","externalLinkRel","pdfDocument","pdfViewer","currentPageNumber","explicitDest","destRef","pagesCount","scrollPageIntoView","isBrowser","isLocalFileSystem","isDefined","isProvided","isBlob","isFile","File","isDataURI","dataURItoByteString","dataURI","_dataURI$split","_dataURI$split2","headersString","dataString","allowFileAccessFromFilesTip","displayCORSWarning","cancelRunningTask","runningTask","makePageCallback","isCancelException","loadFromFile","FileReader","NOT_FOUND_ERR","NOT_READABLE_ERR","SECURITY_ERR","ABORT_ERR","readAsArrayBuffer","fileTypes","isClassName","isLinkService","isPage","getViewport","isPdf","isRef","isRenderMode","isRotate","enumerableOnly","sym","_objectSpread","getOwnPropertyDescriptors","pdf","_PureComponent","onItemClick","pages","cancellable","findDocumentSource","onSourceSuccess","_this$props","onLoadProgress","fingerprint","onLoadSuccess","onLoadError","onSourceError","_this$props2","setViewer","viewer","setExternalLinkRel","setExternalLinkTarget","setDocument","fileByteString","otherParams","_fileByteString","loadDocument","setupLinkService","registerPage","unregisterPage","_this$props3","renderMode","noData","renderChildren","_this$props4","renderContent","isFunctionOrNode","num","OutlineItemInternal","getPageNumber","subitems","subitem","subitemIndex","renderSubitems","isDestination","documentContext","OutlineContext","outlineContext","OutlineInternal","loadOutline","renderOutline","mergeRefs","inputRefs","filteredInputRefs","ANNOTATION_MODE","PageCanvasInternal","renderer","onRenderSuccess","onRenderError","canvasElement","_assertThisInitialize","renderViewport","canvasBackground","cancelRenderingTask","drawPageOnCanvas","pixelRatio","_this$props5","canvasRef","PageCanvas","PageContext","PageSVGInternal","getOperatorList","svgGfx","getSVG","_this$viewport","renderSVG","_this$viewport2","drawPageOnContainer","PageSVG","TextLayerItemInternal","sideways","alignTextItem","unrotatedViewport","defaultSideways","_transform","fontHeightPx","fontWidthPx","_transform2","_viewport$viewBox","yMin","yMax","_transform3","xMin","itemElement","getFontData","fontData","fallbackFontName","targetWidth","actualWidth","getElementWidth","WebkitTransform","customTextRenderer","TextLayerItem","TextLayerInternal","onGetTextSuccess","onGetTextError","loadTextItems","textItem","renderTextItems","TextLayer","AnnotationLayerInternal","onGetAnnotationsSuccess","onGetAnnotationsError","onRenderAnnotationLayerSuccess","onRenderAnnotationLayerError","loadAnnotations","layerElement","renderAnnotationLayer","pageContext","PageInternal","pageElement","loadPage","pageScale","scaleWithDefault","pageKeyNoScale","pageKey","renderMainLayer","Page","propName","CAN_USE_DOM","canUsePassiveEventListeners","supportsPassiveOption","testPassiveEventListeners","ensureCanMutateNextEventHandlers","handlers","nextHandlers","TargetEventHandlers","getEventHandlers","normalizedEventOptions","handleEvent","isSubscribed","EVENT_HANDLERS_KEY","eventOptions","normalizeEventOptions","computeOffsetPixels","contextHeight","pixelOffset","percentOffset","parseOffsetAsPercentage","ABOVE","INSIDE","BELOW","isDOMElement","timeoutQueue","onNextTick","hasWindow","scrollableAncestor","topOffset","bottomOffset","onPositionChange","fireOnRapidScroll","Waypoint","_React$PureComponent","refElement","cancelOnNextTick","_this2$props","ensureRefIsProvidedByChild","_handleScroll","_findScrollableAncestor","scrollEventListenerUnsubscribe","resizeEventListenerUnsubscribe","resolveScrollableAncestorProp","_getBounds","viewportBottom","viewportTop","waypointTop","waypointBottom","getCurrentPosition","previousPosition","_previousPosition","callbackArg","contextScrollTop","_this$_ref$getBoundin","isForwardRef","innerRef","above","below","inside","autoprefix","_forOwn2","_forOwn3","transforms","msBorderRadius","MozBorderRadius","OBorderRadius","WebkitBorderRadius","msBoxShadow","MozBoxShadow","OBoxShadow","WebkitBoxShadow","WebkitTouchCallout","KhtmlUserSelect","MozUserSelect","msUserSelect","WebkitUserSelect","WebkitBoxFlex","MozBoxFlex","WebkitFlex","msFlex","WebkitFlexBasis","WebkitJustifyContent","msTransition","MozTransition","OTransition","WebkitTransition","msTransform","MozTransform","OTransform","extend","otherElementStyles","otherStyle","prefixed","Active","Hover","handleMouseOut","flattenNames","_isString3","_isPlainObject3","_map3","things","thing","_flattenNames2","_mergeClasses2","_autoprefix2","_hover3","_active2","_loop3","ReactCSS","activations","activeNames","merged","setProp","mergeClasses","_cloneDeep3","toMerge","copyBuffer","cur","circles","refsNew","cloneProto","cloneArray","o2","a2","rfdcCircles","htmlparser","escapeStringRegexp","isPlainObject","parseSrcset","postcssParse","mediaTags","vulnerableTags","sanitizeHtml","VALID_HTML_ATTRIBUTE_NAME","_recursing","tempResult","Frame","tagPosition","mediaChildren","updateParentNodeText","updateParentNodeMediaChildren","htmlParserDefaults","tagAllowed","allowedTags","allowVulnerableTags","nonTextTagsArray","nonTextTags","allowedAttributesMap","allowedAttributesGlobMap","allowedAttributes","globRegex","allowedClassesMap","allowedClassesGlobMap","allowedClassesRegexMap","allowedClasses","transformTagsMap","transformTagsAll","skipMap","transformMap","skipText","skipTextDepth","transformTags","transFun","simpleTransform","addedText","initializeState","enforceHtmlBoundary","frame","skip","transformedTag","disallowedTagsMode","isEmptyObject","nestingLimit","allowedScriptHostnames","allowedScriptDomains","allowedEmptyAttributes","nonBooleanAttributes","passedAllowedAttributesMapCheck","splitStrArray","allowedSchemesAppliedToAttributes","naughtyHref","allowed","parseUrl","allowedHostname","allowedDomain","endsWith","isRelativeUrl","allowIframeRelativeUrls","allowedIframeHostnames","allowedIframeDomains","evil","allowedSpecificClasses","allowedWildcardClasses","allowedSpecificClassesGlob","allowedSpecificClassesRegex","allowedClassesGlobs","filterClasses","parseStyleAttributes","filteredAST","abstractSyntaxTree","allowedStyles","astRules","selectedRule","allowedDeclarationsList","attributeObject","regularExpression","filterDeclarations","filterCss","extractedAttributes","attrObject","stringifyStyleAttributes","escapeHtml","selfClosing","textFilter","lastFrame","exclusiveFilter","allowProtocolRelative","scheme","allowedSchemesByTag","allowedSchemes","allowedGlobs","clss","glob","newTagName","newAttribs","merge","prot","ipRegex","tlds","ipv4","ipv6","defaultTlds","RE2","hasRE2","SafeRegExp","re2","localhost","parens","apostrophes","trailingPeriod","returnString","tld","disallowedChars","_assertString","_merge","default_email_options","require_display_name","allow_display_name","display_email","splitNameAddress","display_name","display_name_without_quotes","validateDisplayName","ignore_max_length","lower_domain","host_blacklist","user","domain_specific_validation","username","_isByteLength","_user_parts","gmailUserPart","_isFQDN","require_tld","allow_ip_domain","_isIP","noBracketdomain","allow_utf8_local_part","quotedEmailUserUtf8","quotedEmailUser","emailUserUtf8Part","emailUserPart","user_parts","blacklisted_chars","_getRequireWildcardCache","customAlphabet","alphabet","defaultSize","globalLocales","MINIMAL_RAW_EN_LOCALE","week","dow","doy","prevYear","nextYear","today","weekText","weekTextLong","closeHint","timeHint","eventHint","allDayText","moreLinkText","noEventsText","RAW_EN_LOCALE","buttonHints","unit","viewHint","navLinkHint","moreLinkHint","eventCnt","organizeRawLocales","explicitRawLocales","defaultCode","allRawLocales","rawLocaleMap","rawLocale","buildLocale","inputSingular","available","codeArg","codes","toLocaleLowerCase","simpleId","queryRawLocale","parseLocale","queryLocale","simpleNumberFormat","NumberFormat","createPlugin","premiumReleaseDate","deps","reducers","isLoadingFuncs","contextInit","eventRefiners","eventDefMemberAdders","eventSourceRefiners","isDraggableTransformers","eventDragMutationMassagers","eventDefMutationAppliers","dateSelectionTransformers","datePointTransforms","dateSpanTransforms","views","viewPropsTransformers","isPropsValid","externalDefTransforms","viewContainerAppends","eventDropTransformers","componentInteractions","calendarInteractions","themeClasses","eventSourceDefs","cmdFormatter","recurringTypes","namedTimeZonedImpl","initialView","elementDraggingImpl","optionChangeHandlers","scrollGridImpl","listenerRefiners","optionRefiners","propSetHandlers","buildBuildPluginHooks","currentHooks","currentOverrideDefs","currentGlobalDefs","overrideDefs","globalDefs","pluginDefs","currentPluginIds","addDefs","def","pluginName","currentId","hooks1","compareOptionalDates","hooks0","buildPluginHooks","date0","date1","StandardTheme","ensureViewDef","viewType","defaultConfigs","overrideConfigs","viewDef","defaultConfig","overrideConfig","queryProp","theComponent","superType","superDef","buildViewDef","parseViewConfigs","parseViewConfig","createViewHookComponent","viewProps","elTag","elClasses","viewSpec","renderProps","nextDayThreshold","generatorName","customGenerator","classNameGenerator","didMount","willUnmount","buildViewSpecs","defaultInputs","optionOverrides","dynamicOptionOverrides","localeDefaults","viewDefs","compileViewDefs","durationInput","durationUnit","singleUnit","singleUnitOverrides","durationInputMap","createDurationCached","denom","queryButtonText","optionsSubset","buttonTextMap","buttonTextKey","queryButtonTitle","buttonKey","optionDefaults","buttonTextOverride","buttonTextDefault","buttonTitleOverride","buttonHint","buttonTitleDefault","buildViewSpec","tableCellShaded","buttonGroup","buttonActive","baseIconClass","iconClasses","rtlIconClasses","iconOverrideOption","iconOverrideCustomButtonOption","iconOverridePrefix","initEventSources","calendarOptions","dateProfile","activeRange","addSources","refiners","rawSources","eventSources","initialEvents","rawSource","parseInitialSources","reduceEventSources","eventSourceHash","sourceId","eventSource","fetchDirtySources","fetchSourcesByIds","sourceIds","excludeStaticSources","isRefetch","sourceHash","fetchId","fetchRange","latestFetchId","isFetching","receiveResponse","computeEventSourcesLoading","doesSourceNeedRange","lazyFetching","isSourceDirty","prevSources","sourceIdHash","nextSources","fetchSource","calendarApi","sourceDef","pluginHooks","sourceDefId","rawEvents","eventSourceSuccess","errorHandled","eventSourceFailure","failure","ignoreRange","reduceDateSelection","reduceSelectedEvent","currentInstanceId","eventInstanceId","reduceEventDrag","currentDrag","newDrag","affectedEvents","mutatedEvents","isEvent","reduceEventResize","currentResize","newResize","parseToolbars","calendarOptionOverrides","viewSpecs","headerToolbar","parseToolbar","footerToolbar","sectionStrHash","sectionWidgets","viewsWithButtons","hasTitle","sectionName","sectionRes","parseSection","widgets","sectionStr","calendarCustomButtons","customButtons","calendarButtonTextOverrides","calendarButtonText","calendarButtonHintOverrides","calendarButtonHints","sectionSubstrs","buttonGroupStr","buttonName","customButtonProps","buttonClick","buttonIcon","ev","getCustomButtonIconClass","getIconClass","hint","changeView","textFallback","prevOrNext","navUnit","ViewImpl","getCurrentData","dateEnv","calendar","viewTitle","activeStart","toDate","activeEnd","currentStart","currentRange","currentEnd","getOption","handleEventSources","unfoundSources","_raw","newInputs","inputFound","unfoundSource","newInput","addEventSource","globalPlugins","parseMeta","refined","successCallback","errorCallback","extraParams","startParam","endParam","timeZoneParam","requestParams","customRequestParams","formatIso","timeZone","buildRequestParams","daysOfWeek","startTime","startRecur","endRecur","recurringData","createMarker","allDayGuess","typeData","framingRange","clippedFramingRange","dowHash","dayMarker","endMarker","instanceStarts","instanceStart","getUTCDay","expandRanges","emitter","viewApi","eventStore","hasHandlers","TaskRunner","runTaskOption","drainedOption","delayedRunner","drain","completedTasks","runTask","drained","buildTitle","viewOptions","currentRangeUnit","formatRange","titleFormat","days","buildTitleFormat","isEndExclusive","isRangeAllDay","defaultSeparator","titleRangeSeparator","CalendarDataManager","computeCurrentViewData","_computeCurrentViewData","buildDateEnv","buildDateEnv$1","buildTheme","buildDateProfileGenerator","buildViewApi","buildViewUiProps","buildEventUiBySource","buildEventUiBases","parseContextBusinessHours","actionRunner","_handleAction","updateData","currentCalendarOptionsInput","currentCalendarOptionsRefined","currentViewOptionsInput","currentViewOptionsRefined","currentCalendarOptionsRefiners","optionsForRefining","optionsForHandling","optionsData","computeOptionsData","currentViewType","currentViewData","currentDataManager","setThisContext","setOptions","currentDate","dateProfileGenerator","calendarContext","businessHours","eventUiBases","renderableEventStore","dateSelection","eventSelection","eventDrag","eventResize","selectionConfig","contextAndState","computeIsLoading","resetOptions","changedOptionNames","optionName","rawOptionValue","reduceDynamicOptionOverrides","reduceViewType","currentDateProfile","dp","dateMarker","buildPrev","buildNext","reduceDateProfile","progressiveEventRendering","eventUiSingleBase","eventUiBySource","wasLoading","isLoading","onAction","oldData","changeHandlers","oldCalendarOptions","newCalendarOptions","reduceEventSourcesNewTimeZone","onData","stableOptionOverrides","stableDynamicOptionOverrides","stableCalendarOptionsData","refinedOptions","availableLocaleData","processRawCalendarOptions","warnUnknownOptions","weekNumberCalculation","firstDay","defaultRangeSeparator","toolbarConfig","availableRawLocales","currentRaw","currentRefined","anyChanges","processRawViewOptions","dateProfileGeneratorClass","usesMinMaxTime","slotMinTime","slotMaxTime","showNonCurrentDates","dayCount","dateAlignment","dateIncrement","hiddenDays","weekends","nowInput","validRangeInput","validRange","visibleRangeInput","visibleRange","fixedWeekCount","explicitLocale","calendarSystem","namedTimeZoneImpl","themeSystem","ui","eventDefs","defId","eventDisplay","startEditable","eventStartEditable","durationEditable","eventDurationEditable","eventConstraint","eventOverlap","eventAllow","eventBackgroundColor","eventBorderColor","eventTextColor","eventColor","selectConstraint","selectOverlap","selectAllow","isLoadingFunc","viewName","ToolbarSection","widgetGroups","widgetGroup","renderWidgetGroup","isOnlyButtons","widget","isPressed","activeButton","isTodayEnabled","isPrevEnabled","isNextEnabled","buttonClasses","getClass","groupClassName","startContent","endContent","extraClassName","forceLtr","centerContent","center","renderSection","ViewHarness","handleEl","elRef","updateAvailableWidth","aspectRatio","liquid","labeledById","addResizeHandler","removeResizeHandler","EventClicking","settings","handleSegClick","segEl","seg","isValidSegDownEl","hasUrlContainer","eventRange","EventHovering","handleEventElRemove","currentSegEl","handleSegLeave","handleSegEnter","triggerEvent","removeHoverListeners","publicEvName","CalendarContent","buildViewContext","buildViewPropTransformers","buildToolbarProps","headerRef","footerRef","interactionsStore","viewLabelId","registerInteractiveComponent","settingsInput","interactions","TheInteractionClass","unregisterInteractiveComponent","resizeRunner","handleWindowResize","windowResizeDelay","viewAspectRatio","toolbarProps","viewVGrow","viewHeight","isHeightAuto","forPrint","viewContext","renderView","buildAppendContent","CalendarInteractionClass","interaction","transformers","ViewComponent","todayInfo","prevInfo","nextInfo","theClasses","TheClass","Calendar","isRendering","isRendered","currentClassNames","customContentRenderId","handleAction","renderRunner","tryDrain","handleData","currentData","rerenderDelay","handleRenderRequest","setClassNames","setHeight","wasRendering","updateSize","batchRendering","pauseRendering","resumeRendering","styleTexts","styleEls","injectStyles","styleText","styleEl","appendStylesTo","ensureElHasStyles","registerStylesRoot","rootNode","queriedNonceValue","metaWithNonce","hasAttribute","elWithNonce","queryNonceValue","getNonceValue","parentEl","hydrateStylesRoot","ruleCnt","styleStr","DelayedRunner","isDirty","pauseDepths","isPaused","elementClosest","elementMatches","matchesSelector","msMatchesSelector","PIXEL_PROP_RE","applyStyle","applyStyleProp","getEventTargetViaRoot","composedPath","guid$1","getUniqueDomId","listenBySelector","eventType","attachedHandler","matchedChild","buildDelegationHandler","listenToHoverBySelector","currentMatchedChild","mouseOverEv","realOnMouseLeave","mouseLeaveEv","transitionEventNames","whenTransitionDone","realCallback","createAriaClickAttrs","createAriaKeyboardAttrs","guidNumber","guid","disableCursor","enableCursor","preventSelection","webkitUserSelect","allowSelection","preventContextMenu","allowContextMenu","compareByFieldSpec","obj0","obj1","fieldSpec","localeCompare","flexibleCompare","formatWithOrdinals","formatter","fallbackText","compareNumbers","isInt","computeSmallestCellWidth","cellEl","allWidthEl","contentWidthEl","PARSE_RE","createDuration","years","months","milliseconds","parseString","parseObject","seconds","millisecond","ms","weeks","specifiedWeeks","subtractDurations","d0","asRoughDays","dur","asRoughMs","greatestDurationDenominator","isArraysEqual","a0","a1","equalityFunc","DAY_IDS","addWeeks","dateToUtcArray","arrayToUtcDate","addDays","addMs","diffWeeks","m0","diffDays","diffWholeDays","timeAsMs","startOfDay","weekOfGivenYear","marker","firstWeekStart","firstWeekOffset","dayStart","fwd","dateToLocalArray","getFullYear","getMonth","getDate","getHours","getSeconds","getMilliseconds","arrayToLocalDate","getUTCMilliseconds","isValidDate","formatDayString","formatIsoMonthStr","formatTimeZoneOffset","doIso","mins","workerFunc","resEquality","teardownFunc","currentArgs","currentRes","newArgs","memoizeObjArg","currentArg","newArg","isPropsEqual","EXTENDED_SETTINGS_AND_SEVERITIES","omitZeroMinute","meridiem","omitCommas","STANDARD_DATE_PROP_SEVERITIES","timeZoneName","era","weekday","MERIDIEM_RE","COMMA_RE","MULTI_SPACE_RE","LTR_RE","UTC_RE","NativeFormatter","formatSettings","standardDateProps","extendedSettings","buildFormattingFunc","betterDefaultSeparator","diffSeverity","ca","getMarkerYear","getMarkerMonth","getMarkerDay","computeMarkerDiffSeverity","biggestUnitForPartial","full0","full1","partialFormattingFunc","biggestUnit","partialOptions","computePartialFormattingOptions","partial0","partial1","insertion","i0","found0","before0","after0","i1","found1","before1","after1","findCommonInsertion","getLargestUnit","standardDatePropCnt","timeZoneOffset","computeWeekNumber","sanitizeSettings","zeroFormat","normalFormat","DateTimeFormat","zeroProps","tzoStr","replaced","injectTzoStr","postProcess","buildNativeFormattingFunc","expandZonedMarker","dateInfo","markerToArray","createVerboseFormattingArg","startInfo","localeCodes","CmdFormatter","cmdStr","FuncFormatter","createFormatter","BASE_OPTION_REFINERS","navLinkDayClick","navLinkWeekClick","bootstrapFontAwesome","buttonIcons","defaultAllDayEventDuration","defaultTimedEventDuration","scrollTime","scrollTimeReset","dayPopoverFormat","slotDuration","snapDuration","forceEventDuration","dayHeaders","dayHeaderFormat","dayHeaderClassNames","dayHeaderContent","dayHeaderDidMount","dayHeaderWillUnmount","dayCellClassNames","dayCellContent","dayCellDidMount","dayCellWillUnmount","weekNumbers","weekNumberClassNames","weekNumberContent","weekNumberDidMount","weekNumberWillUnmount","viewClassNames","viewDidMount","viewWillUnmount","nowIndicator","nowIndicatorClassNames","nowIndicatorContent","nowIndicatorDidMount","nowIndicatorWillUnmount","dragRevertDuration","dragScroll","allDayMaintainDuration","unselectAuto","dropAccept","eventOrder","specs","eventOrderStrict","longPressDelay","eventDragMinDistance","expandRows","weekNumberFormat","eventResizableFromStart","displayEventTime","displayEventEnd","initialDate","eventDataTransform","stickyHeaderDates","stickyFooterScrollbar","defaultAllDay","eventClassNames","eventContent","eventDidMount","eventWillUnmount","unselectCancel","slotLabelFormat","slotLaneClassNames","slotLaneContent","slotLaneDidMount","slotLaneWillUnmount","slotLabelClassNames","slotLabelContent","slotLabelDidMount","slotLabelWillUnmount","dayMaxEvents","dayMaxEventRows","dayMinWidth","slotLabelInterval","allDayClassNames","allDayContent","allDayDidMount","allDayWillUnmount","slotMinWidth","navLinks","eventTimeFormat","selectMinDistance","selectable","selectLongPressDelay","eventLongPressDelay","selectMirror","eventMaxStack","eventMinHeight","eventMinWidth","eventShortHeight","slotEventOverlap","eventInteractive","moreLinkClick","moreLinkClassNames","moreLinkContent","moreLinkDidMount","moreLinkWillUnmount","monthStartFormat","handleCustomRendering","customRenderingMetaMap","customRenderingReplaces","BASE_OPTION_DEFAULTS","CALENDAR_LISTENER_REFINERS","datesSet","eventsSet","eventAdd","eventChange","eventRemove","windowResize","eventClick","eventMouseEnter","eventMouseLeave","unselect","_unmount","_beforeprint","_afterprint","_noEventDrop","_noEventResize","_resize","_scrollRequest","CALENDAR_OPTION_REFINERS","COMPLEX_OPTION_COMPARATORS","isMaybeObjectsEqual","isMaybeArraysEqual","VIEW_OPTION_REFINERS","mergeRawOptions","optionSets","mergeProps","refineProps","propObjs","complexPropsMap","complexObjs","filterHash","mapHash","newHash","arrayToHash","hashValuesToArray","HANDLER_RE","getUnequalProps","compareObjs","oldProps","equalityFuncs","isObjValsEqual","val0","val1","calendarSystemClassMap","theClass","arrayToMarker","ISO_RE","DateEnv","isNamedTimeZone","canComputeOffset","createCalendarSystem","weekDow","weekDoy","weekNumberFunc","createMarkerMeta","createNowMarker","timestampToMarker","isTimeUnspecified","forcedTzo","getYear","getDay","addYears","addMonths","diffWholeYears","diffWholeMonths","greatestWholeUnit","diffWholeWeeks","diffHours","diffMinutes","diffSeconds","countDurationsBetween","diff","asRoughMonths","startOf","startOfYear","startOfMonth","startOfWeek","startOfHour","startOfMinute","startOfSecond","nextW","weekOfYear","dateOptions","offsetForMarker","forcedStartTzo","forcedEndTzo","extraOptions","omitTimeZoneOffset","stripZeroTime","buildIsoString","omitTime","timestampToArray","offsetForArray","setIconOverride","iconOverrideHash","iconClassesCopy","applyIconOverridePrefix","runBeforeFlush","oldDebounceRendering","callbackQ","FakeComponent","ContextType","origProvider","subs","ScrollResponder","execFunc","handleScrollRequest","queuedRequest","fireInitialScroll","isDatesNew","ViewContextType","createScrollResponder","nextState","propEquality","stateEquality","safeSetState","addPropsEquality","addStateEquality","BaseComponent","ContentInjector","queuedDomNodes","currentDomNodes","hasCustomRenderingHandler","updateElRef","defaultGenerator","attrs","buildElAttrs","innerContent","currentGeneratorMeta","useDefault","customGeneratorRes","domNodes","applyQueueudDomNodes","triggerCustomRendering","isActive","generatorMeta","containerEl","reportNewContainerEl","isTruthy","extraClassNames","elAttrs","elStyle","RenderId","ContentContainer","InnerContent","InnerContentInjector","didMountMisfire","generatedClassNames","generateClassNames","renderId","containerComponent","parentProps","ViewContainer","buildViewClassNames","invertRanges","ranges","constraintRange","dateRange","invertedRanges","compareRanges","range0","intersectRanges","newRange","rangesIntersect","rangeContainsRange","outerRange","innerRange","rangeContainsMarker","computeAlignedDayRange","timedRange","dayCnt","computeVisibleDayRange","startDay","endDay","endTimeMS","diffDates","largeUnit","m0day","m1day","diffDayAndTime","reduceCurrentDate","getInitialDate","initialDateInput","getNow","DateProfileGenerator","nowDate","initHiddenDays","forceToValid","prevDate","nextDate","currentInfo","renderRange","buildValidRange","trimHiddenDays","buildCurrentRangeInfo","buildRenderRange","adjustActiveRange","buildDateIncrement","simpleInput","refineRange","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","getFallbackDuration","computeRes","isHiddenDay","skipHiddenDays","runningCount","customAlignment","rangeInput","parseRange","isHiddenDayHash","isExclusive","createEventInstance","expandRecurring","instances","recurringDef","allDay","starts","expandRecurringRanges","eventDef","markers","typeId","EVENT_NON_DATE_REFINERS","interactive","EVENT_DATE_REFINERS","EVENT_REFINERS","extendedProps","parseEvent","allowOpenRange","buildEventRefiners","defIdMap","instanceIdMap","refineEventDef","computeIsDefaultAllDay","recurringRes","parseRecurring","parseEventDef","singleRes","startMeta","endMeta","startMarker","hasEnd","startInput","parseSingle","publicId","EVENT_UI_REFINERS","createEventUi","memberAdder","parseEvents","rawEvent","tuple","eventTupleToStore","getRelevantEvents","newStore","filterEventStoreDefs","lookDef","isEventDefsGrouped","def0","def1","createEmptyEventStore","mergeEventStores","store0","store1","filterFunc","parseClassNames","EMPTY_EVENT_UI","constraints","allows","normalizeConstraint","combineEventUis","uis","combineTwoEventUis","item0","item1","EVENT_SOURCE_REFINERS","parseEventSource","buildEventSourceRefiners","rawObj","metaRes","buildEventSourceMeta","reduceEventStore","subset","transformRawEvents","excludeEventsBySourceId","receiveRawEvents","existingEventStore","buildPublicIdMaps","resetRawEvents","expandRange","addEvent","master","filteredDefs","filteredInstances","excludeSubEventStore","calEachTransform","sourceEachTransform","transformEachRawEvent","refinedEvents","refinedEvent","rezoneEventStoreDates","oldDateEnv","newDateEnv","Emitter","thisContext","addToHash","removeFromHash","attachedHandlers","optionHandler","DEF_DEFAULTS","parseBusinessHours","rawDefs","rawDef","refineInputs","triggerDateSelect","pev","buildDateSpanApiWithContext","origEvent","dateSpan","buildRangeApi","getDefaultEventEnd","applyMutationToEventStore","eventConfigBase","mutation","eventConfigs","compileEventUis","applyMutationToEventDef","applyMutationToEventInstance","eventConfig","standardProps","startDelta","endDelta","eventInstance","forceAllDay","clearEnd","datesDelta","EventSourceImpl","internalEventSource","refetch","EventImpl","_def","_instance","mutate","setExtendedProp","setStart","granularity","maintainDuration","setEnd","endInput","setDates","instanceRange","moveStart","deltaInput","moveEnd","moveDates","setAllDay","formatInput","relevantEvents","oldEvent","relatedEvents","buildEventApis","revert","asStore","eventApiToStore","startStr","endStr","toPlainObject","collapseColor","collapseExtendedProps","eventApi","excludeInstance","eventApis","excludeInstanceId","sliceEventStore","inverseBgByGroupId","inverseBgByDefId","defByGroupId","bgRanges","fgRanges","eventUis","origRange","normalRange","slicedRange","isStart","invertedRange","fg","setElSeg","fcSeg","getElSeg","compileEventUi","sortEventSegs","segs","eventOrderSpecs","buildSegCompareObj","fieldSpecs","cmp","compareByFieldSpecs","_seg","computeSegDraggable","computeSegStartResizable","computeSegEndResizable","buildSegTimeText","timeFormat","defaultDisplayEventTime","defaultDisplayEventEnd","startOverride","endOverride","wholeEventStart","wholeEventEnd","segStart","segEnd","isStartDay","isEndDay","getSegMeta","todayRange","segRange","isPast","isFuture","isToday","getEventClassNames","isMirror","isStartResizable","isEndResizable","buildEventRangeKey","getSegAnchorAttrs","STANDARD_PROPS","parseDateSpan","defaultDuration","parseOpenDateSpan","isDateSpansEqual","span0","span1","isSpanPropsEqual","buildRangeApiWithTimeZone","unpromisify","normalizedSuccessCallback","normalizedFailureCallback","isResolved","wrappedSuccess","wrappedFailure","JsonRequestError","requestJson","fetchOptions","fetchRes","parsedResponse","canVGrowWithinCell","getCanVGrowWithinCell","possible","computeCanVGrowWithinCell","CalendarRoot","handleBeforePrint","handleAfterPrint","Interaction","isHitComboAllowed","parseInteractionSettings","useEventCenter","interactionSettingsToStore","interactionSettingsStore","CalendarImpl","setOption","getAvailableLocaleCodes","handlerName","dateOrRange","zoomTo","spec","getUnitViewSpec","viewTypes","gotoDate","zonedDateInput","incrementDate","formatDate","dateOrObj","endDate","selectionInput","triggerDateUnselect","eventInput","sourceInput","triggerEventAdd","sourceApi","getEventSourceById","newEventApi","getEventById","removeAllEvents","getEventSources","sourceApis","internalId","removeAllEventSources","refetchEvents","scrollToTime","timeInput","pointInsideRect","intersectRects","constrainPoint","getRectCenter","diffPoints","point2","getDateMeta","isOther","getDayClassNames","DAY_FORMAT","WEEK_FORMAT","buildNavLinkAttrs","isTabbable","dateStr","zonedDate","handleInteraction","customAction","_scrollbarWidths","_isRtlScrollbarOnLeft","getIsRtlScrollbarOnLeft","outerEl","computeIsRtlScrollbarOnLeft","getScrollbarWidths","computeScrollbarWidthsForEl","computeScrollbarWidths","computeInnerRect","goWithinPadding","doFromWindowViewport","outerRect","computeRect","edges","getPadding","borderTopWidth","badScrollbarWidths","scrollbarLeftRight","scrollbarBottom","scrollbarLeft","scrollbarRight","computeEdges","getClippingParents","PositionCache","originEl","els","isVertical","originClientRect","buildElHorizontals","buildElVerticals","originClientLeft","lefts","rights","originClientTop","tops","bottoms","leftToIndex","leftPosition","topToIndex","topPosition","getWidth","leftIndex","getHeight","topIndex","similarTo","otherCache","similarNumArrays","ScrollController","getMaxScrollTop","getScrollHeight","getClientHeight","getMaxScrollLeft","getScrollWidth","getClientWidth","canScrollVertically","canScrollHorizontally","canScrollUp","getScrollTop","canScrollDown","canScrollLeft","getScrollLeft","canScrollRight","ElementScrollController","setScrollTop","setScrollLeft","WindowScrollController","DateComponent","prepareHits","queryHit","positionLeft","positionTop","elWidth","elHeight","isValidDateDownEl","SegHierarchy","getEntryThickness","thickness","strictOrder","allowReslicing","maxCoord","maxStackCnt","levelCoords","entriesByLevel","stackCnts","addSegs","hiddenEntries","insertEntry","findInsertion","isInsertionValid","insertEntryAt","handleInvalidInsertion","levelCoord","stackCnt","touchingEntry","splitEntry","barrier","partCnt","splitHiddenEntries","entrySpan","barrierSpan","intersectSpans","lateral","buildEntryKey","newEntry","levelCnt","candidateCoord","touchingLevel","touchingLateral","trackingLevel","trackingCoord","trackingEntry","trackingEntries","searchRes","getEntrySpanEnd","lateralIndex","trackingEntryBottom","destLevel","destLateral","toRects","searchVal","getItemVal","middleIndex","middleVal","ElementDragging","setMirrorIsVisible","setMirrorNeedsRevert","setAutoScrollEnabled","CLASS_NAME","renderInner$1","TableDateCell","dayMeta","navLinkAttrs","colCnt","extraRenderProps","extraDataAttrs","InnerContainer","isSticky","WEEKDAY_FORMAT","TableDowCell","dateMeta","NowTimer","initialNowDate","initialNowQueriedMs","computeTiming","unroundedNow","currentUnitStart","nextUnitStart","waitMs","buildDayRange","DayHeader","createDayHeaderFormatter","dates","datesRepDistinctDays","renderIntro","explicitFormat","dateCnt","computeFallbackHeaderFormat","DaySeriesModel","dayIndex","cnt","sliceRange","getDateDayIndex","clippedFirstIndex","clippedLastIndex","dayOffset","DayTableModel","daySeries","breakOnWeeks","daysPerRow","rowCnt","buildCells","headerDates","buildHeaderDates","buildCell","seriesSeg","nextIndex","firstCol","lastCol","Slicer","sliceBusinessHours","_sliceBusinessHours","sliceDateSelection","_sliceDateSpan","_sliceEventStore","sliceEventDrag","_sliceInteraction","sliceEventResize","forceDayIfListItem","sliceProps","extraArgs","eventSegs","dateSelectionSegs","businessHourSegs","fgEventSegs","bgEventSegs","sliceNowDate","computeActiveRange","rangeRes","sliceEventRanges","affectedInstances","activeDateSpanRange","fabricateEventRange","eventRanges","sliceEventRange","isComponentAllDay","isInteractionValid","isNewPropsValid","isDateSelectionValid","calendarState","dateSpanMeta","filterConfig","subjectEventStore","subjectDefs","subjectInstances","subjectConfigs","otherEventStore","removals","otherDefs","otherInstances","otherConfigs","subjectInstanceId","subjectInstance","subjectRange","subjectConfig","subjectDef","allConstraintsPass","eventOverlapFunc","otherInstanceId","otherInstance","calendarEventStore","subjectAllow","subjectDateSpan","origDef","origInstance","isInteractionPropsValid","relevantEventStore","relevantDefs","relevantInstances","selectionRange","selectOverlapFunc","relevantInstanceId","relevantInstance","selectionAllow","isDateSelectionPropsValid","businessHoursUnexpanded","anyRangesContainRange","constraintToRanges","eventStoreToRanges","outerRanges","VISIBLE_HIDDEN_RE","liquidIsAbsolute","overcomeLeft","overcomeRight","overcomeBottom","needsXScrolling","realClientWidth","getYScrollbarWidth","needsYScrolling","realClientHeight","getXScrollbarWidth","RefMap","masterCallback","currentMap","depths","callbackMap","handleValue","removed","refCallback","collect","collectFromHash","getAll","computeShrinkWidth","chunkEls","shrinkCells","allMatches","findElements","largestWidth","shrinkCell","getSectionHasLiquidHeight","sectionConfig","isColPropsEqual","cols0","cols1","renderMicroColGroup","shrinkWidth","colNodes","colProps","sanitizeShrinkWidth","getSectionClassNames","wholeTableVGrow","renderScrollShim","tableMinWidth","getStickyHeaderDates","getStickyFooterScrollbar","SimpleScrollGrid","processCols","scrollerRefs","scrollerElRefs","_handleScrollerEl","forceYScrollbars","scrollerClientWidths","scrollerClientHeights","handleSizing","computeScrollerDims","sectionConfigs","microColGroupNode","getScrollGridClassNames","collapsibleWidth","currentConfig","configCnt","configI","headSectionNodes","bodySectionNodes","footSectionNodes","isBuggy","roleAttrs","isHeader","outerContent","renderChunkTd","chunkConfig","getAllowYScrolling","isLiquid","sectionKey","tableClassName","syncRowHeights","tableColGroupNode","rowContent","renderChunkContent","rowSyncHeights","reportRowHeightChange","scrollerEl","section","getSectionByKey","scrollerElRef","hasShrinkWidth","harnessEl","EventContainer","timeText","disableDragging","disableResizing","isDateSelecting","StandardEvent","defaultTimeFormat","renderInnerContent$1","eventContentArg","innerProps","DAY_NUM_FORMAT","DayCellContainer","refineRenderProps","isMonthStart","showDayNumber","hasCustomDayCellContent","dayNumberText","BgEvent","renderInnerContent","renderFill","fillType","WeekNumberContainer","defaultFormat","renderInner","Popover","handleRootEl","rootEl","handleDocumentMouseDown","handleCloseClick","handleDocumentKeyDown","extraAttrs","alignmentEl","alignGridTop","alignmentRect","clippingParents","clippingParent","intersection","computeClippedClientRect","popoverDims","popoverTop","popoverLeft","offsetParent","MorePopover","startDate","forceTimed","extraDateSpan","dayEl","MoreLinkContainer","isPopoverOpen","popoverId","handleLinkEl","linkEl","computeRange","buildPublicSeg","allDayDate","allSegs","hiddenSegs","handlePopoverClose","moreCnt","shortText","renderMoreLinkInner","alignmentElRef","popoverContent","updateParentEl","pickEarliestStart","computeLatestSegEnd","seg0","seg1","pickLatestEnd","CustomRenderingStore","currentValue","customRendering","affix","localesAll","TableView","headerElRef","renderSimpleLayout","headerRowContent","bodyContent","renderHScrollLayout","ScrollGrid","chunks","colGroups","splitSegsByRow","byRow","splitSegsByFirstCol","byCol","splitInteractionByRow","DEFAULT_TABLE_EVENT_TIME_FORMAT","hasListItemDisplay","TableBlockEvent","TableListItemEvent","TableCellMoreLink","compileSegs","invisibleSegs","singlePlacements","isForcedInvisible","DEFAULT_WEEK_NUM_FORMAT","rootElRef","dayNumberId","currentEndIncl","currentFirstYear","currentFirstMonth","currentLastYear","currentLastMonth","shouldDisplayMonthStart","renderTopInner","innerElRef","showWeekNumber","forceDayTop","fgContentElRef","fgContent","moreMarginTop","bgContent","generateSegKey","generateSegUid","computeFgSegPlacement","segHeights","maxContentHeight","hierarchy","DayGridSegHierarchy","segEntry","segUid","hiddenConsumes","segInputs","unknownHeightSegs","segRects","singleColPlacements","multiColPlacements","leftoverMargins","allRects","rectsByEachCol","groupRectsByEachCol","currentHeight","currentMarginTop","resliceSeg","absoluteTop","multiPlacements","isFirstCol","placeRects","moreCnts","moreMarginTops","hiddenEntry","hiddenSpan","spanStart","spanEnd","forceHidden","excludeHidden","touchingEntryId","placeholderEntry","TableRow","cellElRefs","frameElRefs","fgElRefs","segHarnessRefs","framePositions","updateSizing","businessHoursByCol","bgEventSegsByCol","highlightSegsByCol","getHighlightSegs","mirrorSegsByCol","getMirrorSegs","normalFgNodes","renderFgSegs","mirrorFgNodes","mirrorSegs","colPlacements","topsByInstanceId","placements","buildAbsoluteTopHash","buildMirrorPlacements","showDayNumbers","showWeekNumbers","renderFillSegs","cellMinHeight","currentProps","segPlacements","leftRightCss","isExternalSizingChange","frameEls","newPositionCache","oldSegHeights","newSegHeights","querySegHeights","limitByContentHeight","computeMaxContentHeight","segElMap","firstKey","fcContainerEl","getCellEls","elMap","TableRows","splitBusinessHourSegs","splitBgEventSegs","splitFgEventSegs","splitDateSelectionSegs","splitEventDrag","splitEventResize","rowRefs","businessHourSegsByRow","bgEventSegsByRow","fgEventSegsByRow","dateSelectionSegsByRow","eventDragByRow","eventResizeByRow","renderRowIntro","isSegAllDay","firstCellEl","rowPositions","rowObj","colPositions","getCellRange","getCellEl","Table","needsScrollReset","limitViaBalanced","colGroupNode","requestScrollReset","flushScrollReset","subjectEl","getScrollSubjectEl","scrollEl","DayTableSlicer","dayTableModel","DayTable","slicer","tableRef","headerAlignElRef","buildDayTableModel","TableDateProfileGenerator","endOfWeek","snapToWeek","lastMonthRenderStart","buildDayTableRenderRange","dayGrid","headerContent","contentArg","dayGridDay","dayGridWeek","dayGridMonth","dayGridYear","ignoreMouseDepth","listenerCnt","isWindowTouchMoveCancelled","PointerDragging","handleSelector","shouldIgnoreMove","shouldWatchScroll","isTouchDragging","wasTouchScroll","shouldIgnoreMouse","isPrimaryMouseButton","tryStart","createEventFromMouse","initScrollWatch","handleMouseMove","recordCoords","createEventFromTouch","targetEl","handleTouchScroll","prevScrollX","prevPageX","prevScrollY","prevPageY","isTouch","deltaX","origPageX","deltaY","origPageY","onWindowTouchMove","querySubjectEl","downEl","destroyScrollWatch","cancelTouchScroll","ElementMirror","sourceEl","mirrorEl","sourceElRect","revertDuration","origScreenX","origScreenY","updateElPosition","setIsVisible","needsRevertAnimation","doRevertAnimation","finalSourceElRect","getMirrorEl","ScrollGeomCache","scrollController","doesListening","handleScrollChange","origScrollTop","origScrollLeft","clientRect","computeClientRect","getEventTarget","ElementScrollGeomCache","WindowScrollGeomCache","performance","AutoScroller","scrollQuery","edgeThreshold","maxVelocity","pointerScreenX","pointerScreenY","isAnimating","scrollCaches","everMovedUp","everMovedDown","everMovedLeft","everMovedRight","edge","computeBestEdge","handleSide","msSinceRequest","requestAnimation","scrollStartEl","buildCaches","yDelta","xDelta","invDistance","velocity","bestSide","leftDist","rightDist","topDist","bottomDist","queryScrollEls","FeaturefulElementDragging","minDistance","touchScrollAllowed","mirrorNeedsRevert","isInteracting","isDelayEnded","isDistanceSurpassed","delayTimeoutId","onPointerDown","mirror","startDelay","handleDistanceSurpassed","onPointerMove","distanceSq","autoScroller","onPointerUp","tryStopDrag","handleDelayEnd","tryStartDrag","stopDrag","setIgnoreMove","OffsetTracker","origRect","computeLeft","computeTop","isWithinClipping","isIgnoredClipping","HitDragging","droppableStore","useSubjectCenter","requireInitial","initialHit","movingHit","finalHit","handlePointerDown","processFirstCoord","handleDragStart","handleDragMove","handlePointerUp","releaseHits","handleDragEnd","subjectRect","origPoint","adjustedPoint","queryHitForOffset","slicedSubjectRect","coordAdjust","forceHandle","hit","isHitsEqual","offsetTrackers","interactionSettings","bestHit","offsetTracker","originLeft","originTop","componentId","hit0","hit1","buildDatePointApiWithContext","DateClicking","hitDragging","DateSelecting","dragSelection","canSelect","getComponentTouchDelay$1","handleHitUpdate","isFinal","isInvalid","dateSpan0","dateSpan1","joinHitsIntoSelection","EventDragging","subjectSeg","receivingContext","validMutation","mutatedRelevantEvents","origTarget","initialContext","getComponentTouchDelay","fixedMirrorParent","receivingOptions","massagers","massager","computeEventMutation","displayDrag","clearDrag","updatedEventApi","eventChangeArg","transformed","eventRemoveArg","draggedEl","addedEventDef","addedEventInstance","addedEventApi","eventAddArg","nextContext","prevContext","initialCalendar","EventResizing","draggingSegEl","draggingSeg","querySegEl","isFromStart","computeMutation","OPTION_REFINERS","LISTENER_REFINERS","dateClick","eventDragStart","eventDragStop","eventDrop","eventResizeStart","eventResizeStop","drop","eventReceive","eventLeave","isRecentPointerDateSelect","matchesCancel","matchesEvent","onSelect","selectInfo","onDocumentPointerDown","onDocumentPointerUp","documentPointer","syncRenderingByDefault","FullCalendar","isUpdating","isUnmounting","customRenderingMap","requestResize","cancelResize","resizeId","doResize","customRenderingNodes","CustomRenderingComponent","customRenderingStore","lastRequestTimestamp","requestTimestamp","isMounting","runNow","getApi","act","testParameter","supportedProtocols","normalizeUrl","urlString","defaultProtocol","normalizeProtocol","forceHttp","forceHttps","stripAuthentication","stripHash","stripTextFragment","stripWWW","removeQueryParameters","removeTrailingSlash","removeSingleSlash","removeDirectoryIndex","removeExplicitPort","sortQueryParameters","mediaType","isBase64","mimeType","normalizedMediaType","normalizeDataURL","hasCustomProtocol","hasRelativeProtocol","urlObject","pathname","protocolRegex","protocolAtIndex","decodeURI","pathComponents","lastComponent","searchParams","keepQueryParameters","oldUrlString","stripProtocol","function_","wrappedFunction","arguments_","timeSpan","nanoseconds","flagMap","ignoreCase","multiline","dotAll","sticky","clonedRegexp","regexp","flag","resultToMatch","namedGroups","isMatch","getUrlsFromQueryParameters","returnValue","getUrls","exclude","POSITIVE_INFINITY","matchTimeout","matchAll","nextMatch","requireSchemeOrWww","extractFromQueryString","queryStringUrls","queryStringUrl","excludedItem","nonHexChars","validHexSize","hexRgb","alphaFromHex","repeat","ListCache","Hash","MapCache","SetCache","nativeObjectToString","symToStringTag","isOwn","unmasked","otherArgs","nativeNow","lastCalled","stamp","symbolToString","baseToString","reWhitespace","reTrimStart","freeGlobal","maskSrcKey","reIsHostCtor","reIsNative","freeSelf","isSafeInteger","valuesLength","computed","valuesIndex","strSymbols","chrSymbols","reHasUnicode","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","strictlyTwoElementsInRangeArrays","progressFn","mergeType","joinRangesThatTouchEdges","limitToBeAddedWhitespace","limitLinebreaksCount","stopAtNewlines","stopAtRawNbsp","ee","quotes","ne","te","ignoreTags","ignoreTagsWithTheirContents","onlyStripTags","stripTogetherWithTheirContents","skipHtmlDecoding","trimOnlySpaces","stripRecognisedHTMLOnly","dumpLinkHrefsNearby","putOnNewLine","wrapHeads","wrapTails","ignoreIndentations","reportProgressFunc","reportProgressFuncFrom","reportProgressFuncTo","fe","hrefValue","openingTagEnds","slashPresent","lastOpeningBracketAt","lastClosingBracketAt","deleteFrom","deleteTo","rangesArr","proposedReturn","trimEnd","ge","ae","wipe","ue","nameStarts","valueStarts","valueEnds","nameEnds","leftOuterWhitespace","equalsAt","onlyPlausible","nameContainsLetters","equalsSpottedAt","timeTakenInMilliseconds","allTagLocations","filteredTagLocations","_ref$atBegin","atBegin","timeoutID","_ref$noTrailing","noTrailing","_ref$noLeading","noLeading","_ref$debounceMode","debounceMode","lastExec","clearExistingTimeout","elapsed","_ref2$upcomingOnly","upcomingOnly"],"sourceRoot":""}